线性编程的AMPL If-Then语句

时间:2017-01-17 20:11:37

标签: if-statement linear-programming ampl

这是上下文:

我正在制作3把椅子:A,B,C 我有5种材料:1,2,3,4,5。

表格如下:

              A (kg)      B (kg)      C (kg)      Supply (kg)
1             3           3.75        2.75        750
2             1           1.25        1.75        425
3             0.75        0.5         0.875       300
4             0.75        1.5         1.375       424
5             0.625       0.75        0.75        199

问题是: 我必须在所有椅子上使用材料1。 我可以选择使用:材料2和4&材料3和5。 我只能使用其中一个。不是两个。

例如:材料的可能组合是:

<1,2> 1,2,3或1,2,5或1,3,4或1,4,5

我们的目标是最大化利润。

我已经针对此问题的上下文完成了.dat和.mod文件的所有建模。我需要有关.mod文件中的约束和变量的帮助。即“&#39;遵守&#39;

如何将此代码编写到AMPL上?

感谢。

1 个答案:

答案 0 :(得分:1)

制作附加变量x:

var x{i in material, j in chair} binary; 这个变量决定了每把椅子上使用的材料。

然后加上额外的约束:

subject to constraint1{j in chair}: x[2,j]+x[4,j]=1;

subject to constraint2{j in chair}: x[3,j]+x[5,j]=1;