Классы Sharp P, Sharp P-Complete — различия между версиями
(→Классы #P и #P-Complete) |
(→Примеры задач из #P) |
||
Строка 24: | Строка 24: | ||
Преобразование графа <tex>G</tex> в <tex>G'</tex> можно выполнить за полином от количества вершин. Таким образом, если <tex>\#CYCLE \in FP</tex>, тогда сразу же <tex>HAM \in P</tex>. А так как<tex> HAM \in NP</tex>, то <tex>NP = P</tex>. | Преобразование графа <tex>G</tex> в <tex>G'</tex> можно выполнить за полином от количества вершин. Таким образом, если <tex>\#CYCLE \in FP</tex>, тогда сразу же <tex>HAM \in P</tex>. А так как<tex> HAM \in NP</tex>, то <tex>NP = P</tex>. | ||
}} | }} | ||
+ | |||
+ | |||
+ | ==Класс #P-Complete== | ||
+ | {{Определение | ||
+ | |definition= <tex>f : \{0, 1\}^* \rightarrow \{0, 1\}^*</tex> является <tex>\#P</tex>-полной, если <tex> f \in \#P</tex> и получение для <tex>f</tex> алгоритма работающего за полиномиальное время влечет равенство <tex> \#P=FP</tex>. | ||
+ | }} | ||
+ | |||
+ | Для более формального определения будем использовать МТ с оракулом <tex> О = \{\big \langle x, i \big \rangle: f(x)_i = 1\}</tex>. Для нашего типа задач оракул будет отвечать на вопросы вида |
Версия 10:39, 24 марта 2017
Класс #P
Определение: |
Более формально: принадлежит , если существует и машина Тьюринга такая, что для любого . | представляет класс задач, решением которых является количество успешных (завершающихся в допускающих состояниях) путей вычислений для недетерминированной МТ, работающей за полиномиальное время. Отличается от большинства рассмотренных классов тем, что задачи требуют в качестве ответа не или , а натуральное число.
Вопрос, являются ли задачи из
//эффективно разрешимыми// остается открытым. Класс - аналог класса для задач, ответ на которые представляется не битовым значением, а натуральным числом. Подсчет числа сертификатов как минимум столь же сложно, как и проверка наличия сертификата, а значит, если доказать равенство , то автоматически будет доказано . Однако из вовсе не следует . Если , то , так как подсчет числа сертификатов может быть выполнен за полиномиальную память.Примеры задач из #P
- #SAT
- - имея ориентированный граф , посчитать число простых циклов. Аналогичная задача, отвечающая на вопрос, существует ли в заданном ориентированном графе простой цикл, может быть решена за линейное время при помощи поиска в ширину. Проблема подсчета значительно сложнее.
Теорема: |
Если , тогда . |
Доказательство: |
Для графа |
Класс #P-Complete
Определение: |
является -полной, если и получение для алгоритма работающего за полиномиальное время влечет равенство . |
Для более формального определения будем использовать МТ с оракулом . Для нашего типа задач оракул будет отвечать на вопросы вида