Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Стариченко Б.Е. Теоретические основы информатик...doc
Скачиваний:
2
Добавлен:
01.03.2025
Размер:
11.63 Mб
Скачать

7.4. Нормальные алгоритмы Маркова

Кратко обсудим третий подход к уточнению (конкретизации) понятия алгоритма. По смыслу оно близко к идеям Тьюринга, однако, в нем не используются представления о каких-либо машинах. Алгоритм задается системой подстановок, которые указывают, какие замены символов необходимо производить и в каком порядке эти подстановки должны следовать. Такой подход был предложен А. А. Марковым. В начале 50-х годов было введено понятие нормального алгоритма (сам Марков называл их алгорифмами).

Вновь рассмотрим некоторый алфавит А, содержащий конечное число знаков (букв). Введем ряд определений:

Слово - это любая конечная последовательность знаков алфавита

Число символов в слове называется его длиной.

Слово, длина которого равна нулю, называется пустым.

Слово s называется подсловом слова q, если q можно представить в виде q - rst, где rut- любые слова в том же алфавите (в том числе и пустые).

Теперь можно определить понятие алгоритма (не являющееся строгим):

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

В алгоритмах Маркова в качестве элементарного шага алгоритма принимается подстановка одного слова вместо другого. Пусть в алфавите А построено исходное слово Р, которое содержит подслово Рrобщем случае таких подслов в исходном слове может быть несколько), а также имеется некоторое слово Pk в том же алфавите.

Подстановкой называется замена первого по порядку подслова Рr исходного слова Р на слово Pk. Обозначается подстановка Рr Pk.

Алгоритм в данной форме представления задается системой подстановок, которая представляет собой последовательность (список) подстановок. Если в этом списке имеются подстановки с левыми частями, которые входят в Р, то первая из них применяется к Р, в результате чего оно переходит в другое слово P1. К нему вновь применяется схема подстановок и т.д. Процесс прекращается в двух случаях: либо в списке не нашлось подстановки с левой частью, входящей в Рn, либо при получении Рn была применена последняя подстановка.

Пример 7.10

Пусть задан алфавит А = {*,1} и единственная подстановка: *1—>1; Найти результат обработки, если исходным является слово Р = 11*111*1. Применение нормального алгоритма с указанной подстановкой к данному слову дает последовательность (подчеркиванием выделяется преобразуемая комбинация): 11*111*1 → 11111*1 → 111111, т.е. алгоритм находит количество единиц в исходном слове (суммирует числа в унарной системе счисления).

Пример 7.11

Алфавит содержит символы русского языка: А = {а, б ... я}. Найти систему подстановок, обеспечивающих преобразования: путь муть, поломала. Найти результат применения такого алгоритма к исходным словам папа, пузо.

Система подстановок достаточно очевидна: п м, о а.

Применение алгоритма: папамапа мама пузомузомуза.

Пример 7.12

Составить нормальный алгоритм, обеспечивающий выполнение операции сложения в троичной системе счисления.

Алфавит будет содержать символы: А = {0, 1, 2, +}; система подстановок: 0 + 1 → 1, 1 + 1 → 2, 2 + 1 → +10, +1 → 1. Применим алгоритм для различных исходных слов:

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