P-полный - P-complete - Wikipedia

В теория сложности вычислений, а проблема решения является P-полный (полный для класс сложности п ) если он находится в п и каждая проблема в п можно уменьшить к нему соответствующим сокращением.

Понятие P-полный Решение проблем полезно при анализе:

  • какие задачи сложно эффективно распараллелить,
  • какие проблемы сложно решить в ограниченном пространстве.

Конкретный тип используемого сокращения варьируется и может повлиять на точный набор проблем. Если мы используем NC сокращения, то есть сокращения, которые могут действовать в полилогарифмическое время на параллельном компьютере с полиномиальным числом процессоров, тогда все п-полные проблемы лежат снаружи NC и поэтому не может быть эффективно распараллелен при бездоказательном предположении, что NC ≠ п. Если мы воспользуемся более слабым сокращение пространства журнала, это остается правдой, но дополнительно мы узнаем, что все п-полные проблемы лежат снаружи L при более слабом недоказанном предположении, что L ≠ п. В последнем случае множество п-полный может быть меньше.

Мотивация

Класс п, обычно рассматриваемый как состоящий из всех "решаемых" задач последовательного компьютера, содержит класс NC, который состоит из тех задач, которые могут быть эффективно решены на параллельном компьютере. Это связано с тем, что параллельные компьютеры можно моделировать на последовательной машине. Неизвестно, были ли NC = п. Другими словами, неизвестно, есть ли какие-либо решаемые проблемы, которые по своей сути являются последовательными. Так же, как многие подозревают, что п не равно НП, поэтому многие подозревают, что NC не равно п.

Аналогично класс L содержит все задачи, которые могут быть решены последовательным компьютером в логарифмическом пространстве. Такие машины работают за полиномиальное время, потому что они могут иметь полиномиальное количество конфигураций. Есть подозрение, что L ≠ п; то есть, что некоторые проблемы, которые могут быть решены за полиномиальное время, также требуют большего, чем логарифмическое пространство.

Аналогично использованию НП-полный проблемы для анализа п = НП вопрос, п-полные проблемы, рассматриваемые как «вероятно, не распараллеливаемые» или «возможно изначально последовательные» проблемы, служат аналогичным образом для изучения NC = п вопрос. Поиск эффективного способа распараллелить решение на некоторые п-полная задача покажет, что NC = п. Его также можно рассматривать как «проблемы, требующие суперлогарифмического пространства»; лог-пространство решение п-полная проблема (с использованием определения, основанного на сокращении пространства журнала) будет означать L = п.

Логика, лежащая в основе этого, аналогична логике, согласно которой решение за полиномиальное время НП-полная проблема докажет п = НП: если у нас есть NC сокращение от любой проблемы в п к проблеме А, и NC решение для A, то NC = п. Точно так же, если у нас есть сокращение пространства журнала из-за любой проблемы в п к проблеме A и решение в лог-пространстве для A, то L = п.

P-полные проблемы

Самый простой п-полная проблема такова: учитывая Машина Тьюринга, вход для этой машины и номер Т (написано в унарный ), останавливается ли машина на этом входе в течение первого Т шаги? Понятно, что это проблема п-complete: если мы сможем распараллелить общее моделирование последовательного компьютера, то мы сможем распараллелить любую программу, которая работает на этом компьютере. Если эта проблема в NC, то и все остальные проблемы в п. Если количество шагов записано в двоичном формате, проблема в EXPTIME-завершено Эта проблема иллюстрирует общий трюк в теории п-полнота. На самом деле нас не интересует, можно ли быстро решить проблему на параллельной машине. Нас просто интересует, решает ли это параллельная машина гораздо больше быстрее, чем последовательная машина. Следовательно, мы должны перефразировать проблему так, чтобы последовательная версия находилась в п. Вот почему эта проблема потребовала Т должно быть написано унарным языком. Если число Т записывается как двоичный число (строка п единицы и нули, где п = журналТ), то очевидный последовательный алгоритм может занять время 2п. С другой стороны, если Т записывается как унарное число (строка п те, где п = Т), то потребуется время п. Написав Т в унарном, а не в двоичном формате, мы сократили очевидный последовательный алгоритм с экспоненциального времени до линейного времени. Это ставит последовательную проблему в п. Тогда это будет в NC тогда и только тогда, когда его можно распараллелить.

Доказано, что многие другие проблемы п-полный, и поэтому многие считают, что они по своей сути последовательны. К ним относятся следующие проблемы, как заданные, так и в форме проблемы решения:

  • Проблема значения цепи (CVP) - Учитывая схема, входы в схему и один вентиль в схеме вычисляют выход этого вентиля
  • Ограниченный случай CVP - как и CVP, за исключением того, что каждый вентиль имеет два входа и два выхода (F и не F), каждый другой уровень - это просто вентили И, остальные - вентили ИЛИ (или, что эквивалентно, все вентили являются вентилями И-НЕ, или все ворота являются воротами ИЛИ-НЕ), входы ворот поступают из непосредственно предшествующего уровня
  • Линейное программирование - Максимизировать линейную функцию с учетом ограничений линейного неравенства
  • Лексикографически упорядочивание поиска в первую глубину - с учетом график с фиксированными упорядоченными списками смежности и узлами ты и v, является вершиной ты посетил до вершины v в поиске в глубину, вызванном порядком списков смежности?
  • Свободное от контекста членство в грамматике - с учетом контекстно-свободная грамматика и строка, может ли эта строка быть сгенерирована этой грамматикой?
  • Роговая выполнимость: учитывая набор Роговые оговорки, есть ли удовлетворяющее их назначение переменных? Это П's версия проблема логической выполнимости.
  • Game of Life - Учитывая начальную конфигурацию Игра жизни Конвея, конкретная ячейка и время Т (в унарном), эта клетка жива после Т шаги?
  • LZW (алгоритм) (Парадигма 1978 г.) Сжатие данных - заданные строки s и т, будет сжимать s с помощью метода LZ78 добавить т в словарь? (Обратите внимание, что для LZ77 сжатие, такое как gzip, это намного проще, поскольку проблема сводится к "Is т в s?".)
  • Вывод типа для частичных типов - Учитывая нетипизированный срок от лямбда-исчисление, определите, имеет ли этот термин частичный тип.

Чтобы доказать, что данная проблема в п является P-полным, обычно пытаются уменьшить известную п-полная задача к данной.

В 1999 году Цзинь-И Цай и Д. Сивакумар, основываясь на работе Огихары, показали, что если существует скудный язык то есть п-полный, тогда L = п.[1]

Проблемы P-complete могут быть решены разными временные сложности. Например, Проблема значения цепи можно решить в линейное время по топологическая сортировка. Конечно, поскольку редукции к P-полной задаче могут иметь разную временную сложность, этот факт не означает, что все проблемы в п также можно решить за линейное время.

Проблемы, о которых известно, что они не являются полными

Немного НП-проблем тоже не известно НП-полный или в п. Эти проблемы (например, факторинг, изоморфизм графов, паритетные игры ) подозреваются в сложности. Точно так же есть проблемы в п которые также не известны п-полное или NC, но их сложно распараллелить. Примеры включают формы решения проблемы поиска наибольший общий делитель двух чисел и определения того, что ответит на расширенный алгоритм Евклида вернется, если дано два числа.

Примечания

  1. ^ Цай, Цзинь-И; Сивакумар, Д. (1999), «Редкие жесткие множества для P: разрешение гипотезы Хартманиса», Журнал компьютерных и системных наук, 58 (2): 280–296, Дои:10.1006 / jcss.1998.1615

Рекомендации

  • Гринлоу, Раймонд, Джеймс Гувер и Уолтер Руццо. 1995 г. Пределы параллельных вычислений; Теория П-полноты. ISBN  0-19-508591-4. - Разрабатывает теорию, затем каталогизирует 96 задач P-Complete.
  • Сатору Мияно, Сюдзи Сираиси и Такаяоши Сёдай. Список проблем P-Complete. Университет Кюсю, RIFIS-TR-CS-17. Декабрь 1990 г.