15. Алгоритмічні ситеми
• Нехай Α= < φ ,Ρ > - деякий алгоритм із
системою правил Р .
• Алгоритм АF =< φ, PF >, де PF — формальний
опис системи Р , будемо називати
формальним еквівалентом алгоритму А.
• Алгоритмічною системою називають
спосіб задання алгоритмів у деякому
фіксованому формалізмі F, який дає змогу
для довільного наперед заданого алгоритму
А задати його формальний еквівалент АF.
16. Алгоритмічні системи
(Формальні алгоритмічні системи)
Алгоритмічні системи можна вважати формалізацією поняття
алгоритму. Виділяють три типи таких систем, які відрізняються
початковими евристичними міркуваннями стосовно того, що
таке алгоритм:
– у першому типі поняття алгоритму пов’язане з найтрадиційнішими
поняттями математики - обчисленнями та числовими функціями
(числовою називають функцію, значення якої та значення її
аргументів - невід’ємні числа). Рекурсивні функції - історично
перша формалізація поняття алгоритму;
– другий тип ґрунтується на уявленні про алгоритм як
детермінований пристрій, здатний виконувати в кожний окремий
момент лише дуже примітивні операції. Основна теоретична
система цього типу - машина Тьюрінга;
– третій тип алгоритмічних систем — це перетворення слів у
довільних алфавітах. Приклади систем цього типу – канонічна
система Поста й нормальні алгоритми Маркова.
17. Summary
• Машина Тюрінга.
• Машина Зенона.
• Машина Поста.
• Нормальні алгоритми Маркова.
• Акумуляторна машина.
• Регістрова машина.
• РАМ-машина.
• ПРАМ-машина.
• ПРАМ-машина на основі ПВДН.
• Детермінований скінченний автомат(DFA).
• Недетермінований скінченний автомат(NFA).
• Магазинний автомат(PDA) та стекова машина на його основі.
19. Абстрактний автомат
• Цифровий (дискретний) автомат – пристрій, який здійснює прийом,
зберігання та перетворення дискретної інформації за деяким
алгоритмом. В якомусь розумінні до автоматів можна віднести як
реальні пристрої (обчислювальні машини, живі організми і т. ін.), так і
абстрактні системи (математичні машини, аксіоматичні теорії та ін.).
• Загальну теорію автоматів підрозділяють на абстрактну і структурну
• Абстрактний кінцевий автомат описується трьома скінченними
множинами і двома функціями: A = {X, Y, S , δ, λ}, де:
X – множина вхідних сигналів або вхідний алфавіт,
Y – множина вихідних сигналів або вихідний алфавіт,
S – множина станів або алфавіт станів,
δ – функція переходів, s(t + 1) = δ(s(t), x(t)),
λ – функція виходів, y(t) = λ(s(t), x(t)).
• Недетермінований кінцевий автомат автомат визначається аналогічно,
але з тою різницею, що як δ, λ допускаються багатозначні функції.
21. Машина Тюрінга
• На змістовному рівні машина Тьюрінга (МТ) є деякою
гіпотетичною(умовною) машиною, яка складається з
трьох головних компонент: інформаційної стрічки,
головки для зчитування і запису та пристрою
керування.
22. Алгоритмічна система Тюрінга
Модель однострічкової детермінованої МТ задається шісткою(сімкою):
М = < A, I, Q, q0, qf, a0, p >,
де A – кінцева множина символів зовнішнього алфавіту,
I – кінцева множина символів зовнішнього алфавіту на стрічці,
Q – кінцева множина символів внутрішнього алфавіту,
q0 – початковий стан,
qf – кінцевий стан,
q0, qf Є Q
a0 – позначення порожньої комірки стрічки,
p – така програма, яка не може мати двох команд, у яких би збігалися
два перші символи:
{A}x{Q} {A}{L,R,S}{Q},
де L – зсувати головку вліво,
R – зсувати головку вправо,
S – головка залишається на місці.
23.
24. Машини Тюрінга
• Машини Тюрінга
– Змінна машина Тюрінга
– Нейронна машина Тюрінга
– Недетермінована машина Тюрінга
– Квантова машина Тюрінга
– Машина Поста-Тюрінга
– Імовірнісна машина Тюрінга
– Незмінна машина Тюрінга
– Незмінна машина Тюрінга з рухом праворуч
– Багатострічкова машина Тюрінга
– Симетрична машина Тюрінга
– Повна машина Тюрінга
– Однозначна машина Тюрінга
– Універсальна машина Тюрінга
– Машина Зенона
26. Машина Поста
(машина Поста-Тюрінга)
• Машина Поста має нескінченну інформаційну стрічку, на яку
записують інформацію в двійковому алфавіті {0,1}. Алгоритм
задають як скінченну впорядковану послідовність
перенумерованих правил — команд Поста.
• Є шість типів команд Поста:
– 1) відмітити активну комірку стрічки, тобто записати в неї І і
– перейти до виконання i-ї команди;
– 2) стерти відмітку активної комірки, тобто записати в неї 0 і
– перейти до виконання i-Ї команди;
– 3) змістити активну комірку на одну позицію вправо і перейти
– до виконання i-ї команди;
– 4), змістити активну комірку на одну позицію вліво і перейти
– до виконання i-ї команди;
– 5) якщо активна комірка відмічена, то перейти до виконання і-
– ї команди, інакше - до виконання j-Ї команди;
– 6) зупинка, закінчення роботи алгоритму.
27. Операторні алгоритмічні системи
• Однією з особливостей розглянутих алгоритмічних систем, за винятком машини
Поста, є незмінність набору допустимих засобів, використовуваних для запису
алгоритмів і процесів Їхнього виконання. В системі нормальних алгоритмів
такими є один оператор(підстановки) і один розпізнавач (входження); у системі
рекурсивних функцій фіксованим є набір базових функцій (S, 0, /) і набір
операторів (S, R, М, М’); під час обчислення на машині Тьюрінга елементарні
такти обмежені фіксованим набором операцій (заміна символа в комірці, зміна
стану машини і позиції головки).
• Водночас під час вивчення конкретних алгоритмів бажано мати такі допустимі
засоби їхнього опису, які найзручніші для цього класу алгоритмів. Наприклад,
алгоритми лінійної алгебри найзручніше описувати за допомогою чотирьох
арифметичних дій, а алгоритми обчислення функцій алгебри логіки - за
допомогою тих логічних операцій, у термінах яких ці функції записані.
• Операторні алгоритмічні системи першими почали орієнтувати на конкретні
мови програмування, тобто на реальні обчислювальні машини. До визначення
алгоритму в разі практичного використання ставлять такі вимоги:
– можливість вибору засобів опису алгоримів залежно від класу алгоритмів;
– дозвіл формування команд алгоритму в процесі його виконання;
– дозвіл використання широкого діапазону елементарних логічних операцій над
об’єктами.
30. Рівнодоступна адресна машина
• Однією з найпоширеніших операторних алгоритмічних систем, які
найбільше наближені до практичної реалізації, є машина з довільним
доступом до пам’яті, або рівнодоступна адресна машина (РАМ).
Машина з довільним доступом до пам’яті моделює обчислювальну
машину з одним суматором, у якій команди програми не можуть самі
себе змінювати.
• РАМ складається з вхідної стрічки, з якої вона може лише читати,
вихідної стрічки, на яку вона може лише записувати, і пам’яті.
• Пам’ять складається з послідовності регістрів r0, r1,.., кожен з яких
здатний зберігати довільне ціле число.
• Програма для РАМ не записується в пам’ять і тому не може сама себе
змінювати. Програма - це послідовність (можливо) помічених команд.
Вони нагадують ті, які звичайно трапляються в реальних
обчислювальних машинах. Передбачають, що є арифметичні команди,
команди введення-виведення, непряма адресація (для індексації
масивів) і команди розгалуження.
• Всі обчислення відбуваються в першому регістрі r0, який називають
суматором, він, як і будь-який регістр пам’яті, може зберігати довільне
ціле число.