Нормальні алгоритми
Нормальні алгоритми Маркова (нормальні алгорифми) — формалізація поняття алгоритму, що є системою послідовних застосувань підстановок до слів певного алфавіту, введена математиком А. А. Марковим у 1956-му році. Доведено, що нормальні алгоритми повні за Тюрінгом, тобто можуть описувати всі алгоритми, що можуть виконуватись будь-яким комп'ютером.
Визначення нормального алгоритму
Будь-який нормальний алгоритм визначається вказанням алфавіту, в якому він діє, та схеми нормального алгоритму. Алфавітом нормального алгоритму може бути довільний скінченний алфавіт A.
Схемою нормального алгоритму називають список формул підстановок цього алгоритму. Формулами підстановок в алфавіті A називаються вирази подібні p → q (проста підстановка) або p →• q (заключна підстановка), де p та q — деякі слова в алфавіті A, які називаються лівою та правою частинами формули відповідно (вважається, що алфавіт A не містить символів → та →•).
Принцип дії
Застосування нормального алгоритму до слова s полягає в такому.
- В заданому списку формул підстановок знаходять першу формулу, ліва частина якої входить до слова s. Знаходять перше входження цієї частини в слові s і замість цього входження підставляють праву частину формули. Це дасть нове слово s1.
- З отриманим словом s1 повторюють попередній крок.
Цей процес може обірватись сам собою на деякому слові, в яке не входить ліва частина жодної з формул алгоритму. Крім того, постулюють, що описаний вище процес зупиняється, коли до чергового слова застосувати одну із заключних формул підстановки, тобто, формул виду p →• q. Якщо процес закінчується, то отримане останнє слово є результатом застосування алгоритму до слова s.
Перший приклад роботи
Як приклад схеми нормального алгоритму можна навести наступну схему в алфавіті з п'яти літер |*abc, яка реалізовує унарне множення:
При застосуванні алгоритму з наведеною вище схемою до слова будуть отримуватись слова:
- ,
- ,
- ,
- ,
- ,
- ,
- ,
- ,
- ,
- ,
- .
Результатом застосування буде слово , що узгоджується з .
Другий приклад роботи
Даний алгоритм перетворює двійкові числа в «унарні» (в яких записом цілого невід'ємного числа N є рядок з N паличок). Наприклад, двійкове число 101 перетвориться в 5 паличок: |||||.
Алфавіт
{ 0, 1, | }.
Правила
- 1 → 0|,
- |0 → 0||,
- 0 → (порожній рядок).
Покрокове виконання алгоритму
При застосуванні алгоритму з наведеною вище схемою до слова 101 будуть отримуватись слова:
- 0|01,
- 0|00|,
- 00||0|,
- 00|0|||,
- 000|||||,
- 00|||||,
- 0|||||,
- |||||.
Можливості нормальних алгоритмів
Доведено, що відносно виконуваних перетворень, нормальні алгоритми збігаються з іншими класами алгоритмів, введених для уточнення інтуїтивного поняття алгоритму, наприклад, з машинами Тюринга.
Аналог тези Чорча для нормальних алгорифмів є такий принцип нормалізації А. А. Маркова: будь-який алгорифм в алфавіті A достатньо еквівалентний відносно A деякому нормальному алгорифма над A.
Визначення алгоритмів у нормальному вигляді дуже схоже на числення, і це є дуже корисним у випадках, коли поняття числення в досліджуваному розділі математики або кібернетики широко застосовують, як, приміром, в математичній логіці або в математичній лінгвістиці.
Використовуючи поняття нормального алгоритму, Марков та інші дослідники довели нерозв'язність цілого набору алгоритмічних проблем.
Див. також
Примітки
Література
- Енциклопедія кібернетики, т. 2, c. 90—91.
- Джон Хопкрофт, Раджів Мотані, Джеффрі Ульман РОЗДІЛ 8. Введення в теорію машин Тюрінга // Введення в теорію автоматів, мов і обчислень. — М., 2002. — С528.
- Марков, А. А. (1954). Теория алгорифмов. «Труды математического ин-та им. В. А. Стеклова АН СССР» 42. (рос.)
- Марков А. А., Нагорный Н. М. Теория алгорифмов. — М.: Наука, 1984. — 432 с. (рос.)