问题标签 [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.
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”约束)。你能指导我如何解决这个问题吗?提前致谢。
optimization - 为优化问题选择求解器和建模语言
我目前使用 lp_solve(来自 R)来解决相当大(但稀疏)的 LP/IP,用于规划/优化和其他在工作中出现的运筹学问题。
从广义上讲,它运行良好,我喜欢在 R 中工作,但我知道我们考虑的模型至少需要发展到本质上是二次的(通常可能是非凸的)。
我想知道这个领域的“行业标准”是什么:我不应该超越 AMPL/CPLEX 组合(并在那里投入一些时间)吗?附加问题:GAMS/AMPL 中哪一个是更好的选择?(两者都不精通,但知道我在功能上需要什么:例如稀疏矩阵支持)对于非常大的 LP/QP/IP,CPLEX 跨集群的扩展性如何?有多少曲线能够设置/运行这样的集群?
gnu - GLPK:使用集合元素索引变量
假设我有一个这样定义的集合和变量:
我有 3 个变量,x[Animals]
比如说x[Plantes]
和x[Persones]
。我想要x[Animals]
并且x[Plantes]
>=0,并且x[Persones]
>=7。我尝试了所有想到的逻辑方式来在“主题”部分定义它,但它不起作用。我怎么能做第三个变量<=7?
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)
ampl - 无法打开 AMPL IDE 窗口
我已获得 AMPL 试用许可证。我已按照所有说明下载所有求解器。当我单击 amplide 图标时,它会给我以下消息:
我该如何解决这个问题?
ampl - 在 AMPL 中找到降低的成本
我正在尝试使用 AMPL 进行线性编程,但我无法找到一些信息。export_price
我找到了出口产品开始获得回报的临界值,由prod_trans.rc
. 的初始值export_price
为零。
现在我想找到 的截止import_price
值,初始值也为零。我可以将初始值设置为某个较大的数字M
,然后再次查看降低的成本。这样,截止将是 M 减去减少的成本。但这似乎不雅且直观,我觉得即使将进口价格设置为0,也必须有一种方法可以读取截止值。有没有办法?
这是目标函数的相关部分:
optimization - 约束中的 AMPL 双重条件
我正在做一个优化项目,为此我正在使用 AMPL 和 CPLEX。我的问题有点简单,但如果不使用一些额外的“无用”变量,我就无法做到。
所以假设我有以下代码:
现在我希望在 2 个条件下处理一个约束,例如:
不幸的是,CPLEX 不允许我使用以下语法:
它说“逻辑约束 _slogcon[1] 不是指标约束。
现在我这样做的方式是引入一个新变量。
如果 x[a,1] = 1 和 x[a,2] = 1,则此变量等于 1。
我的问题是我正在使用的大型模型。就我而言,这个 dummyVar 不仅仅是一个小集合,它包含一组集合。当 AMPL 处理代码(将其转换为由 CPLEX 读取)时,由于内存不足而崩溃。
有没有简单的方法来写类似的东西
不引入任何额外的变量?提前致谢。
ampl - AMPL 将派生变量“锁定”到一个值
我想调查投资一个额外的生产设施是否有利可图,因此我必须在我的目标函数中考虑资本化。
因此,我想知道是否有可能,例如,如果 y[t] = 1,那么 y[g] = 1 for g != t, g > t 并且其中 g,t 是时间间隔集的子集T。
我的第一个想法是:
但这肯定会使 y 的解成为 y[0] 中的起始值,这显然是我不想要的。
为了澄清。假设 y[t] 是一个二元变量,如果投资在时间 t 内进行,则其值为 1,否则为 0。
希望任何人都可以对此有所了解!
问候
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 是变量。
希望任何人都可以对此有所了解!
森德泽
math - GLPK Hydro Storage - 不可行
我正在尝试摆弄 GLPK 和 mathprog 语言。我正在尝试为水力存储实现一个简单的模型(只是涡轮机,没有泵)。但我越来越不可行了。
把初始条件倒过来,这应该是可行的。
这是代码:
这是输出:
有人可以帮帮我吗?