
- •7.050102 “Программное обеспечение автоматизированных систем”,
- •7.080407 “Компьютерный эколого-экономический мониторинг ”)
- •Донецк - 2009
- •Рекурсивные функции
- •Теоретическая справка
- •Примитивно-рекурсивные функции
- •Задание на лабораторную работу
- •Контрольные вопросы
- •Машины тьюринга
- •Теоретическая справка Символьные конструкции
- •Определение машины Тьюринга (мт)
- •Задание на лабораторную работу
- •Контрольные вопросы
- •Композиция машин тьюринга
- •Теоретическая справка
- •1. Последовательная композиция машин Тьюринга
- •2. Параллельная композиция машин Тьюринга
- •3. Разветвление или условный переход в композиции машин Тьюринга
- •Задание на лабораторную работу
- •Контрольные вопросы
- •Нормальные алгоритмы маркова
- •Теоретическая справка
- •Функционирование нам
- •Задание на лабораторную работу
- •Контрольные вопросы
- •Перечень рекомендованной литературы
- •7.050102 “Программное обеспечение автоматизированных систем”,
- •7.080407 “Компьютерный эколого-экономический мониторинг ”
Нормальные алгоритмы маркова
Цель работы: получить практические навыки в записи алгоритмов с использованием нормальных алгоритмов Маркова.
Теоретическая справка
Фиксируем
некоторый алфавит
.
Пусть символы «стрелка» и «точка» не
принадлежат алфавиту
:
,
.
– некоторые, возможно пустые, слова в
алфавите
.
Марковская
подстановка
(МП) – это операция над словами
,
заключающаяся в следующем:
-
в исходном слове
ищется самое левое вхождение слова
, если оно существует,
заменяем на
в слове
;
-
полученное слово
является результатом применения марковской подстановки к слову
;
-
если слово
не входит в слово
, то говорят, что данная Марковская подстановка неприменима к слову
.
Обычно
МП записывается как
.
в
общем случае длины слов
могут не совпадать.
длины
слов
в общем случае также могут не совпадать.
Если
или
,
то соответствующее слово является
пустым. В МП пустое слово никак не
обозначается и не занимает никакого
места.
В
любом слове
имеется несколько вхождений пустого
слова: перед первой буквой; после
последней буквы; между любой парой букв
внутри слова.
Частные
случаи МП:
-
,
– пусто: слово
приписывается перед
.
-
,
– пусто: слово
исключается из
.
Нормальным
алгоритмом Маркова (НАМ)
в алфавите
называется упорядоченная конечная
последовательность (столбец) Марковских
подстановок типа:
или (и)
,
где
– слова в алфавите
,
а символы
и
.
– заключительная
подстановка.
Запись
НАМ – столбец подстановок вида
.
Функционирование нам
-
,
– номер подстановки в схеме НАМ.
-
Выбирается
-тая МП, пусть она имеет вид
-
Левая часть подстановки
ищется в преобразуемом слове
.
-
Если
найдено, то переход к пункту 7, иначе к пункту 5.
-
-
Если
не превышает общего числа подстановок, то переход к пункту 2, иначе – алгоритм заканчивает работу, останавливается.
-
Выполняется замена
на
в преобразуемом слове
(крайнее левое вхождение
в
).
-
Если эта подстановка является заключительной, т.е. имеет вид
, алгоритм останавливается, иначе переход к пункту 1.
После
применения подстановки осуществляется
заново просмотр столбца подстановок,
а не продолжается просмотр
.
Процесс заканчивается, если:
-
не найдена применяемая подстановка;
-
выполнена заключительная подстановка.
Алфавит
называется расширением
алфавита
,
если
.
Нормальный
алгоритм
над алфавитом
– это нормальный алгоритм в алфавите
,
который слова в
,
если он к ним применим, перерабатывает
в слова в
.
Нормальный алгоритм в
может использовать только буквы алфавита
.
Нормальный
алгоритм над
может использовать вспомогательные
символы. НАМ над
более мощные, чем НАМ в А.
Одноместная
частичная словарная функция
,
заданная в алфавите
называется нормально
вычислимой,
если существует НАМ над алфавитом
,
перерабатывающий слово
в слово
.
Соответствие между нормальными алгоритмами и алгоритмами в интуитивном смысле выражает принцип нормализации – аналог тезисов Черча и Тьюринга: каков бы ни был алгоритм, для которого допустимыми исходными данными и результатом являются слова в некотором алфавите, существует эквивалентный ему НАМ в этом алфавите.
Пример
1. Нормальный
алгоритм в алфавите
,
перерабатывающий каждое слово вида
в слово
,
где слово
слово,
состоящее из букв
.
Пусть
Тогда, последовательность преобразований
имеет вид:
Пример
2. Нормальный
алгоритм над алфавитом
стирающий все символы входного слова
до первого символа
включительно.
Здесь
вспомогательные символы
и
,
таким образом, алфавит
.
Буква
служит для того, чтобы найти букву 2
последовательным перебором слева
направо. Буква
позволяет стереть буквы
движением справа налево.
Пример
функционирования НАМ по переработке
слова
:
Пример
3. Нормальный
алгоритм над алфавитом
,
который выдает “и”, если в исходном
слове, состоящем из нулей и единиц, есть
комбинация
,
и “л”, в противном случае.
Приведем два примера функционирования НАМ:
1)
2)
Пример 4. Пример НАМ, который работает бесконечно.