Kendala logis di ILP
Saya ingin menulis batasan berikut:
Membiarkan$z$menjadi variabel integer sehingga$0\le z\le M$, dan$t$menjadi variabel biner di mana$M$menunjukkan M besar. Batasan logisnya adalah sebagai berikut:
jika$z \leq M$dan$z > 0$kemudian$t=1$;
jika$z=0$kemudian$t=0$.
Apakah ini$z≤Mt$memadai? Itu$t$dan$z$variabel tidak ada dalam fungsi tujuan saya tetapi variabel$t$terhubung ke variabel lain dalam fungsi tujuan?
Terima kasih banyak, saya menghargai bantuan Anda.
Jawaban
Batasan M besar$z \le M t$memberlakukan$z > 0 \implies t = 1$, sama dengan kontrapositifnya$t = 0 \implies z = 0$, tapi tidak sebaliknya$$z = 0 \implies t = 0. \tag1$$Memaksa$(1)$, pertimbangkan kontrapositifnya$$t = 1 \implies z > 0 \tag2,$$yang dapat Anda terapkan melalui batasan M besar$$\epsilon - z \le (\epsilon - 0)(1 - t),$$setara,$$z \ge \epsilon t,$$di mana$\epsilon > 0$adalah toleransi yang mewakili nilai terkecil dari$z$yang Anda anggap positif.