Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Шпаргалка по теории автоматов (ТА).doc
Скачиваний:
204
Добавлен:
11.04.2014
Размер:
864.77 Кб
Скачать

Вопрос 40. Использование мт для анализа алгоритмов.

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

(Док-во неразрешимости проблемы останова.)

К полностью неразрешимым относится проблема тотальности – ответ на вопрос, остановится ли данный алгоритм на любых входных данных.

Другие примеры неразрешимых проблем : проблема соответствия Поста, проблема эквивалентности грамматик, проблема эквивалентности алгоритмов, проблемы, связанные с языками самой машины Тьюринга (по теореме Райса).

Теорема Райса : всякое нетривиальное свойство языков, допускаемых МТ, являетсмя неразрешимым.

Методика доказательств – генеральная линия – доказать возможность или невозможность построения соотв. останавливающейся МТ.

Проблема – это язык, решение – это Да/Нет. Если удается доказать, что в такой постановке задача неразрешима, то и дальше нечего доказывать, иначе нужно перейти от частичной проблемы к полной.

Общий метод – использование сводимости одних языков (проблем) к другим.

Кроме того, выделяют классы сложности проблем, известные как P, NP и т.н. NP-полные проблемы, для классификации трудноразрешимых проблем.

Фундаментальным является разделение разрешимых проблем на разрешимых за полиномиальное время, или за экспоненциальное. Первый класс проблем можно реализовывать на ВМ, для вторых нужно искать приближенные методы решения.

Полином это : T(n) = K1na+ K2 nb + K3 nc + …. a – степень полинома.

Экспонециальное время оценивается как O(2cn) – показательная функция.

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

В теории труднорешаемости в отличие от теории неразрешимости все построено на гипотезе о P <> NP.

P – проблемы – это разрешимые за полиномиальное время на ДМТ;

NP – проблемы это разрешимые за полиномиальное время на НМТ (практическая ценность отсутствует ?!) – проблема коммивояжера;

NP – полные проблемы – это разрешимые за полиномиальное время на НМТ, такие, что они являются NP, и любая NP-проблема может быть сведена к этой проблеме за полиномиальное время.

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

Если хотя бы одна NP-полная проблема будет решена, это означает, что P = NP !!

Пример NP-полной проблемы : проблема выполнимости булевых формул !!!

(теорема Кука) (и проблема коммивояжера тоже).