Ràng buộc logic trong ILP

Aug 16 2020

Tôi muốn viết ràng buộc sau:

Để cho $z$ là một biến số nguyên sao cho $0\le z\le M$, và $t$ là một biến nhị phân trong đó $M$biểu thị big-M. Ràng buộc logic như sau:

  • nếu $z \leq M$$z > 0$ sau đó $t=1$;

  • nếu $z=0$ sau đó $t=0$.

Có phải đây là $z≤Mt$đủ? Các$t$$z$ các biến không nằm trong hàm mục tiêu của tôi mà là biến $t$ được kết nối với một biến khác trong hàm mục tiêu?

Cảm ơn bạn rất nhiều, tôi đánh giá cao sự giúp đỡ của bạn.

Trả lời

4 RobPratt Aug 16 2020 at 02:50

Ràng buộc big-M $z \le M t$ thực thi $z > 0 \implies t = 1$, tương đương với nó $t = 0 \implies z = 0$, nhưng không phải là trò chuyện $$z = 0 \implies t = 0. \tag1$$ Ép buộc $(1)$, hãy xem xét nó liên tục $$t = 1 \implies z > 0 \tag2,$$ mà bạn có thể thực thi thông qua ràng buộc big-M $$\epsilon - z \le (\epsilon - 0)(1 - t),$$ tương đương, $$z \ge \epsilon t,$$ Ở đâu $\epsilon > 0$ là một dung sai đại diện cho giá trị nhỏ nhất của $z$ mà bạn sẽ coi là tích cực.