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