А есть ли реальные задачи сложнее чем NP?
Я вот писал про арифметику Пресбургера. Ее разрешимость сложнее. Есть еще много разных классов сложности, например, полиномиальная иерархия или
. То, что они строго больше
, не доказано, но очень похоже на то, что они все-таки значительно шире.
Я, наверное, неправильно выразил свою следующую мысль: поскольку всегда есть быстрый алгоритм подстановки правильного ответа, нельзя доказать что
. Каждая задача либо имеет, либо не имеет решения, если у нее есть решение, то есть быстрый способ проверки и алгоритм подстановки, если же Вы смогли доказать что у нее нет решения, то она тоже таким образом решена. Поэтому есть либо проблемы решенные (класса P), либо про которые ничего неизвестно (класса NP).
По-моему, Вы немного путаетесь, либо просто неправильно формулируете.
И задачи класса
, и задачи класса
- это задачи типа "да-нет".
То есть нам дано некоторое слово длины
, нужно определить, "хорошее" оно или нет.
В случае
это можно сделать за
шагов.
В случае
, если нам дадут некоторый "сертификат" того, что слово хорошее (длина сертификата -
), то мы можем опять же за полином проверить, что этот сертификат действитель это подтверджает.
А если нам сертификата не дают, то мы можем перебрать все фозможные и проверить их. отсюда и возникает перебор и эта оценка
Некоторые иллюстрации:
1.
. Действительно, если сертификат нам и так не нужен, мы можем просто взять его пустым.
2.
. Дана булева формула, определить, принимает ли она значение "истина" на некотором наборе. Сертификат - этот самый набор.
3.
. Определить, является ли данное число составным. Сертификат - нетривиальный делитель числа.
Недавно было доказано, что эта задача принадлежит классу
. Сложность алгоритма, если мне не изменяет память -
-- Ср фев 10, 2010 20:00:51 --Почему такая постановка вопроса: "полиномиальное" время? Ведь на практике ведь нужны реальные оценки: операций или 10 секунд на Пентиуме.
Пентиумы развиваются слишком быстро, чтобы за ними успевать
На практике есть конкретные оценки для конкретных задач.
Вот скажем, умножение двух длинных чисел за
операций (константу
, можно, конечно, оценить теоретически, но гораздо лучше определить экспериментально, тем более, что некоторые трюки, зачастую использующие особенности "железа", могут сильно ее варьировать).
А вот интересное утверждение о том, что для умножения обязательно нужно хотя бы
, до сих пор не доказано. Хотя на практике оно вряд ли чем-то поможет, но, может быть, натолкнет на идеи для решения других проблем.