- •Теория алгоритмов Алгоритм и его свойства
- •Формализация понятия «алгоритм»
- •Машины Поста
- •Машины Тьюринга
- •Нормальные алгорифмы Маркова
- •Рекурсивные функции
- •Сложность алгоритма
- •7. Формальные грамматики
- •7.1. Понятие формальной грамматики
- •7.2. Деревья вывода
- •7.3. Классификация языков по Хомскому
- •7.4. Распознающие автоматы
- •7.5. Понятие транслятора
- •7.6. Основные функции компилятора. Лексический анализ
- •7.7. Переход от недетерминированного распознающего автомата к детерминированному
- •7.8. Переход от праволинейной грамматики к автоматной
- •7.10. Детерминированные автоматы с магазинной памятью
Машины Тьюринга
Машина Тьюринга – это метод математического моделирования.
Машина Тьюринга включает:
1. Потенциально бесконечную (вправо) ленту, разделенную на ячейки.
2. Считывающе-записывающую головку с устройством управления (УУ).
3. Алфавит внутренних состояний {q0, q1, ..., qn}.
4. Входной-выходной алфавит.
Определяется начальная конфигурация. Головка обозревает какую-то ячейку и устройство управления находится в начальном состоянии q1.
УУ на основании считанного из ячейки символа и внутреннего состояния пишет в ячейку символ (возможно, тот же самый), совершает действие D и переходит в новое внутреннее состояние (возможно прежнее). Это и есть команда Машины Тьюринга, которую можно записать так:
aiqi ajDjqj.,
где D = {Л, П, С} – множество действий: Л – влево, П – вправо, С – стоять;
– пустой символ.
Совокупность команд составляет программу машины Тьюринга, которая обычно оформляется в виде таблицы.
Машина заканчивает работу, когда переходит в состояние q0.
Пример: Построим машину Т, которая в сплошной последовательности 1 стирает первую и две последние. ( – пустой символ).
|
q1 |
q2 |
q3 |
q4 |
1 |
Пq2 |
1Пq2 |
Лq4 |
Сq0 |
|
– |
Лq3 |
– |
– |
Нормальные алгорифмы Маркова
Автор – А. А. Марков, отдавал предпочтение транскрипции алгорифм. Нормальные алгорифмы Маркова представляются нормальной схемой подстановок, которая состоит из совокупности подстановок, расположенных в определенном порядке. Подстановки имеют вид: P ()Q (P Q – (простая) подстановка, P Q – заключительная подстановка).
Говорят, что строка R входит в строку L, если L имеет вид L1RL2.
Говорят, что подстановка применима к слову, если строка, соответствующая левой части подстановки, входит в слово. Применение заключается в замене в преобразуемом слове левой строки подстановки правой.
Две особые подстановки:
P – аннулирующая;
Q – порождающая.
Механизм работы нормальных алгорифмов:
0) Дано (преобразуемое) слово – цепочка символов фиксированного алфавита и нормальная схема подстановок, содержащая фиксированную последовательность простых и заключительных подстановок.
1) Слово всегда просматривается слева направо.
Схема подстановок просматривается всегда начиная с первой подстановки и, если подстановку можно применить, то она применяется к самому левому вхождению этой строки в преобразуемое слово.
2) Работа алгоритма заканчивается тогда, когда ни одна из подстановок не применима, либо использована заключительная подстановка.
Примеры.
Нормальная схема подстановок |
преобразуемое слово
|
xx y |
xxxyyyzzz |
xy x |
yxyyyzzz |
yzy x |
yxyyzzz |
zz . z |
yxyzzz |
yy x |
yxzzz |
|
yxzz |
|
МУХА |
Х К |
МУКА |
М Р |
РУКА |
КА ЛОН |
РУЛОН |
РУ . С |
СЛОН |
Примеры алгорифмов, использующие специальные символы, аннулирующие и порождающие подстановки:
Удвоение исходной строки: |
Обращение исходной строки: |
х хх у уу хх хх ху ух ух ху уу уу .
|
х х у у . ху ух ух ху
|
Композиция алгоритмов A и B в алфавите A – это алгоритм C, получающийся в результате последовательного применения алгоритмов к заданному слову P (рис. 1), т.е. .
Рис. 1