Are there any methods to "solve" large systems of boolean equations?


$$x\_{i1}\vee x\_{i2}\vee x\_{i3} = b\_i, \quad\text{for}\quad i=1,\dots,N,$$
where $x\_i, b\_i \in\{0, 1\}$


For example
$$x\_{1}\vee x\_{2}\vee x\_{5} = 0$$
$$x\_{1}\vee x\_{3}\vee x\_{4} = 1$$
$$x\_{2}\vee x\_{3}\vee x\_{5} = 1$$
$$x\_{1}\vee x\_{4}\vee x\_{5} = 1$$
$$x\_{1}\vee x\_{2}\vee x\_{3} = 0$$
$$...$$


The problem is to find $x$, that **satisfies the most of equations**. I couldn't employ any maxsat-like method, or integer linear programming to solve this problem.



System of boolean equations, Satisfiability
You can reduce the problem to MAXSAT as follows. For each equation $x\_{i1}\lor x\_{i2}\lor x\_{i3}=1$, include directly the clause $x\_{i1}\lor x\_{i2}\lor x\_{i3}$. For each equation $x\_{i1}\lor x\_{i2}\lor x\_{i3}=0$, choose a fresh variable $y\_i$, and include the four clauses
\begin{gather}
y\_i\lor\neg x\_{i1}\\
y\_i\lor\neg x\_{i2}\\
y\_i\lor\neg x\_{i3}\\
\neg y\_i
\end{gather}
Given an assignment to the original variables, you can satisfy all 4 clauses if $x\_{i1}=x\_{i2}=x\_{i3}=0$ by making $y\_i=0$, otherwise you can satisfy 3 of them by making $y\_i=1$. Thus, the maximum number of satisfied clauses is the maximum number of satisfied original equations plus 3 times the number of equations with $b\_i=0$.


