A multiset of literals, called a clause, is \emph{strongly satisfied} by an assignment if \emph{no} literal evaluates to false. Finding an assignment that maximises the number of strongly satisfied clauses is NP-hard. We present a simple algorithm that finds, given a multiset of clauses that admits an assignment that strongly satisfies $\rho$ of the clauses, an assignment in which at least $\rho$ of the clauses are \emph{weakly satisfied}, in the sense that an \emph{even} number of literals evaluate to false. In particular, this implies an efficient algorithm for finding an undirected cut of value $\rho$ in a graph $G$ given that a directed cut of value $\rho$ in $G$ is promised to exist. A similar argument also gives an efficient algorithm for finding an acyclic subgraph of $G$ with $\rho$ edges under the same promise.
翻译:暂无翻译