Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции 151000.doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
2.32 Mб
Скачать

2 Классы моделей алгоритмов.

Результатами теоретических исследований явились три основных класса математических моделей.

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

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

Второй класс моделей основан на однозначности алгоритма и его техническом исполнении ЭВМ. Одной из таких машин явилась абстрактная машина Тьюринга, представленная на рисунке 1. Она состоит из трех частей: ленты, головки и управляющего устройства. Лента бесконечна и разбита на ячейки. В каждой ячейке может быть записан только один символ.

О

Управляющее

устройство

машины

Лента

Считывающая

головка

Рисунок 1

тсутствие символа в ячейке обозначается специальным «пустым» символом « ». Головка всегда располагается над некоторой ячейкой ленты. Она может читать и писать символы, стирать их и перемещаться вдоль ленты. Число возможных символов конечно, и образуют алфавит машины А = {a1 ,…, am}. Головка в каждый такт работы машины находится в одном из состояний. Множество таких состояний конечно Q = {q1,…,q n} и среди них выделяют начальное q1 и конечное q z состояние.

Элементарный шаг машины Тьюринга состоит из следующих действий:

  • головка считывает символ, записанный в ячейке, над которой она находится;

  • считанный символ а k и текущее состояние головки q j однозначно определяют новое состояние q i , новый записываемый символ а1 и перемещение головки d p (которое может иметь значение на ячейку влево, на ячейку вправо, остаться на месте).

Устройство управления хранит и выполняет команды машины вида q j a k  q i a1 d p.

Полное состояние машины Тьюринга называется конфигурацией и включает в себя состояние головки, состояние ленты (слово, записанное на ней) и положение головки на ленте.

Третий класс моделей алгоритмов очень близок к предыдущему, но не оперирует конкретными машинными механизмами. Он основан, например, на нормальных алгоритмах Маркова.

Для нормального алгоритма задается алфавит, над которым он работает, конечное множество допустимых подстановок и порядок их применения. Если в качестве алфавита взять алфавит русского языка, а в качестве множества подстановок следующие правила замены букв:

  1. Я  У

  2. Л  У

  3. С  М

  4. В  б

  5. Р  Т

  6. Т  Р!

  7. О  х

  8. Н  а,

то, используя правила:

  • проверить возможность подстановок в порядке возрастания их номеров, и если она возможна (левая часть подстановки обнаружена в исходном слове), произвести подстановку (заменив левую часть на правую);

  • если в примененной подстановке имеется символ «!», то преобразования прекращаются, а если нет, то текущее состояние становится исходным и весь процесс начинается заново;

  • если ни одна подстановка не применима, то процесс преобразования завершен;

можно обнаружить, что по заданному алгоритму исходное слово «слон» превращается в слово «муха» по следующей цепочке:

«слон»  «суон»  «муон»  «мухн»  «муха».

В теории алгоритмов строго доказано, что по своим возможностям преобразования нормальные алгоритмы эквивалентны машине Тьюринга и другим моделям, уточняющим понятия алгоритма.

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

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

Знание основных неразрешимостей теории алгоритмов необходимо для специалиста, чтобы предостеречь его от всеобщей алгоритмизации, как знание основных законов физики предостерегает от попыток создания вечного двигателя.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]