Полиномиальный алгоритм для 2-SAT-алгоритма

53
5

Я прочитал много алгоритмов для поиска проблемы 2-SAT, т.е. Данное выражение является выполнимым или нет, что можно решить за многочленное время. пример (алгоритм).
Для процедуры Кром (Википедия) я построю график, из которого я легко могу проверить его выполнимость в полиномиальное время.
Теперь я хочу, чтобы решение этого выражения было выполнимым.
Я так думаю (проверьте это): сначала я беру любой литерал выражения, который формирует сильную связанную компоненту, скажем x, и присваивает значение как 0. Тогда, согласно алгону, существуют ребро (x! → y). поэтому y не может быть 0. (так как 1 → 0 неверно) и аналогичным образом, если это возможно.
В противном случае возьмем x = 0 и тогда имеем только выбор при y = 1 и аналогичным образом перейдем к тому, чтобы получить один экземпляр, для которого он выполним.

Теперь, возможно ли любое решение найти любое из этого в полиномиальное время

    дают все возможные решения, для которых выражение является выполнимым. Или это выражение является выполнимым для ввода, имеющего полные k литералов = 1. Или сколько минимального количества литералов имеет значение 1 для выполнения выражения.

Я не получаю никакого полиномиального алгоритма для этих типов вопросов.

спросил(а) 2020-03-27T21:12:08+03:00 2 месяца назад
1
Решение
90

дать все возможные решения, для которых выполняется выражение

Нет, потому что может быть экспоненциально много.

Или это выражение является выполнимым для ввода, имеющего полные k литералов = 1

Нет, потому что если бы это было легко, тогда тоже было бы взвешено 2-выполнимость (NP-hard).

Или сколько минимального количества литералов имеет значение 1 для выражения

Это взвешенный 2-SAT.

ответил(а) 2020-03-27T21:29:51.875613+03:00 2 месяца назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема