Я пытаюсь разработать задание (взятое из книги « Алгоритмы» С. Дасгупты, К. Х. Пападимитриу и У. В. Вазирани , глава 8, проблема 8.6а), и я перефразирую то, что в нем говорится:
Учитывая, что 3SAT остается NP-завершенным, даже если он ограничен формулами, в которых каждый литерал появляется не более двух раз, покажите, что если каждый литерал появляется не более одного раза, то проблема разрешима за полиномиальное время.
Я попытался решить эту проблему, разделив предложения на несколько групп:
- Пункты, которые не имеют никакой общей переменной с остальными пунктами
- Пункты, которые имели только одну общую переменную
- Пункты, которые имели 2 общие переменные
- Пункты, которые имели все 3 переменные вместе
Мои рассуждения были предприняты в том же духе, что число таких групп конечно (из-за наложенного ограничения на отсутствие литерала более одного раза), и мы могли бы сначала попытаться удовлетворить наиболее ограниченную группу (группа 4), а затем заменить в результате я получил меньшие ограниченные группы (3, 2, а затем 1), но я понял, что это никуда меня не привело, так как это мало чем отличается от случая с ограниченной версией 3SAT, в которой может появляться каждый литерал максимум дважды, что доказано как NP-полный.
Я пытался найти в Интернете какие-либо подсказки / решения, но все, что я мог получить, это ссылка , в которой указанная подсказка не имела для меня достаточного смысла, которую я дословно воспроизвожу здесь:
Подсказка: Поскольку каждый буквальные появляется более одного раза, превратить эту проблему в проблему 2SAT - значит , полиномиальное время, если буквальный появляюсь в пункте C J и дополнение х я (т.е. ¯ х я ) в пункте C к , построить новый пункт пункт C J ∨ ¯ С к .
Оба и C к трем литералов каждый - я не понимаю , как я должен идти о преобразовании его в 2SAT, делая C J ∨ ¯ C K (или ¯ C J ∨ C K , если я прочитал это неправильно).
Буду очень признателен за любую помощь в расшифровке подсказки или в поиске пути, который я смогу исследовать.