问题标签 [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.

0 投票
1 回答
981 浏览

optimization - 具有 cplex 的 AMPL 非二次非线性约束

我正在做一个优化项目,我遇到了一个小问题。对于我的项目,我使用 AMPL 和 CPLEX 作为求解器。在我的代码中,我有一些由 e1、e2、...、en 表示的元素。我还有一个集合,其中包含这些元素中的元组。我必须为每个元素分配一个介于 1 和 'n' 之间的数字,以便最大化 moveTuples 集中 1 个元组中每 2 个元素之间的距离(我需要对它们进行排序,但尽量保持同一个元组中元素之间的距离) .

每个元素必须只有 1 个分配的编号,并且每个编号只能分配给 1 个元素。为此,我编写了以下代码:

现在问题很清楚了,对于前面的示例,输出必须是:

e1 -> 1

e2 -> 3

e3 -> 2

或者

e1 -> 3

e2 -> 1

e3 -> 2

因为只需要使用元组 (e1,e2) 从 e2 中移动 e1。运行前面的代码时,我收到错误:...包含非二次非线性约束(绝对是“moveApart”约束)。你能指导我如何解决这个问题吗?提前致谢。

0 投票
0 回答
265 浏览

optimization - 为优化问题选择求解器和建模语言

我目前使用 lp_solve(来自 R)来解决相当大(但稀疏)的 LP/IP,用于规划/优化和其他在工作中出现的运筹学问题。

从广义上讲,它运行良好,我喜欢在 R 中工作,但我知道我们考虑的模型至少需要发展到本质上是二次的(通常可能是非凸的)。

我想知道这个领域的“行业标准”是什么:我不应该超越 AMPL/CPLEX 组合(并在那里投入一些时间)吗?附加问题:GAMS/AMPL 中哪一个是更好的选择?(两者都不精通,但知道我在功能上需要什么:例如稀疏矩阵支持)对于非常大的 LP/QP/IP,CPLEX 跨集群的扩展性如何?有多少曲线能够设置/运行这样的集群?

0 投票
1 回答
464 浏览

gnu - GLPK:使用集合元素索引变量

假设我有一个这样定义的集合和变量:

我有 3 个变量,x[Animals]比如说x[Plantes]x[Persones]。我想要x[Animals]并且x[Plantes]>=0,并且x[Persones]>=7。我尝试了所有想到的逻辑方式来在“主题”部分定义它,但它不起作用。我怎么能做第三个变量<=7?

0 投票
1 回答
6413 浏览

ampl - AMPL 的语法错误

在 AMPL 中运行此脚本时出现语法错误。有人可以帮我解决这个问题吗?

我在 tex 文件(.rtf)中编写了这段代码并将其上传到 neos-server

求解器的输出是:

amplin,第 7 行(偏移量 54):

语法错误

上下文:>>> {\ <<< rtf1\ansi\ansicpg1252\cocoartf12 处理命令。

在 neos-2.neos-server.org 上执行

/opt/ampl/ampl -R amplin 中的错误 (2)

0 投票
1 回答
1036 浏览

ampl - 无法打开 AMPL IDE 窗口

我已获得 AMPL 试用许可证。我已按照所有说明下载所有求解器。当我单击 amplide 图标时,它会给我以下消息:

我该如何解决这个问题?

0 投票
0 回答
75 浏览

ampl - 在 AMPL 中找到降低的成本

我正在尝试使用 AMPL 进行线性编程,但我无法找到一些信息。export_price我找到了出口产品开始获得回报的临界值,由prod_trans.rc. 的初始值export_price为零。

现在我想找到 的截止import_price值,初始值也为零。我可以将初始值设置为某个较大的数字M,然后再次查看降低的成本。这样,截止将是 M 减去减少的成本。但这似乎不雅且直观,我觉得即使将进口价格设置为0,也必须有一种方法可以读取截止值。有没有办法?

这是目标函数的相关部分:

0 投票
1 回答
1148 浏览

optimization - 约束中的 AMPL 双重条件

我正在做一个优化项目,为此我正在使用 AMPL 和 CPLEX。我的问题有点简单,但如果不使用一些额外的“无用”变量,我就无法做到。

所以假设我有以下代码:

现在我希望在 2 个条件下处理一个约束,例如:

不幸的是,CPLEX 不允许我使用以下语法:

它说“逻辑约束 _slogcon[1] 不是指标约束。

现在我这样做的方式是引入一个新变量。

如果 x[a,1] = 1 和 x[a,2] = 1,则此变量等于 1。

我的问题是我正在使用的大型模型。就我而言,这个 dummyVar 不仅仅是一个小集合,它包含一组集合。当 AMPL 处理代码(将其转换为由 CPLEX 读取)时,由于内存不足而崩溃。

有没有简单的方法来写类似的东西

不引入任何额外的变量?提前致谢。

0 投票
1 回答
28 浏览

ampl - AMPL 将派生变量“锁定”到一个值

我想调查投资一个额外的生产设施是否有利可图,因此我必须在我的目标函数中考虑资本化。

因此,我想知道是否有可能,例如,如果 y[t] = 1,那么 y[g] = 1 for g != t, g > t 并且其中 g,t 是时间间隔集的子集T。

我的第一个想法是:

但这肯定会使 y 的解成为 y[0] 中的起始值,这显然是我不想要的。

为了澄清。假设 y[t] 是一个二元变量,如果投资在时间 t 内进行,则其值为 1,否则为 0。

希望任何人都可以对此有所了解!

问候

0 投票
1 回答
150 浏览

ampl - AMPL 可以递归地处理这个问题还是需要进行改造?

我正在使用 AMPL 对一个产品进行建模,其中我有两个我不太确定如何处理的特定约束。

编辑:其中 x[i,t] 是供应点 i 的产品数量。u[i] 表示从供应点 i 到生产产品的原材料的“交换率”。即一定比例的原材料将成为成品,而一些原材料将被浪费。RecycledU[f] 也是如此,其中 f 在 F 中,表示已对其进行精炼的精炼站。不同之处在于 RecycledU[f] 的浪费百分比要低得多,因为 Recycled 已经是 f 的成品(尽管利润要低得多)。即 Recycle 已经“经历”了较早成为原材料的过程,x,但在某个较早的阶段已成为成品,或者希望(如果可以建模)在与此相同的时间段内。在实际模型中作为“产品”

我想要完成的是,生产的产品数量是时间段 t 内销售的所有物品时间段 t回收的产品数量的总和(回收的意思是成品保存在生产现场以供进一步使用)在某个时间步长 g, g>t) 中进行细化。

是否可以像我一样为 prod[t] 写两个等号?另外,如何处理 Recycle[t]?AMPL 能否“理解”由于这些是在同一时间步表示的,AMPL 必须递归处理约束,即计算 Recycle[t] 的解决方案,然后尝试在每个时间步改进该解决方案?

编辑:时间段以年表示,这就是为什么我想避免使用 Recycle[t-1] 的表达式。

EDIT2: prod 和 x 是参数, Recycle 和 Soliditems 是变量。

希望任何人都可以对此有所了解!

森德泽

0 投票
1 回答
100 浏览

math - GLPK Hydro Storage - 不可行

我正在尝试摆弄 GLPK 和 mathprog 语言。我正在尝试为水力存储实现一个简单的模型(只是涡轮机,没有泵)。但我越来越不可行了。

把初始条件倒过来,这应该是可行的。


这是代码:


这是输出:

有人可以帮帮我吗?