- •Введение
- •Тема 1. Логика высказываний
- •1.1. Понятие высказывания
- •1.2. Логические операции
- •1. Отрицание или инверсия ( – не)
- •Конъюнкция ( ,, ·, логическое и )
- •4. Импликация ( ) “если а, то b”
- •6. Сумма по модулю два
- •7. Штрих Шеффера ( , обратная конъюнкция и – не)
- •8. Стрелка Пирса ( , обратная дизъюнкция или – не )
- •1.3. Булевы функции
- •1.3.1. Некоторые определения из теории множеств
- •1.3.2. Булевы функции
- •1.4. Формулы
- •1.5. Равносильные формулы
- •1.6. Подстановка и замена
- •1.7. Формы представления высказываний
- •1.8. Минимизация сложных высказываний методом Квайна
- •1.9. Полные системы функций
- •1.9.1. Система функций { }
- •1.9.2. Замкнутые классы
- •1.9.3. Функциональная полнота
- •Тема 2. Логические исчисления
- •2.1. Интерпретация формул
- •2.2. Примеры тождественно истинных формул высказываний
- •2.3. Формальные теории
- •Выводимость.
- •2.5. Интерпретация формальных теорий
- •2.6. Исчисление высказываний.
- •2.7. Производные правила вывода
- •2.8. Дедукция
- •2.9. Некоторые теоремы теории £
- •Тема 3. Логика и исчисление предикатов
- •3.1. Предикаты
- •3.2. Исчисление предикатов
- •3.3. Интерпретация
- •3.4. Основные равносильности для предикатов
- •3.5. Приведенная форма представления предикатов
- •Тема 4. Автоматическое доказательство теорем
- •4.1. Постановка задачи
- •4.2. Доказательство от противного
- •4.3.Правило резолюции для исчисления высказываний
- •4.4. Правило резолюции для исчисления предикатов
- •4.5. Основные положения мр (выводы)
- •4.6. Логическое программирование
- •Тема 5. Теория алгоритмов
- •5.1. Интуитивное понятие алгоритма
- •5.2. Конкретизация понятия алгоритма
- •5.2.1. Машины Тьюринга
- •5.2.3. Рекурсивные функции
- •5.2.3. Нормальные алгорифмы Маркова
- •5.3. Алгоритмически неразрешимые проблемы
- •5.3.1. Проблема самоприменимости
- •5.3.1.1. Нумерация мт
- •5.3.1.2. Самоприменимость мт
- •5.3.2. Проблема останова
- •5.3.3. Разрешимые и неразрешимые задачи математики
- •5.4. Характеристики сложности вычислений
- •5.5. Классы сложности задач
- •5.5.1. Р задачи
- •5.5.2. Np задачи
5.5. Классы сложности задач
5.5.1. Р задачи
Пусть П – некоторая массовая задача, характеризуемая множеством параметров, IП – индивидуальная задача, в которой эти параметры фиксированы. Пусть с массовой задачей П связана и зафиксирована схема кодирования α, которая ставит каждой индивидуальной
задаче IП в соответствие слово α(I) в некотором алфавите А. При этом под размером задачи I понимается длина слова α(I). Пусть Т –машина Тьюринга, решающая задачу П и
- соответствующая функция временной сложности (по худшему случаю).
О-символика: говорят, что неотрицательная функция f(n) не превосходит по порядку функцию g(n) и пишут f(n)=O(g(n)), если существует такая константа С, что f(n)≤C*g(n) для любого nN.
Говорят, что машина Т решает задачу П за полиномиальное время, если
для некоторого полинома р. В противном случае говорят, что МТ Т решает задачу П за экспоненциальное время. К экспоненциальным оценкам относят, например, оценки вида , т. е. это оценки, которые превосходят любой полином, но меньше, чем для любого е>0.
Про задачу П говорят, что она разрешима за полиномиальное время, если существует машина Тьюринга Т, решающая ее за полиномиальное время. Обозначим через Р класс задач, разрешимых за полиномиальное время.
Имеется существенное различие между алгоритмами полиномиальной и экспоненциальной сложности. Ясно, что любой полиномиальный алгоритм более эффективен, кроме того, такие алгоритмы лучше реагируют на рост производительности компьютеров.
Рассмотрим такой параметр как размер решаемой задачи на ЭВМ за единицу времени с помощью данного алгоритма. Тогда изменение данного параметра при переходе к ЭВМ в 100 раз и в 1000 раз большей производительности для различных функций временной сложности показан в таблице:
Функция временной сложности |
Размер решаемой задачи за сутки |
То же на ЭВМ в 100 раз быстрых
|
То же на ЭВМ в 1000 раз быстрых
|
n |
N1 |
100 N1 |
1000 N1 |
n2 |
N2 |
10 N2 |
31,6 N2 |
n3 |
N3 |
4,64 N3 |
10 N3 |
2n |
N4 |
6,64+N4 |
9,97+N4 |
3n |
N5 |
4,19+N5 |
6,29+N5 |
Из таблицы видно, что в случае полиномиальных алгоритмов размер решаемой задачи при увеличении производительности ЭВМ увеличивается на мультипликативную константу, тогда как для экспоненциальных алгоритмов имеет место увеличение на аддитивную константу.
Полиномиальные алгоритмы обладают свойством “замкнутости”, их можно комбинировать полиномиальные, используя один в качестве “подпрограммы” другого и при этом результирующий алгоритм будет полиномиальным. В силу приведенных причин используется следующая терминология: полиномиальные алгоритмы называют эффективными, полиномиально решаемые задачи называют легкорешаемыми, а экспоненциально решаемые задачи называют труднорешаемыми.
Для практики важным является классификация задач по признаку труднорешаемости, хотя следует заметить, что установление легкорешаемости задачи еще не означает ее практическую решаемость. Например, установление полиномиальной оценки O(n1000) не гарантирует практической решаемости уже при начальных значениях n. Аналогичное замечание можно сделать относительно труднорешаемости. Заметим, что труднорешаемость задачи может быть связана с тем, что ее решение настолько велико, что не может быть записано в виде выражения, длина которого была бы ограничена полиномом от длины входа. Чтобы исключить этот тип труднорешаемости, рассматривается только такие задачи, которые имеют «короткий»
ответ.
Рассмотрим несколько примеров.
Пусть М={1,2,…, n} – конечное множество, бинарное отношение на М. Рассмотрим задачу проверки – является ли R отношением эквивалентности (рефлексивное, симметричное, транзитивное). Будем задавать индивидуальную
задачу матрицей
Ясно, что R будет отношением эквивалентности тогда и только тогда, когда матрица AR имеет единичную диагональ, симметрична и выполнено соотношение
где - матрица отношения R2.
Кроме того, выполнено , где имеется в виду булево умножение матриц. Ясно, что сложность рассматриваемой задачи О(n2).
2. Бинарное отношение R называется связным, если для любых выполняется iRj или jRi.
Бинарное отношение называется Эйлеровым, если элементы R
R:(i1,j1);(i2,j2);…(it,jt),
можно упорядочить так, что выполнено
.
Можно доказать, что связное отношение R является эйлеровым тогда и только тогда, когда число единиц в матрице AR совпадает в i-ом столбце и в i-ой строке для каждого . Это дает алгоритм сложности O(n2), проверяющий эйлеровость отношения R.
3. Бинарное отношение R называется гамильтоновым, если элементы М i1,i2,…,in можно упорядочить так, что выполняется соотношение
(*)
В настоящее время неизвестно полиномиального алгоритма, который проверял бы гамильтоновость отношения R.
Тривиальный алгоритм требует n! упорядочений множества М и проверки условий (*), что, конечно, превосходит по величине любой полином от n.
4. Пусть f(x1,…,xn) – формула от булевых переменных x1,…,xn в некотором фиксированном базисе В. Формула f(x1,…,xn) называется выполнимой, если существует набор значений переменных x1 ,..., xn , такой, что f(x1,…,xn)=1.
Формула f(x1,…,xn) называется мультиафинной, если она имеет вид
где a1,…,at – константы.
То есть f представляет собой конъюнкцию линейных форм.
Рассмотрим задачу проверки выполнимости мультиафинной формулы. Ясно, что существование выполняющего набора для мультиафинной формулы сводится к существованию решения линейной системы уравнений. Алгоритм Гаусса дает
оценку O(n3), поэтому рассматриваемая задача полиномиальна.
Пусть формула f(x1,…,xn) имеет конъюнктивную нормальную форму, т.е. имеет вид:
.
Рассмотрим задачу проверки выполнимости для формул КНФ.
В настоящее время неизвестно алгоритма полиномиальной сложности решения данной задачи. Тривиальный алгоритм требует перебор 2n наборов значений переменных и вычисления для каждого из них значения формулы.