问题标签 [ampl]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
ampl - 在 AMPL 中初始化 3 维变量
我有一个名为 Rest 的变量定义为:
其中 T 是时间段的集合,I 和 J 是弧。我需要定义 I 和 J 的每个值,其中 T = 0 必须为 0。I 是供应节点集,J 是需求节点集。
我试过了:
但它让我语法错误。我在 .dat 和 .mod 文件中都使用了 := 和 :
我还尝试将其放入 .dat 文件中
但它给了我错误
提前致谢!
编辑:我现在使用:
这给了我错误
(我正在使用 NEOS 服务器,Gurobi 求解器)。这甚至意味着什么?此外,如果我声明一个这样的变量 Rest 是否会导致每个 Rest 解决方案变为 0?还是编译器将其解释为起始值?
编辑:我尝试实施 vitaut 提供的解决方案。但是,正如该回复下方的评论中所表达的那样,它不起作用。我认为,因为我已将 T 定义为:
并且由于我想在 t = 0 时做一个 let 语句,我必须考虑到这一点并将 Rest 定义为:
var Rest{I,J,TimeT};
其中 TimeU 是 T union 一个只有 0 元素的集合,即 TimeU 被解释为:
然而,随着这些修复,编译器抱怨我所有的变量和参数都已经定义了。
ampl - AMPL 参数语法
我正在努力使用 AMPL 语法(这是我的第一个项目)。在我的模型中,我有:
在我的数据中,我有:
但在最后一行我得到了错误:
linear-programming - AMPL IDE:无法使用 lpsolve
我下载并解压amplide-demo-linux64.tar.gz
到/opt/amplide/
.
然后我下载lp_solve_5.5.2.0_exe_ux32.tar.gz
并解压文件lpsolve
到/opt/amplide/ampl/
.
我liblpsolve55.so
在 AMPL 页面上建议的目录下:
这就是发生的事情:
那个怎么样?
ampl - 使用 AMPL + Neos 服务器仅打印非零结果
我正在做一个相对较大模型的优化模型。我将在这个模型中使用 15 个时间步,但现在当我测试它时,我只使用了 4 个。然而,即使比预期少 11 个时间步,模型仍然会打印 22 000 行变量,其中可能只有 100 行与0。
有没有人看到过去的方法?即一种使用 NEOS 服务器仅在变量名称和对应值大于 0 时打印的方法。
我测试的是:
同时使用 omit_zero_rows 0; 或省略_zero_rows 1;仍然打印每个结果,而不是高于 0 的结果。
我也试过:
但它给了我语法错误。在我用于 NEOS 服务器的 .run 文件中测试了两个(或者实际上是三个)变体。
ampl - AMPL 中有序对集的声明
我有一个变量 u[i,j,p] 其中 i 和 j 是有序集。具体来说,我已经定义了变量和集合
在 .mod 文件中。在我的 .dat 中,我写道:
但这给了我关于如何声明 u 的错误。尝试遵循我尝试执行的 AMPL 文档时
但它也给出了错误。
ampl - 在这种情况下,我怎样才能最大限度地降低成本?
帮助,有人可以帮助我吗?具有固定成本的最小成本流和饱和字符串的奖励。
考虑以下最小成本流问题的变体,其中除了网络 G = (V, A),其值 bi 与节点 i ∈ V 相关联,因此 Pi∈V bi = 0 并且单位成本的成本 cij沿弧 (i, j) ∈ A 运输 我们也有:
• 在每个拱门中都与一个容量值相关联,该容量值指示沿拱门可传输的最大流量dij;• 此处发送严格正流的弧的数量不超过弧总数的 100p1%,并且对于这些弧中的每一个,您支付 K 的固定成本;• 饱和弧的数量(沿其发送与其容量相等的流量的弧)至少占弧总数的 100p2%(p2
为这个问题制定数学模型,用 AMPL 编写并定义特定实例的数据,解决它。如果您更改某些实例数据,还必须注意分析会发生什么。特别是,您可能会发现区间 [p1, p2] 尽可能小,以便解决问题。
ampl - 在 scipampl 中显示剪切类型
我使用 scipampl 作为 AMPL 中的 MILP 求解器。我想知道产生了什么削减。虽然 scipampl 显示了求解过程中的切割数量,但它没有显示切割的种类。要找出削减,我知道的唯一方法是为 scip 打开交互式 shell 并在求解后显示统计信息。但是当我需要解决 AMPL 中的许多问题并在运行后收集数据时,这种方法对我不起作用。
我想知道是否有一种方法可以让 scipampl 在不启动交互式 shell 的情况下打印出切割信息(或其他信息,如 LP 调用)。
另一个相关问题是如何显示部分统计信息。不是显示所有内容,而是有一个像“显示统计数据削减”这样的命令。
我查看了“scip.set”中的选项,但显示选项似乎没有提供我正在寻找的东西。
ampl - AMPL IDE - 使用数据文件的简单线性优化
我首先看了一下 AMPL IDE 并解决了一个特定的线性优化问题:
模型和脚本结合在一起完成了这项工作。在这个例子中,有 2 种可购买的产品,它们有 3 种不同的成分,问题是要找到这两种产品的最佳组合,以使每种成分的数量都足够。
但是我意识到,一旦我有更多的产品和更多的组件,写出所有的约束将是荒谬的。因此,我正在尝试创建一个通用版本,该版本从单独的文件中获取数据,并且可以轻松扩展以使用(实际)需要的尽可能多的系数。
我从一个数据文件开始,正如我想象的那样,它应该看起来像这样:
但是模型现在应该是什么样子呢?