By the MAXSAT problem, we are given a set $V$ of $m$ variables and a collection $C$ of $n$ clauses over $V$, i.e., a conjunctive normal form ($\textit{CNF}$) formula. We will seek a truth assignment to maximize the number of satisfied clauses in $C$. This problem is $\textit{NP}$-complete even for its restricted version, the 2-maxsat problem, by which every clause contains at most 2 literals. In this paper, we discuss an efficient algorithm to solve this problem. Its main idea is to transform the 2-maxsat problem into a related problem of maximizing satisfied conjunctions of a formula $D$ in disjunctive normal form ($\textit{DNF}$). We then represent all those truth assignments for a conjunction $d$ as a graph (called a $p$*-graph), under each of which $d$ evaluates to $\textit{true}$. In this way, our task becomes finding a maximum number of $p$*-graphs, which have a same $\textit{root-to-leaf}$ path. For this purpose, we organize all the $p$*-graphs for the conjunctions in $D$ into a trie-like structure. By exploring the structure and recursively its substructures (with each corresponding to a subgraph dynamically built up by integrating some $p$*-subgraphs), the algorithm can find a maximum set of satisfied conjunctions in $D$ in polynomial time. Its worst-case time complexity is bounded by O($n^2m^4$). This provides in fact a proof of $P$ = $\textit{NP}$.
翻译:暂无翻译