Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Лекции / Лекция 4

.docx
Скачиваний:
18
Добавлен:
02.10.2020
Размер:
396.84 Кб
Скачать

Нормальный алгоритм Маркова (НАМ)

А. Марков предложил концепцию нормального алгорифма в качестве математической модели понятия вычислительной процедуры.

Тезис Маркова

Для любого алгоритма в произвольном конечном алфавите А можно построить эквивалентный ему нормальный алгоритм.

Непустой конечный упорядоченный набор формул подстановки называется нормальным алгоритмом Маркова.

Нормальный алгоритм Маркова (НАМ) задается.

    • Алфавитом A = { , , … )

    • Нормальной схемой подстановки – множество формул подстановки

    • Множеством завершающих формул

Записать алгоритм в виде НАМ – значит предъявить набор формул:

Выполнение алгоритма распадается на такты.

Первый такт начинается с проверки первой формулы подстановки.

Объект описывают в виде слова в заданном алфавите.

Каждый объект может находиться в различных состояниях, чему соответствуют различные слова.

Операция определяется над описанием объекта (словом) и её результатом является новое (изменённое) слово.

Нормальная схема подстановок – это элементарное действие – конечный набор формул подстановки, состоящий из пар слов, где левое слово переходит в правое.

Формулой подстановки (ФП) называется запись вида

α→β (читается «α заменить на β»),

где α и β – любые слова (возможно, и пустые)

α называется левой частью формулы, β – правой частью.

В формулах могут использоваться два вида стрелок:

Обычная стрелка и стрелка с хвостиком

Формула с обычной стрелкой называется обычной формулой, а формула со стрелкой «с хвостиком» –заключительной формулой.

Необходимые уточнения:

1. Если левая часть ФП входит в слово Р, то говорят, что эта формула применима к P, если нет, то формула считается неприменимой к Р, и подстановка не выполняется.

2. Если левая часть α ФП входит в Р несколько раз, то на правую часть β, по определению, заменяется только первое вхождение α в Р:

3. Если правая часть β ФП – пустое слово, то подстановка α→ сводится к вычеркиванию части α из Р (в формулах подстановки не принято как-либо обозначать пустое слово):

4. Если в левой части ФП указано пустое слово, то подстановка → β сводится к приписыванию β слева к слову P

Из этого правила вытекает: формула с пустой левой частью применима к любому слову. Формула с пустыми левой и правой частями не меняет слово.

5. Если на очередном шаге была применена обычная формула (α→β), то работа НАМ продолжается.

6. Если на очередном шаге была применена заключительная формула, то после ее применения работа НАМ прекращается (то слово, которое получилось в этот момент, и есть выходное слово).

Разница между обычной и заключительной формулами проявляется в том, что после применения первой работа НАМ продолжается, а после второй – прекращается.

7. Если на очередном шаге к текущему слову неприменима ни одна формула, то и в этом случае работа НАМ прекращается, а выходным словом считается текущее слово.

Вставка новых символов в слово – это замена некоторого подслова на подслово с большим числом символов.

При этом не надо заботиться, чтобы освободить место для дополнительных символов – в НАМ слово раздвигается автоматически (в отличие от машины Тьюринга).

Удаление символа – это замена некоторого подслова на подслово с меньшим числом символов.

При этом никаких пустых позиций внутри слова не появляется, сжатие слова в НАМ происходит автоматически.

Правила выполнения НАМ

Задается некоторое входное слово Р. Где именно оно записано – не важно (в НАМ этот вопрос не оговаривается).

Работа НАМ сводится к выполнению последовательности шагов.

  1. На каждом шаге входящие в НАМ формулы подстановки просматриваются сверху вниз и выбирается первая из формул, применимых к входному слову P, т.е. самая верхняя из тех, левая часть которых входит в P.

  2. Далее выполняется подстановка согласно найденной формуле. Получается новое слово Р ′.

  3. На следующем шаге это слово Р берется за исходное и к нему применяется та же самая процедура, т.е. формулы снова просматриваются сверху вниз, начиная с самой верхней и ищется первая формула, применимая к слову Р ′, после чего выполняется соответствующая подстановка и получается новое слово Р ′′ и т. д.:

  1. Если замена произошла, то снова выполняется первая операция, если нет, то выполняется следующая операция.

На каждом шаге формулы в НАМ всегда просматриваются, начиная с самой первой!!!

  1. НАМ останавливается по двум причинам:

  • Либо была применена заключительная формула,

  • Либо ни одна из формул не подошла (в обрабатываемом слове нет вхождений).

То и другое считается «хорошим» окончанием работы НАМ. В обоих случаях говорят, что НАМ к входному слову.

Если случится так, что НАМ никогда не остановится (это происходит, когда на каждом шаге есть применимая формула и эта формула обычная), то говорят, что НАМ не применим к входному слову.

В этом случае ни о каком результате нет и речи.

Сравнение схемы Маркова и машины Тьюринга

  • Не могут быть физически реализованы т.к. они допускают неограниченно большую длину входных слов и слов, возникающих в процессе подстановок.

  • управление последовательностью доступа

  • Последовательность действий в МТ управляемая (за счет смены состояний, сдвиг и влево и вправо).

  • схема Маркова жестко закрепляет последовательность доступа (последовательный перебор ФП, а после каждого применения не завершающей формулы возврат к самой первой формуле).

  • элементарная операция

  • в МТ проста – замена буквы в ячейке ленты

  • В НАМ мощная – замена любого слова на другое слово.

Два простых достаточных признака применимости НАМ ко всем входным словам: 

  1. во всех формулах подстановок левые части не пустые, а в правых частях нет тех букв, которые входят в левые части; 

  2. в каждом правиле подстановки правая часть всегда короче, чем левая. Первый признак гарантирует от «зацикливания», поскольку при замене вхождений левых частей на правые алгоритм с разными алфавитами левых и правых частей не может сам создавать для себя новые возможности выполнения.  Если выполняется второй признак, то после каждого применения формулы подстановки длина слова уменьшается, поскольку большее подслово заменяется на меньшее. Поэтому число замен не может превысить длину исходного слова. Алгоритм, удовлетворяющий второму признаку, не может содержать формул подстановки с пустыми левыми частями, так как не бывает слов короче пустого.

Пример: Задан

  • алфавит А={+, 1} и

  • система подстановок:

1+1 → 11 - обычная

1 → 1 - заключительная

  • входное слово р = 11+11+1, которое перерабатывается алгоритмом в строку:

1 шаг. 11+11+1 2 шаг. 1111+1

3 шаг. 11111

4 шаг. 11111

А реализует сложение единиц.

А нам надо заменить только первое вхождение. Это значит, что нам важен порядок перечисления формул.

Соседние файлы в папке Лекции