如何设置AIMMS跟随脚本,从而保持运行一定次数?
How to set AIMMS to follow a script, so as to keep running for a certain number of times?
Objective 函数:
(X*Y1+(1-X)*Y2)*Z
受一些限制:
如果x从0开始我会有一个最优解OS1
然后我再次需要 运行,x 的增量为 0.01,所以如果 x=0.01 就会有 OS2。继续这个过程会有OS1到OS100。
有没有一种方法可以将目标编程为 运行 所有增量,然后 select OS1 到 OS100 中的最大值?
您可以按如下方式完成:
- 创建一个包含 101 个元素和索引 s 的集合 "AllSolutions"。
- 创建参数"SolutionObjective(s)"
- 创建一个具有以下主体的过程:
为了做
x := (ord(s)-1)/card(AllSolutions);
解决 ;
解决方案目标 := ;
结束;
参数 SolutionObjective 包含您正在寻找的 101 个解决方案。您可以通过以下语句检索最大值:
Max(s, SolutionObjective(s));
对应的x为:
x := (ord(argmax(s, SolutionObjective(s)))-1)/100.
此致,
彼得·尼维斯泰格
高级 AIMMS 专家。
Objective 函数:
(X*Y1+(1-X)*Y2)*Z
受一些限制:
如果x从0开始我会有一个最优解OS1 然后我再次需要 运行,x 的增量为 0.01,所以如果 x=0.01 就会有 OS2。继续这个过程会有OS1到OS100。
有没有一种方法可以将目标编程为 运行 所有增量,然后 select OS1 到 OS100 中的最大值?
您可以按如下方式完成:
- 创建一个包含 101 个元素和索引 s 的集合 "AllSolutions"。
- 创建参数"SolutionObjective(s)"
- 创建一个具有以下主体的过程: 为了做 x := (ord(s)-1)/card(AllSolutions); 解决 ; 解决方案目标 := ; 结束;
参数 SolutionObjective 包含您正在寻找的 101 个解决方案。您可以通过以下语句检索最大值: Max(s, SolutionObjective(s));
对应的x为: x := (ord(argmax(s, SolutionObjective(s)))-1)/100.
此致,
彼得·尼维斯泰格
高级 AIMMS 专家。