- •1. Словарные функции.
- •Словарные функции.
- •2. Вычислимые функции. Мт.
- •3. Словарное предствление мт.
- •4. Массовые алгоритмические проблемы. Разрешимые и перечислимые множества.
- •5. Теорема Поста.
- •6. Проблема остановки. Теорема Тьюринга.
- •7. Проблема пустой ленты. Проблема зацикливания.
- •Проблема зацикливания.
- •8. Понятие массовой и индивидуальной задачи.
- •9. Понятие полиномиального алгоритма и труднорешаемой задачи
- •10. Понятие схемы кодирования.
- •11. Задачи распознавания. Переход от оптимизационной задачи к задаче распознавания
- •Задачи разновидности языка и кодирование.
- •Примеры. Массовая задача и изоморфизм подграфу.
- •12. Язык. Связь между задачами распознавания и языками. Задачи разновидности языка и кодирование.
- •Примеры. Массовая задача и изоморфизм подграфу.
- •13. Детерминированные мт и класс p.
- •14. Недетерминированное вычисление и класс np.
- •15. Взаимоотношения между класами p и np.
- •16. Полиномиальная сводимость.
- •18. Теорема Кука. 6 основных np-полных задач.
- •Доказательство результатов об np-полноте.
- •Шесть основных np-полных задач.
- •19. Методы док-ва np-полноты. Метод сужения. Некоторые методы доказательства np-полноты.
- •Сужение задачи.
- •20. Методы доказательства np-полноты. Метод локальной замены Некоторые методы доказательства np-полноты.
- •Локальная замена.
- •21. Методы доказательства np-полноты. Метод построения компонент. Некоторые методы доказательства np-полноты.
- •Метод построения компонент.
- •22. Анализ подзадач np-полной задачи. Применение теории np-полноты для анализа задач.
- •Анализ подзадач.
- •23. Сильная np-полнота.
- •24. Псевдополиномиальные алгоритмы.
- •25. Именная форма. Высказывания. Операции над высказываниями.
- •26. Основные логические законы. Логические тождества.
- •27. Правила обращения с кванторами.
- •28. Техника доказательств.
- •29. Операции над множествами и одноместными предикатами.
- •30. Булевы функции.
10. Понятие схемы кодирования.
Рассмотрим схему кодирования.
Предположим, например, что условие решаемой задачи представлено графом G=(V,E), где
V – множество вершин,
E – множество рёбер.
Причём, каждое ребро понимается как неупорядоченная пара вершин, которые соединяются.
Условия данной задачи могут быть написаны разными способами.
Способ записи |
Цепочка символов |
Длина цепочки |
|
V1 |
|
V2 |
Список вершин цепочки |
V[1] V[2] V[3] V[4] (V[1] V[2]) (V[2] V[3]) |
36 |
|
|||
Список соседей |
(V[2]) (V[1] V[3]) (V[2]) ( ) |
24 |
||||
Строки матрицы инциденции |
0100 / 1010 / 0100 / 0000 |
19 |
||||
V3 |
|
V4 |
Представленные схемы кодирования дают входы различной длины, однако можно проверить, что они отличаются друг от друга не более чем полиномиальным образом. Это означает, что полиномиальный алгоритм, работающий с входными данными любой из кодировок, в любой другой кодировке будут также иметь полиномиальную сложность. Неформально определяя “разумную” схему кодирования, мы можем выдвинуть два требования к ней:
1. Код любой индивидуальной задачи I должен быть “сжатым”, т.е. не содержать избыточной информации или избыточных символов.
2. Числа, входящие в условие задачи I должны быть представлены в двоичной системе счисления (или с любым другим основанием отличным от 1).
Если ограничимся рассмотрением только тех схем кодирования, которые удовлетворяют этим условиям, то выяснение вопроса о том, является ли данная задача трудно решаемой, не будет зависеть от выбора конкретной схемы кодирования. Все эти схемы будут полиномиально эквивалентны между собой. Аналогичное замечание можно сделать и относительно выбора модели вычислительного устройства. Все известные в настоящей момент времени модели эквивалентны относительно полиномиальновременной сложности. В следующей таблице представлено время, требуемое машиной А для моделирования работы алгоритма сложности T(n) на машине B.
Моделируемая машина B |
Моделирующая машина A |
||
1МТ |
kМТ |
МПД |
|
М.Т. с 1 лентой |
- |
O(T(n)) |
O(T(n)∙logT(n)) |
М.Т. с k – лентами |
O(T2(n)) |
- |
O(T(n)∙logT(n)) |
Машина произвольного доступа (МПД) |
O(T3(n)) |
O(T2(n)) |
- |
Можно ожидать, что и любая иная “разумная модель” вычислительного устройства будет полиномиально эквивалентна рассмотренной модели. Под словами «разумная модель» мы будем понимать то, что объём работы, выполняемый вычислительным устройством в единицу времени, ограничивается сверху полиномом.