商业代数建模语言的哪些特征仍然缺少开源代码?

时间:2017-02-04 21:26:00

标签: ampl gams-math pyomo julia-jump operations-research

主要的商业代数建模语言(AML),如GAMS或AMPL,有哪些特性,开源AML,如Pyomo或JuMP,还没有(显然除了已建立模型的用户群和可用性)? / p>

1 个答案:

答案 0 :(得分:1)

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。