# Logical constraint in ILP

Operations Research Asked by che on December 22, 2020

I want to write the following constraint:

Let $$z$$ be an integer variable such that $$0le zle M$$, and $$t$$ be a binary variable where $$M$$ denotes big-M. The logical constraint is as follows:

• if $$z leq M$$ and $$z > 0$$ then $$t=1$$;

• if $$z=0$$ then $$t=0$$.

Is this $$z≤Mt$$ sufficient? The $$t$$ and $$z$$ variables are not in my objective function but variable $$t$$ is connected to another variable in the objective function?

Thank you very much, I appreciate your help.

The big-M constraint $$z le M t$$ does enforce $$z > 0 implies t = 1$$, equivalently its contrapositive $$t = 0 implies z = 0$$, but not the converse $$z = 0 implies t = 0. tag1$$ To enforce $$(1)$$, consider its contrapositive $$t = 1 implies z > 0 tag2,$$ which you can enforce via big-M constraint $$epsilon - z le (epsilon - 0)(1 - t),$$ equivalently, $$z ge epsilon t,$$ where $$epsilon > 0$$ is a tolerance that represents the smallest value of $$z$$ that you would consider to be positive.

Correct answer by RobPratt on December 22, 2020

Get help from others!