I have the following mixed-integer optimization problem:
\begin{aligned} \max_{x,y} \quad & \sum_i x_i - \|wx\|_2 \\ \text{s.t.} \quad & \sum_i x_i \leq A \\ \quad & x \leq x_{\max} y \\ \quad & x \geq x_{\min} y \\ \quad & y \in \{0,1\} \end{aligned}
where $\delta$ is a positive constant, $A$ is a positive constant, $x$ is a $n \times 1$ vector of positive real values, $y$ is a $n \times 1$ binary vector, $w$ is a $n \times n$ diagonal matrix, and $x_{\min}, x_{\max}$ are each $n \times n$ diagonal matrices with positive constants. This optimization problem is solved online (where the diagonal values of $w$ are changing in each iteration). For fixed values in $w$, the oscillations can still occur.
When I tried to solve this problem numerically, the optimal values of $x$ are oscillating in each iteration. This is expected because of the hard constraints imposed. Is there a way to prevent these oscillations with relaxation or hysteresis on the $w$? Or possibly adding another constraint/variable to prevent the oscillations?
Your help will be much appreciated.
Here is an example of the kind of oscillations I get. For this plot, $x_{\min} = 6$, $x_{\max} = 32$, $A = 50$, and $x$ is a $5 \times 1$ vector. So from this plot, its clear that the values jump from 0 to 6 (since this is imposed by the hard constraints in the problem). But I want to prevent this kind of behavior (i.e., keep constant and only change based on some kind of epsilon relaxation).
w
, do you observe oscillations ofw
as it proceeds from one iteration to the next when solving that one problem instance? If so, perhaps you can show solver output (log). $\endgroup$