LP formulation สำหรับ if-conditions


10

ฉันมี LP ต่อไปนี้:

/ * ฟังก์ชันวัตถุประสงค์ * /
ต่ำสุด: 1 w + 2 x + 0.5 y + z;

/ * ขอบเขตที่เปลี่ยนแปลงได้ * /
w + x <= T1;
w + y = U1;
x + z = U2;
T1 = 50;
U1 = 70;
U2 = 25;

ในกรณีนี้ U1 + U2> T1 และทางออกที่ดีที่สุดคือ y = 70 และ z = 25 ฉันต้องการบังคับใช้เงื่อนไขที่ตัวแปร w ​​และ x ได้รับการกำหนดค่าก่อนกำหนดค่าให้กับ y และ z ถ้า U1 + U2 <T1 ฉันต้องการเพียง w และ x เท่านั้นที่มีค่าและ y = z = 0 มีวิธีบังคับใช้ข้อ จำกัด ดังกล่าวใน LP หรือ MILP หรือไม่


ไม่แน่ใจว่าทำไม downvote: เป็นคำถามที่สมเหตุสมผลแม้ว่าจะแคบใน LP
Suresh Venkat

คำตอบ:


11

นี่คือคำตอบสำหรับคำถามสองข้อของคุณ รายละเอียดจะขึ้นอยู่กับตัวแก้ปัญหาที่คุณใช้:

  • wxyz

  • ชุดการเขียนโปรแกรมเชิงเส้น GNUจริงมีif-then-elseการสร้างเงื่อนไขสำหรับการแสดง มองหา "เงื่อนไข" ในคู่มือ if U1 + U2 < T2 then y = 0 and z = 0 else trueคุณสามารถตัดข้อที่คุณมีความสนใจในในคำสั่งดังกล่าว (โปรดทราบว่าฉันไม่ได้ลองสิ่งนี้จริง ๆ ดังนั้นไวยากรณ์อาจผิด)

  • U1U2T1U1+U2<T1U1+U2T1


ขอบคุณสำหรับตัวเลือก ฉันจะไปกับตัวเลือก 3 ในตอนนี้
บาลา
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.