在AMPL中设置所有物

时间:2014-11-04 19:39:23

标签: ampl

我打算进行优化,在其中我将找到一些供应节点和需求节点之间的最小路径。为此我有一组公司C.它们有一些供应节点和他们“控制”的需求节点,例如库存地点和工厂。但是,其他公司可以从其他公司股票中扣除产品,并将这些产品退回到自己的需求节点。

为此,我想定义一些公司c(在C中)控制的供应节点,以及一些需要相同类型的节点。 我认为子集等不应该是有效的(除非我认为是错误的),因为它必须在C和这些节点中包含元素。作为一个例子,我希望C中的公司c控制供应节点I,C中的公司c2控制供应节点G等等。这可以在AMPL中实现吗?

此致 Cenderze

1 个答案:

答案 0 :(得分:1)

您可以使用多维集:

set C;
set SupplyNodes;
set CompanySupplies within {C, SupplyNodes};

其中CompanySupplies的第二个索引代表公司c in C控制的供应,即setof{(c, n) in CompanySupplies: c == c2} == G

或者,您可以使用索引集:

set CompanySupplies{C} within SupplyNodes;

其中CompanySupplies[c]表示由公司c in C控制的供应品。

相关问题