Пусть П – некоторая массовая задача, характеризуемая множеством параметров, IÎП – индивидуальная задача, в которой эти параметры фиксированы. Пусть с массовой задачей П связана и зафиксирована схема кодирования α, которая ставит каждой индивидуальной
задаче IÎП в соответствие слово α(I) в некотором алфавите А. При этом под размером задачи I понимается длина слова α(I). Пусть Т –машина Тьюринга, решающая задачу П и
— соответствующая функция временной сложности (по худшему случаю).
О-символика: говорят, что неотрицательная функция f(n) не превосходит по порядку функцию g(n) и пишут f(n)=O(g(n)), если существует такая константа С, что f(n)≤C*g(n) для любого nÎN.
Говорят, что машина Т решает задачу П за полиномиальное время, если
для некоторого полинома р. В противном случае говорят, что МТ Т решает задачу П за экспоненциальное время. К экспоненциальным оценкам относят, например, оценки вида , т. е. это оценки, которые превосходят любой полином, но меньше, чем для любого е>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 наборов значений переменных и вычисления для каждого из них значения формулы.