Я придумал алгоритм решения проблемы 3SAT с помощью следующего подхода:
1) Возьмите все предложения в уравнении cnf, которые имеют хотя бы одну общую переменную. Найдите все такие комбинации и поместите их в список под названием «Пересечение». Список «Пересечение» теперь содержит группы пересекающихся предложений.
2) Далее мы преобразуем все предложения в определенной группе «Пересечение» в ДНФ. Поскольку будет хотя бы одна общая переменная, я не думаю, что это будет экспоненциальное время.
3) Затем мы преобразуем все полученные ДНФ в одну ДНФ, поскольку все они разделены логическим элементом И в исходном уравнении.
4) Если в полученной ДНФ есть один дизъюнкт, то уравнение выполнимо, иначе уравнение невыполнимо. Это связано с тем, что непересекающиеся предложения (предложения, которые не имеют какой-либо общей переменной) не будут влиять на общее уравнение, и, наконец, если мы «И» с теми с полученным DNF, оно будет только умножать и добавлять переменные к существующим оговорки (если есть).
Мой вопрос:
Каково время выполнения этого алгоритма и доказывает ли это что-либо, связанное с P = NP, поскольку я думаю, что этот алгоритм довольно эффективен. Меня подвели другие в моих предыдущих алгоритмах, поэтому на этот раз, пожалуйста, уделите время анализу алгоритма, поскольку это моя тяжелая работа.