Алгоритм, его свойства. Формализация понятия алгоритма.


Алгоритм Машина Тьюринга Алгоритм Маркова Машина Поста Пример машины Тьюринга Проверка знаний

Алгоритм


Чаще используется интуитивное понятие:
Алгоритм - это строгая и четкая конечная система правил, определяющая последовательность действий над некоторыми объектами, которая после конечного числа шагов приводит к достижению поставленной цели
(т.е. если эту систему правил (как инструкцию) вручить разным людям, не знакомым с сутью дела, они, следуя этой системе, будут действовать одинаково).
Появились задачи, для которых невозможно было построить алгоритм. Но нельзя было доказать невозможность алгоритмического решения задачи. Следовательно, возникла проблема: построить формальное определение алгоритма.
Объекты реального мира можно изобразить словами в различных алфавитах (слово - любая конечная последовательность букв). Это позволяет считать, что объектами работв алгоритмов могут быть только слова, следовательно, уточненное определение алгоритма:
Алгоритм - это четкая конечная система правил для преобразования слов из некоторого алфавита в слова этого же алфавита (входное слово, выходное слово).
Теперь осталось формально описать действия над объектами словами и порядок этих действий.
Вверх

Машина Тьюринга (больше...)

30-40-е гг.Первое определение. Английский математик Тьюринг (1936) описал схему некоторой абстрактной машины и предложил назвать алгоритмами то, что умеет делать машина, т.е. он сформулировал правила выполнения действий при помощи описания некоторой инструкции.
Если машина не останавливается, то неприменима к слову.
Тезис Тьюринга (основная гипотеза теории алгоритмов в форме Тьюринга) и одновременно формальное определение алгоритма:
Всякий алгоритм может быть реализован машиной Тьюринга.

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

Алгоритм Маркова

Советский математик Марков предложил алгоритмическую схему на основе других принципов. Обозначая большими буквами слова в некотором алфавите, можем записать алгоритм в следующем виде:
A1{<->}B1
Ai{<->}Bi
...
An{<->}Bn
Т.е. упорядоченный набор пар слов, соединенных между собой стрелками двух видов -> или |-> (|-> - завершенная формула.) Пара - формула подстановки (на следующем шаге также к самому началу! Всегда заменяется первое вхождение).
Пример:
a -> |0|
b -> |00|
c -> |000|

Входное слово: caab
Результат:
c|0|ab
c|0||0|b
c|0||0||00|
|000||0||0||00|
Схема Маркова также не может быть физически реализована, т.к. допускает неограниченно большую длину входящих слов, возникающих в процессе подстановки.
Тезис Маркова (основная гипотеза теории алгоритмов в форме Маркова):
Всякий алгоритм нормализуем.

Вверх

Машина Поста (больше...)

На бесконечную ленту можно записывать только 0 или 1 (любой алфавит может быть закодирован 0 или 1). Каждому состоянию у Поста соответствует не строка программы, как у Тьюринга, а одна команда из шести типов:
  1. записать 1, перейти к i (либо поставить метку V и перейти к i)
  2. записать 0, перейти к i (либо стереть метку и перейти к i)
  3. сдвиг влево, перейти к i
  4. сдвиг вправо, перейти к i
  5. останов (либо "стоп")
  6. если 1, то к i, иначе к j
Все состояния пронумерованы. Если закодировать исходный алфавит 0 и 1, то каждое состояние машины Тьюринга описывается несколькими состояниями машины Поста.
Вверх


Литература:

  1. Лекция Ливак Е.Н. "Понятие Алгоритма"
  2. В. Успенский "Занимательные лекции по математике. Машина Поста."
  3. Лекция Гончаровой М.Н. "Машины Тьюринга."

Подготовил: Дубровка Евгений, МФ ПМ 1 курс, 2002