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!
Recent Answers
Recent Questions
© 2024 TransWikia.com. All rights reserved. Sites we Love: PCI Database, UKBizDB, Menu Kuliner, Sharing RPP