【发布时间】:2017-06-22 02:18:36
【问题描述】:
主要的商业代数建模语言 (AML),如 GAMS 或 AMPL,具有哪些开源 AML,如 Pyomo 或 JuMP,尚不具备(显然除了用户群和已建立模型的可用性)?
【问题讨论】:
标签: ampl gams-math pyomo julia-jump operations-research
主要的商业代数建模语言 (AML),如 GAMS 或 AMPL,具有哪些开源 AML,如 Pyomo 或 JuMP,尚不具备(显然除了用户群和已建立模型的可用性)?
【问题讨论】:
标签: ampl gams-math pyomo julia-jump operations-research
用通用语言编写的建模库通常缺乏 AMPL 的一个特征,即声明性模型和数据之间的明确分离。一些系统(例如 Pyomo)试图以不同程度的成功来模拟它,但通常受到它们所用语言的限制。
例如,AMPL 目标
minimize OBJ: sum{j in J} c[j] * y[j];
在 Pyomo 中可以写成
def obj_expression(model):
return summation(model.c, model.y)
model.OBJ = Objective(rule=obj_expression)
基于 AMPL 子集的 GNU MathProg 是一种没有此类限制的开源 AML。
【讨论】: