§ 12.6 Понятия языка и грамматики. Алгоритм и машина Тьюринга
С помощью конечного автомата можно реализовать, например, алгоритм сложения дух чисел. Однако не каждый алгоритм допускает реализацию в виде конечного автомата.
Для расширения понятия автомата как инструмента реализации алгоритмов нам понадобится ряд понятий.
Определение Конечное число элементов назовем словарем; элементы словаря называются символами (словами); последователь ности символов называются цепочками (предложениями); множест во выделенных предложений называется языком над словарем .
Обозначение - язык над словарем ; - множество всех цепочек.
Определение Грамматикой называется конечный механизм задания языка.
Приведем два таких механизма.
Определение Порождающей грамматикой языка называет ся конечный набор правил, позволяющий строить правильные предло жения и только их.
Определение Распознающей грамматикой языка называется
критерий принадлежности данной цепочки языку.
Роль распознающей грамматики может выполнять следующий автомат без выходов.
Определение Конечным автоматом-распознавателем называется пятерка , где - конечное множество состояний, - входной алфавит, - начальное состояние, - функция переходов, - множество финальных состояний. Конечный автомат-распознаватель допускает цепочку , то есть , тогда и только тогда, когда переводит его из состояния в состояние .
Определение Язык, для которого существует распознающий его автомат-распознаватель, называется автоматным языком.
_____
Определение Алгоритм – определенное на некотором языке конечное предписание (рецепт), задающее дискретную последователь ность исполняемых элементарных операций для решения задачи.
ЗАМЕЧАНИЕ Существует несколько формальных моделей
алгоритма: Геделя, Черча, Тьюринга, Маркова. Доказано, что
алгоритм, реализуемый в одной из этих моделей, реализуем и в
остальных.
Конечный автомат-распознаватель выполняет преобразование информации по определенным правилам, то есть реализует некоторый алгоритм обработки информации. Один из главных вопросов информа тики – построение автоматического устройства, реализующего алгори тмы. Мы показали, что не существует автомата-распознавателя, реализующего алгоритм задания языка , , как и не существует автомата, реализующего алгоритм умножения двух произвольных чисел. Для того чтобы обобщение понятия авто матно реализуемых алгоритмов было более наглядным, рассмотрим
такую «механическую» интерпретацию конечного автомата-распознавателя.
ЗАМЕЧАНИЕ Конечный автомат (КА) – это устройство с
конечным числом внутренних состояний, одним входом и одним
выходом. Вход реализован в виде считывающей головки, которая
движется вдоль входной ленты и потактово считывает содержимое
ее ячеек (буквы). Выход реализуется виде печатающей голов
ки, которая синхронно движется вдоль выходной ленты и печатает
на ней выходной символ . При этом внутреннее состояние
автомата меняется с на . Функционирование КА, то есть его
программа, вполне определяется заданием вход-выходного отобра
жения с .
Определение Машиной Тьюринга (МТ) называется устройство с 1) одной бесконечной лентой, с которой считываются входные и куда впечатываются выходные символы, 2) одной головкой чтения-записи, которая может двигаться по рабочей ленте в любую сторону. На каждом такте МТ считывает символ из обозреваемой ячейки и:
1) изменяет свое состояние (на ) в зависимости от этого символа и
текущего состояния ,
2) впечатывает символ в обозреваемую ячейку и
3) головка чтения записи перемещается в направлении : влево (),
вправо () или остается на месте ().
Функционирование МТ, то есть программа машины Тьюринга – это конечный список пятерок , порождающих частичное отображение , где - входной и одновременно выходной алфавит, . Если в этой программе нет пары , то машина останавливается. На ленте присутствует знак "Останов" , который отделяет цепочки значащих символов.
При таком определении машина Тьюринга "перерабатывает" (заменяет) входную цепочку на выходную. То есть она является автоматом-преобразователем отдельных цепочек.
ЗАМЕЧАНИЕ Машина Тьюринга реализует алгоритм перемножения произвольных чисел. В качестве распознавателя МТ распознает, например, язык . Программой такой МТ является множество пятерок
.
Здесь - финальное состояние. Ее граф имеет вид
Определение Проблема называется алгоритмически неразре шимой, если машина Тьюринга не распознает язык этой проблемы.
Пример Ю. Матиясевич доказал, что 10-ая проблема Гильберта алгоритмически неразрешима.