Классы Sharp P, Sharp P-Complete — различия между версиями
(→Классы #P и #P-Complete) |
(→Примеры задач из \#P) |
||
| Строка 23: | Строка 23: | ||
Преобразование графа <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>. | ||
}} | }} | ||
| − | |||
| − | |||
| − | |||
| − | |||
Версия 22:51, 21 марта 2017
Классы #P и #P-Complete
| Определение: |
| представляет класс задач, решением которых является количество успешных (завершающихся в допускающих состояниях) путей вычислений для недетерминированной МТ, работающей за полиномиальное время. Отличается от большинства рассмотренных классов тем, что задачи требуют в качестве ответа не или , а натуральное число.
Более формально: принадлежит , если существует и машина Тьюринга такая, что для любого . |
Вопрос, являются ли задачи из //эффективно разрешимыми// остается открытым. Класс - аналог класса для задач, ответ на которые представляется не битовым значением, а натуральным числом. Подсчет числа сертификатов как минимум столь же сложно, как и проверка наличия сертификата, а значит, если доказать равенство , то автоматически будет доказано . Однако из вовсе не следует . Если , то , так как подсчет числа сертификатов может быть выполнен за полиномиальную память.
Примеры задач из #P
- #SAT
- - имея ориентированный граф , посчитать число простых циклов. Аналогичная задача, отвечающая на вопрос, существует ли в заданном ориентированном графе простой цикл, может быть решена за линейное время при помощи поиска в ширину. Проблема подсчета значительно сложнее.
| Теорема: |
Если , тогда . |
| Доказательство: |
|
Для графа с n вершинами построим граф такой, что в есть Гамильтонов цикл тогда и только тогда, когда в есть циклов. Чтобы получить , заменим каждое ребро из на блок . Блок состоит из уровней. представляет из себя ацикличный граф, а значит циклы в соответствуют циклам в . Кроме того, существует различных путей между и внутри блока, следовательно простому циклу длины в соответствует цикл длины в .
|
