I have seen approaches for both Absolute Constraints (linear programming : Absolute value in constraint in mathematical model) and Conditional Constraints (Integer Programming Conditional Constraints), (Conditional Constraints in Linear Programming) on math.SE; however, I did not find answer to the question which has both.
My optimization problem is as follows:
$\min |x - a|$
$x \ge b > 0$
$if\; |x - a| > 0, then \; |x - a| \ge P$
That is saying, if you have to change the variable $x$, change it by at least $P$, or else don't change it. I am including a constraint $x \ge b > 0$ to remove the trivial solution $x = 0$.
To rewrite the above problem, I can use $x - a = s_1 - s_2$:
$\min s_1 + s_2$
$s.t.$
$s_1 \ge 0$ $s_2 \ge 0$
$x - a = s_1 - s_2$
$x \ge b > 0$
$if\; |s_1 - s_2| > 0, then \; |s_1 - s_2| \ge P$
However, I am unable to proceed with the absolute in the constraint. I have seen answers to questions which handle things like $if\; f(x) > 0\; then\; g(x) \ge 0$ here (https://www.or-exchange.org/questions/6760/expressing-conditional-constraints-as-linear-constraints), however they don't have an absolute value in there. I am concerned that using a binary variable to remove the absolute function, and then another binary variable to handle the "if", the problem may involve multiplication of variables and is no longer linear MIP.
Thank you!