ILP'de mantıksal kısıtlama
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
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.