Полиномиальная сводимость

Материал из testwiki
Перейти к навигации Перейти к поиску

Любой язык L1 называется сводимым по Карпу к языку L2, если существует функция F:Σ*Σ*, вычисляемая за полиномиальное время, где F(x) принадлежит L2 в том случае, если x принадлежит L1. Язык называется NP-трудным, если к нему сводится любой язык NP класса, и называется NP-полным, если он NP-труден и сам сводится к NP классу. Если будет алгоритм, решающий NP-полную задачу за полиномиальное время, тогда все NP-задачи относятся к классу P.

Рассмотрим два языка L1 и L2 над алфавитами Σ и Γ. Сведение L1 к L2 по Карпу — это функция f:Σ*Γ*, вычислимая за полиномиальное время, такая, что x(xL1f(x)L2). Таким образом, неформально язык L1 «не сложнее» языка L2.

Если такая функция f существует, говорят, что L1 сводима по Карпу к L2 и пишут

L1KL2.

Отметим, что сведение по Карпу является частным случаем сведения по Куку. В англоязычных источниках также можно встретить название en:many-one reduction.

Класс языков PSPACE — множество языков, допустимых детерминированной машиной Тьюринга с полиномиальным ограничением пространства.

Класс языков NPSPACE — множество языков, допустимых недетерминированной машиной Тьюринга с полиномиальным ограничением пространства.

Транзитивность

Главным свойством сведение по Карпу является транзитивность. Если представить языки в виде символов, то можно рассматривать как математическую операцию: Α>Β, Β>Ε → Α>Ε.

См. также

Ссылки