覆盖AMPL中的约束

时间:2016-07-05 13:14:18

标签: constraints override ampl

我想知道如何覆盖AMPL中的约束。在一个非常基本的例子中:

 $this->upload->do_upload('profile_pic');
 $image_name = $this->upload->data('file_name'); 

AMPL使用第一个“constraint1”作为约束并忽略第二个,AMPL是否使用最后一个“constraint1”?

2 个答案:

答案 0 :(得分:2)

无法使用相同的变量名覆盖约束。

可以在通过条件逻辑分配给同一名称的约束之间切换(如果出现语句),但不能覆盖它们。

答案 1 :(得分:1)

如@Everyone_Else所述,您可以使用if语句。

在第13章的AMPL书中,有一些使用方法的示例,尤其是子章节:

  • 13.4测试条件:if-then-else语句。

https://ampl.com/resources/the-ampl-book/chapter-downloads/

您的情况如下:

if -->condition<--
 subject to constraint1 : x+2*y >= 100;
else
 subject to constraint1 x+2*y <= 10;