- •Контрольные вопросы по курсу “Алгоритмы и алгоритмическая сложность ”
- •2. Определение машины Тьюринга.
- •3. Тезис Черча-Тьюринга.
- •Машина Маркова.
- •Нумерация машин Тьюринга
- •6. Пример невычислимой функции, построенной по методу диагонализации Кантора
- •7.Распознающие машины Тьюринга и языки. Проблема распознавания языков
- •8.Неразрешимость проблемы самоприменимости
- •9. Неразрешимость проблемы остановки
- •10.Другие примеры неразрешимых алгоритмически задач
- •11.Методы задания машин Тьюринга
- •12.Граф-схемы и их связь диаграммой состояний автоматов.
- •14 .Операторы подстановки, рекурсии и минимизации. Частично рекурсивные функции
- •15.Тезис Черча
- •16.Рекурсивно перечислимые множества. Связь между рекурсивной перечислимостью и рекурсивностью
- •17.Сложность.Подходы к определению сложности алгоритмов
- •18.Алгоритмическая, информационная и инфологическая сложность
- •19. Понятие вычислительной сложности. Примеры ее определения
- •20.Детерминированная и недетерминированная машина Тьюринга
- •21.Класс p и np
- •22.Классы co-np, pspace, npspace
- •23.Задача выполнимость и теорема с.Кука о полноте задачи выполнимость
- •24.Другие np-полные задачи. Примеры сводимости в классе np
- •25.Метод резолюций Робинсона для задачи выполнимость.
- •26.Метод отсечения литер для задачи выполнимость
- •27.Метод групповых резолюций для задачи выполнимость
- •28.Гипотеза p≠np и ее обоснование
- •29.Смотри конспект!
- •30.Распознавание регулярных языков
28.Гипотеза p≠np и ее обоснование
Мы уже знаем, что P NP. Как показал Ладнер, если P≠ NP , то имеется еще целое множество языков в NP, для которых нет полиномиального алгоритма, но сами эти языки не являются полными в классе NP.
В качестве кандидатов на такие языки выступают следующие две известные задачи.
ЗАДАЧА ИЗОМОРФИЗМ ГРАФОВ. Пусть даны два графа. Спрашивается, можно ли так пронумеровать их вершины, что их матрицы инциденций полностью совпадут (читай – один граф можно целиком наложить на другой и наоборот).
ПРОБЛЕМА ПРОВЕРКИ ПРОСТОТЫ ЧИСЛА. Эта проблема имеет важное значение для криптографии (шифрования). Известные алгоритмы проверки чисел на простоту являются переборными
Пусть L какой-нибудь произвольный язык из NP. Под дополнением языка L понимаем язык co-L, такой что
co-L NP
если произвольное слово (задача) y принадлежит L, то у не принадлежит co-L. Наоборот, если y принадлежит co-L, то у не принадлежит L.
29.Смотри конспект!
30.Распознавание регулярных языков
Рассмотренная нами распознающая машина Тьюринга (вопрос 7) является частным вариантом общей машины Тьюринга, так как использует упрощенный набор правил. На самом деле этот специфический вариант машины называют автоматом. Имеются различные типы автоматов. Мы остановимся только на простейших (или регулярных) автоматах. Удобно правила регулярного автомата представлять в виде следующих формул
Qi ak Qj (*)
Такое правило читается следующим образом: если автомат находится в состоянии Qi и поступает символ ak , то автомат переходит в состояние Qj.
Для того чтобы построить таблицу разбора для регулярного автомата достаточно
Каждому правилу (*) сопоставить фрагмент таблицы следующего вида
. . . . . . . |
ak |
Qi |
Qj |
При построении автоматов, распознающих языки, следует состояния автомата определять исходя из того, какого рода символы в этом состоянии ожидаются на входе автомата. Снова рассмотрим простой арифметический язык, но допустим, что кроме переменных языка могут встречаться и числовые константы. Пример.
a+5*c
a-b+c*10-d
a
Пусть в состоянии Q0 ожидается поступление буквы или числовой константы. В состоянии Q1 ожидается поступление знака операции. В состоянии Q2 ожидаем поступления цифры или знака операции. Отсюда получаем правила:
Q0 буква → Q1
Q1 знак_операции → Q0
Q0 цифра→ Q2
Q2 знак_операции → Q0
Q2 цифра → Q2
Вместе с тем, если ввести в язык скобки, то нельзя реализовать его распознавание с помощью регулярного автомата, поскольку нужно обеспечить распознавание парности открывающих и закрывающих скобок.
Имеет место следующий интересный результат.
Теорема. Всякий недетерминированный регулярный автомат можно реализовать с помощью эквивалентного детерминированного регулярного автомата.