Классы Sharp P, Sharp P-Complete — различия между версиями
(→Примеры задач из \#P) |
(→Классы #P и #P-Complete) |
||
| Строка 1: | Строка 1: | ||
| − | == | + | == Класс #P == |
{{Определение | {{Определение | ||
|definition =<tex>\#P</tex> представляет класс задач, решением которых является количество успешных (завершающихся в допускающих состояниях) путей вычислений для недетерминированной МТ, работающей за полиномиальное время. Отличается от большинства рассмотренных классов тем, что задачи требуют в качестве ответа не <tex>``0"</tex> или <tex>``1"</tex>, а натуральное число. | |definition =<tex>\#P</tex> представляет класс задач, решением которых является количество успешных (завершающихся в допускающих состояниях) путей вычислений для недетерминированной МТ, работающей за полиномиальное время. Отличается от большинства рассмотренных классов тем, что задачи требуют в качестве ответа не <tex>``0"</tex> или <tex>``1"</tex>, а натуральное число. | ||
| Строка 5: | Строка 5: | ||
}} | }} | ||
Вопрос, являются ли задачи из <tex>\#P</tex> //эффективно разрешимыми// остается открытым. Класс <tex>FP</tex> - аналог класса <tex>P</tex> для задач, ответ на которые представляется не битовым значением, а натуральным числом. Подсчет числа сертификатов как минимум столь же сложно, как и проверка наличия сертификата, а значит, если доказать равенство <tex>\#P=FP</tex>, то автоматически будет доказано <tex>NP=P</tex>. Однако из <tex>NP=P</tex> вовсе не следует <tex>\#P=FP</tex>. Если <tex>PSPACE = P</tex>, то <tex>\#P=FP</tex>, так как подсчет числа сертификатов может быть выполнен за полиномиальную память. | Вопрос, являются ли задачи из <tex>\#P</tex> //эффективно разрешимыми// остается открытым. Класс <tex>FP</tex> - аналог класса <tex>P</tex> для задач, ответ на которые представляется не битовым значением, а натуральным числом. Подсчет числа сертификатов как минимум столь же сложно, как и проверка наличия сертификата, а значит, если доказать равенство <tex>\#P=FP</tex>, то автоматически будет доказано <tex>NP=P</tex>. Однако из <tex>NP=P</tex> вовсе не следует <tex>\#P=FP</tex>. Если <tex>PSPACE = P</tex>, то <tex>\#P=FP</tex>, так как подсчет числа сертификатов может быть выполнен за полиномиальную память. | ||
| + | |||
== Примеры задач из #P == | == Примеры задач из #P == | ||
*[[#SAT]] | *[[#SAT]] | ||
Версия 23:33, 23 марта 2017
Класс #P
| Определение: |
| представляет класс задач, решением которых является количество успешных (завершающихся в допускающих состояниях) путей вычислений для недетерминированной МТ, работающей за полиномиальное время. Отличается от большинства рассмотренных классов тем, что задачи требуют в качестве ответа не или , а натуральное число.
Более формально: принадлежит , если существует и машина Тьюринга такая, что для любого . |
Вопрос, являются ли задачи из //эффективно разрешимыми// остается открытым. Класс - аналог класса для задач, ответ на которые представляется не битовым значением, а натуральным числом. Подсчет числа сертификатов как минимум столь же сложно, как и проверка наличия сертификата, а значит, если доказать равенство , то автоматически будет доказано . Однако из вовсе не следует . Если , то , так как подсчет числа сертификатов может быть выполнен за полиномиальную память.
Примеры задач из #P
- #SAT
- - имея ориентированный граф , посчитать число простых циклов. Аналогичная задача, отвечающая на вопрос, существует ли в заданном ориентированном графе простой цикл, может быть решена за линейное время при помощи поиска в ширину. Проблема подсчета значительно сложнее.
| Теорема: |
Если , тогда . |
| Доказательство: |
|
Для графа с n вершинами построим граф такой, что в есть Гамильтонов цикл тогда и только тогда, когда в есть циклов. Чтобы получить , заменим каждое ребро из на блок . Блок состоит из уровней. представляет из себя ацикличный граф, а значит циклы в соответствуют циклам в . Кроме того, существует различных путей между и внутри блока, следовательно простому циклу длины в соответствует цикл длины в .
|
