I want to solve the problem of minimizing $$\mathbf{c}^T\mathbf{x}$$ subject to the condition that $$A\mathbf{x} = \mathbf{b}\text{,}$$ where $\mathbf{b},\mathbf{c}$ are given vectors in $\mathbb{F}_2^n$, $A$ is a given matrix in $\mathbb{F}_2^{n\times n}$ and $\mathbf{x}$ is a vector of unknowns in $\mathbb{F}_2^n$.
After a little research I now know that this is called a Binary Integer Programming problem, and lots of literature has been written on it. Unfortunately I lack any background on optimization or linear programming, therefore I'm having a hard time understanding which results can I use to implement a Python program that solves this particular problem.
Which algorithms, methods or techniques can I use to solve this kind of problem?
If it helps, the matrix $A$ has the same shape of this other question of mine, reproduced here for convenience:
$$ \begin{bmatrix} J_n & I_n & \dots & I_n \\ I_n & J_n & \ddots & \vdots \\ \vdots & \ddots & \ddots & I_n \\ I_n & \dots & I_n & J_n \end{bmatrix} $$
where $I_n$ is the identity matrix of side $n$ and $J_n$ is the matrix of all ones of the same side.