- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
这里有一个 AMPL 脚本(TSP 成本问题),但我不明白错误。
这里是代码:
param n, integer, >= 3;
/* number of nodes */
param MAX_TIME := 600;
param MAX_X :=20;
param maxspeed := 1;
set CITIES := 1..n;
/* set of nodes */
param p{CITIES};
param a{CITIES};
param b{CITIES};
set ARCS, within CITIES cross CITIES;
/* set of arcs */
param DIST{(i,j) in ARCS};
/* distance from node i to node j */
param NEXTC, integer, >= 0;
/* Next city after i in the solution */
var x{(i,j) in ARCS}, binary;
/* x[i,j] = 1 means that the salesman goes from node i to node j */
param bigM := 5000;
var tar{CITIES}; /*arrival */
var tlv{CITIES}; /* departure */
var tea{CITIES} >= 0; /* early arrival (arrival before the designated time window) */
var tla{CITIES} >= 0; /* late arrival (arrival after the designated time window) */
var ted{CITIES} >= 0; /* early departure (departure before the designated time window) */
var tld{CITIES} >= 0; /* late departure (departure after the designated time window) */
set days := 1..5;
param root := 1;
var y{(i,j) in ARCS}, >= 0;
/* y[i,j] is a flow through arc (i,j) */
minimize total: sum{(i,j) in ARCS} DIST[i,j] * x[i,j];
s.t. t1 {i in CITIES} : tlv[i] >= tar[i];
s.t. t2 {i in CITIES, j in CITIES} : tar[j] >= tlv[i] + p[i] + DIST[i,j]/maxspeed - bigM*(1-x[i,j]);
s.t. t3 {i in CITIES} : tea[i] >= a[i] - tar[i]; /* early arrival */
s.t. t4 {i in CITIES} : tla[i] >= tar[i] - b[i]; /* late arrival */
s.t. t5 {i in CITIES} : ted[i] >= a[i] - tlv[i]; /* early departure */
s.t. t6 {i in CITIES} : tld[i] >= tlv[i] - b[i]; /* late departure */
data;
param n := 9 ;
param : ARCS : DIST :=
1 2 21
1 3 8
1 4 6
1 5 10
1 6 2
1 7 4
1 8 5
1 9 5
2 1 21
2 3 18
2 4 21
2 5 23
2 6 22
2 7 20
2 8 22
2 9 25
3 1 7
3 2 16
3 4 3
3 5 9
3 6 8
3 7 4
3 8 7
3 9 9
4 1 8
4 2 18
4 3 3
4 5 10
4 6 9
4 7 6
4 8 9
4 9 11
5 1 9
5 2 25
5 3 11
5 4 9
5 6 11
5 7 8
5 8 11
5 9 13
6 1 4
6 2 23
6 3 8
6 4 7
6 5 11
6 7 5
6 8 7
6 9 8
7 1 3
7 2 20
7 3 6
7 4 5
7 5 8
7 6 4
7 8 3
7 9 8
8 1 3
8 2 20
8 3 5
8 4 4
8 5 8
8 6 5
8 7 4
8 9 7
9 1 7
9 2 24
9 3 10
9 4 8
9 5 13
9 6 7
9 7 7
9 8 6
;
param : a :=
1 705
2 420
3 420
4 420
5 420
6 420
7 420
8 420
9 420
;
param : b :=
1 785
2 795
3 725
4 500
5 785
6 785
7 430
8 785
9 785
;
param : p :=
1 65
2 55
3 125
4 65
5 65
6 65
7 65
8 65
9 65
;
option solver './cplex';
solve;
代码来自(神奇!)Stackoverflow。
在我的 Kubuntu-pc 中,使用 AMPL 和 cplex,我看到这个错误:
Error at _cmdno 2 executing "solve" command (file tsp_nodi_archi_costo.run, line 170, offset 2582): error processing constraint t2[1,1]: invalid subscript DIST[1,1]
我还有一个 .run 文件,它们运行良好,但这个不行!为什么?谢谢!
最佳答案
请注意,您设置的 ARCS 不包含 (1,1), (2,2), ....
因此 DIST[i,i] 未定义,并且 x[i,i] 是无效索引,因为您将 ARCS 声明为 x 的索引集。
但是,正如错误消息所建议的那样,您的约束 t2 在 {i in CITIES, j in CITIES} 上建立了索引,并且它将尝试创建的第一种情况是 i=1, j=1,这会导致无效下标。
您可以通过将 t2 中的索引更改为:{i in CITIES, j in CITIES: j <> i} 来解决此问题。
编辑:我注意到其他一些问题:
关于linux - AMPL 脚本错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48197289/
AMPL 默认使用 MINOS。我必须输入选项求解器“./lpsolve”;每次我想使用 lpsolve 作为我的求解器时。有没有办法更改默认值? 最佳答案 在 AMPL 和 lpsolve 所在的目
我有一个名为 Rest 的变量定义为: var Rest{I,J,T} >= 0; 其中 T 是一组时间段,I 和 J 是弧。我需要定义 I 和 J 的每个值,其中 T = 0 必须为 0。I 是供应
我需要使用一个变量来标识矩阵的值。我想做的是定义一个变量,如: var a in A; # to say that the variable takes value from index A 我想将其
我想在 AMPL 中定义一个变量,它可以是 0 或 40 到 100 之间的值。 使用 var x >=40, <=100 || == 0;不幸的是不是有效的语法。我应该将这些约束之一定义为参数吗?
我有一个具体问题,非常感谢任何帮助。 我正在从事一个关于 AMPL(一种数学编程语言)的特定项目:我需要实现一个目标函数来最小化变量成本的风险,该函数具有成本作为参数和相关系数。 风险是使用成本方差估
我现在正在做一个模型,需要进行很大的调整。基本上我需要扩展我当前的 V 集(一组城市)成为一组城市和时间。例如,V 中的元素 Kir 必须从简单的“Kir”扩展为“Kir1”、“Kir2”、...、“
这里有一个 AMPL 脚本(TSP 成本问题),但我不明白错误。 这里是代码: param n, integer, >= 3; /* number of nodes */ param MAX_TIME
浏览互联网,我发现了新的Ample SDK JavaScript 框架。来自他们的 about section : Ample SDK is a standard-based cross-browse
我正在使用 CPLEX 求解器在 Netbeans 和 Java 上做一个项目。我们有几个优化问题要解决,我已经通过在 Java 中编写所有约束、目标和变量而不使用 AMPL 解决了其中一个问题。但是
我正在使用 AMPL,需要输入具有非负偏差变量 (s+ - s-) 的模型。 一个示例约束是:(x - 5) = (s+ - s-) 最佳答案 方法是这样的: var x; var sp >= 0;
我遇到了 AMPL 问题。我使用的是 32 位版本的 Linux 操作系统。我正在尝试解决一个简单的线性规划问题,但我不明白哪里出了问题……这里还有模型、数据文件和 session 脚本。命令“解决”
我对 AMPL 建模有疑问。你能帮我定义一个二元变量 u 吗?当另一个变量 x 也等于 0 时,u 应该等于 0;当 x 不等于 0 时,u 应该等于 1? 我试图使用逻辑表达式,但我正在使用的求解器
我有兴趣了解 GAMS 和 AMPL 用户对这些语言的优缺点的意见。 最佳答案 就功能而言,它们几乎相同,可以表达大多数类型的优化问题。就我个人而言,我更喜欢 AMPL,因为它具有直观且富有表现力的语
我正在尝试在 Pyomo/AMPL 中设置(并解决)多个优化问题。为此,我需要首先为 AMPL 定义模型: model model_1.mod model model_2.mod model mode
我正在使用 C++ 的 AMPL API,它将 AMPL mod 文件作为输入。我想为 AMPL 模式文件中的每个变量设置初始猜测,但我不知道该怎么做。任何人都可以帮我吗? 提前致谢! 最佳答案 要设
关注这篇文章 - http://zverovich.net/2013/06/27/visualizing-geographical-ampl-data-using-ipython-and-google
在许多应用中我们需要优化。通常在数据库或文本文件中需要优化的数据。是否有任何 python 解析器/实用程序读取将 python 数据结构转换为 AMPL 数据文件,以便我们可以运行优化? 最佳答案
我想隐藏这样的消息 CPLEX 12.5.1.0: integer infeasible. 319 MIP simplex iterations 0 branch-and-bound nodes No
我刚刚在我的 Linux 机器上下载并安装了 WORHP。但是,我不清楚如何使用 AMPL 和 Matlab 接口(interface)。用户指南说 .mex 文件和 AMPL 二进制文件应与安装一起
我有一系列用 AMPL 和 GAMS 编写的优化问题。我在 Matlab 中有一个算法。如何在 Matlab 中用算法解决这些问题?我读过有关 GAMS 的 GDXMRW 接口(interface),
我是一名优秀的程序员,十分优秀!