ILP'de mantıksal kısıtlama

Aug 16 2020

Aşağıdaki kısıtlamayı yazmak istiyorum:

İzin Vermek $z$ bir tamsayı değişkeni olacak şekilde $0\le z\le M$, ve $t$ ikili bir değişken olmak $M$büyük-M'yi belirtir. Mantıksal kısıtlama aşağıdaki gibidir:

  • Eğer $z \leq M$ ve $z > 0$ sonra $t=1$;

  • Eğer $z=0$ sonra $t=0$.

Bu $z≤Mt$yeterli? $t$ ve $z$ değişkenler hedef fonksiyonumda değil, değişken $t$ amaç işlevindeki başka bir değişkene bağlı mı?

Çok teşekkür ederim, yardımın için minnettarım.

Yanıtlar

4 RobPratt Aug 16 2020 at 02:50

Büyük M kısıtlaması $z \le M t$ zorlar $z > 0 \implies t = 1$, eşdeğer olarak onun ters pozitif $t = 0 \implies z = 0$ama tersi değil $$z = 0 \implies t = 0. \tag1$$ Zorlamak için $(1)$, onun tersini düşünün $$t = 1 \implies z > 0 \tag2,$$ Big-M kısıtlamasıyla uygulayabileceğiniz $$\epsilon - z \le (\epsilon - 0)(1 - t),$$ eşdeğer olarak, $$z \ge \epsilon t,$$ nerede $\epsilon > 0$ en küçük değeri temsil eden bir toleranstır $z$ olumlu olduğunu düşünürsün.