Класс ♯P

Класс #P — класс вычислительной сложности, состоящий из задач, решением которых является количество успешных (то есть, завершающихся в допускающих состояниях) путей вычислений для некоторой недетерминированной машины Тьюринга, работающей за полиномиальное время. Например, следующие проблемы принадлежат к этому классу:

  • сколько различных гамильтоновых циклов существует в данном графе?
  • сколько различных путей между двумя данными вершинами существует в данном графе?

Известно, что P#P — класс проблем, решаемых машиной Тьюринга за полиномиальное время с привлечением оракула для класса #P — содержит класс сложности PH[1]. Исходя из этого, считается, что #P-полные проблемы являются крайне сложными с точки зрения вычислительной сложности.

Одной из наиболее известных проблем, принадлежащей к классу #P-полных, является проблема вычисления перманента матрицы[2]:

,

при этом сходная на первый взгляд проблема вычисления детерминанта матрицы решается за полиномиальное время.

Примечания

  1. 1998 Gödel Prize. Seinosuke Toda
  2. Leslie G. Valiant. The Complexity of Computing the Permanent (англ.) // Theoretical Computer Science. Elsevier, 1979. Vol. 8, no. 2. P. 189—201. doi:10.1016/0304-3975(79)90044-6.
This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.