Сложна ли задача NPF SAT NP, когда общее число (но не ширина) предложений из 3 или более членов ограничено сверху константой? А что конкретно, когда есть только один такой пункт?
Сложна ли задача NPF SAT NP, когда общее число (но не ширина) предложений из 3 или более членов ограничено сверху константой? А что конкретно, когда есть только один такой пункт?
Ответы:
Стоит отметить, что проблема становится NP-трудной, когда ограничение немного ослаблено.
При фиксированном количестве предложений, которые также имеют ограниченный размер, среднее число литералов в предложении настолько близко к 2, насколько нужно, с учетом экземпляра с достаточным количеством переменных. Как вы указали, существует простая верхняя граница, которая является полиномиальной, если размер предложения ограничен.
Напротив, если среднее число литералов в предложении составляет не менее для некоторого фиксированного (но сколь угодно малого) , то проблема NP-трудна.
Это можно показать, сократив 3SAT до этой проблемы, введя новые предложения с двумя литералами, которые тривиально выполнимы. Предположим, в экземпляре 3SAT есть предложений; чтобы уменьшить средний размер предложения до , достаточно добавить новых предложений с двумя литералами. Поскольку фиксирован и положителен, новый экземпляр имеет полиномиальный размер.
Это сокращение также показывает, что даже версия, в которой «большие» предложения ограничены 3 литералами, является NP-сложной.
Оставшийся случай - это когда несколько больших предложений не имеют ограниченного размера; Кажется, что каждый большой пункт усугубляет проблему. См. Статью SODA 2010 Pǎtraşcu и Williams для случая двух предложений: они утверждают, что, если это можно сделать за субквадратичное время, то у нас будут лучшие алгоритмы для SAT. Их аргумент может быть расширен до большего числа предложений, что обеспечит доказательство того, что ваша верхняя граница не может быть улучшена (по модулю некоторой формы гипотезы об экспоненциальном времени).
Ладно, я понял. Ответ - нет. Это можно решить за многократное время. Для каждого предложения «3 или более» выберите литерал и задайте для него значение «истина». Затем решите оставшуюся проблему 2-sat. Если кто-то предоставляет решение, то это решение общей проблемы. Так как количество предложений с 3 и более членами является фиксированным (скажем, c), то, если все такие предложения имеют размер <= m, то это выполняется в O (m ^ (c) * n). O (m ^ c) для прохождения каждого возможного выбора, времена O (n) для решения оставшейся задачи 2-sat.