mixed-integer linear programming problem with non-linear restrictions

I'm trying to maximize this problem using MILP (mixed-integer linear programming).

K represents constant values and decision variables are x1, x2 , x3(binary);

$$\max \sum_{i = 1}^{p}(x2_{i}\cdot k - x1_{i}\cdot k)$$

subject to:

$$x4_{i} = x4_{i-1} + x1_{i} \cdot x3_{i} - (1 - x3_{i})\cdot k\cdot x2_{i}$$

Since I have two decision variables multiplying in this restriction, I believe I am unable to solve this optimization as a linear problem. Thus, I though about doing the following transformation that would have the same effect and enable a solution by MILP.

$$x4_{i} = x4_{i-1} + x1_{i} - k\cdot x2_{i}$$

$$x2_{i} \leq x2MAX_{i} \cdot (1-x3_{i})$$

$$x2_{i} \geq x2MIN_{i} \cdot (1-x3_{i})$$

$$x1_{i} \leq x1MAX_{i} \cdot x3_{i}$$

$$x1_{i} \geq x1MIN_{i} \cdot x3_{i}$$

I believe this would solve the problem as xMIN and xMAX are constant values. Can anyone tell me if this makes sense or does this not apply?

• what do you mean? @RodrigodeAzevedo – MiguelL Oct 28 '19 at 22:39
• See this post for how to linearize a product of binary variables. – Rob Pratt Oct 28 '19 at 23:06