gpt4 book ai didi

ampl - 在AMPL中使用变量作为索引

转载 作者:行者123 更新时间:2023-12-04 04:48:02 26 4
gpt4 key购买 nike

我需要使用一个变量来标识矩阵的值。我想做的是定义一个变量,如:
var a in A; # to say that the variable takes value from index A
我想将其用作以下内容:

M1[a] >= 10;
M2[a] <= 100;

然而,AMPL 提示:

索引表达式中的变量

我可以使用变量指向数组或矩阵的元素吗?
谢谢

最佳答案

AMPL 还不允许在下标中使用变量。但是,有一种方法可以模仿它们。例如,M1[a] >= 10可以模拟如下:

   s.t. c: exists{i in A} (M1[i] >= 10 and i = a);

这不是很有效,但对于小问题应该可以正常工作。请注意,要解决包含上述约束(或添加后下标中的变量)的问题,需要使用约束规划求解器,例如 ilogcpgecode .见 LOGIC AND CONSTRAINT PROGRAMMING EXTENSIONS详情。

用于AMPL 的新版ilogcp 驱动程序支持 element约束,例如:
include cp.ampl;
var x{i in 0..2} >= i integer;
var y in 0..2 integer;
minimize o: element({i in 0..2} x[i], y);
option solver ilogcp;
solve;

哪里 element({i in 0..2} x[i], y)相当于 x[y]并被翻译成 IloElement约束。

关于ampl - 在AMPL中使用变量作为索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17883158/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com