1

我正在尝试使用 NEOS 来解决使用 MPS 输入的线性程序。

MPS 文件很好,但显然您还需要一个“参数文件”来告诉求解器要做什么(最小/最大等)。但是,我在任何地方都找不到有关此在线的任何信息。

到目前为止,我已经让 NEOS 解决了一个最大化问题并显示了目标函数。但是我无法让它显示变量。

有谁知道我应该在参数文件中添加什么代码来告诉 NEOS/CBC 显示结果变量?

4

1 回答 1

2

参数文件由文件中的 Cbc(独立)命令列表(每行一个)组成。命令的格式是(引用文档):

One command per line (and no -)
abcd? gives list of possibilities, if only one + explanation
abcd?? adds explanation, if only one fuller help(LATER)
abcd without value (where expected) gives current value
abcd value or abcd = value sets value

命令如下:

?  dualT(olerance)  primalT(olerance)  inf(easibilityWeight)
integerT(olerance)  inc(rement)  allow(ableGap)  ratio(Gap)
fix(OnDj)  tighten(Factor)  log(Level)  slog(Level)
maxN(odes)  strong(Branching)  direction  error(sAllowed)
gomory(Cuts)  probing(Cuts)  knapsack(Cuts)  oddhole(Cuts)
clique(Cuts)  round(ingHeuristic)  cost(Strategy)  keepN(ames)
scaling  directory  solver  import
export  save(Model)  restore(Model)  presolve
initialS(olve)  branch(AndBound)  sol(ution)  max(imize)
min(imize)  time(Limit)  exit  stop
quit  -  stdin  unitTest
miplib  ver(sion)

要查看解决方案值,您应该在参数文件的or行sol之后包含行 - 。minmax

如果这不起作用,您可以通过此页面以AMPL格式将问题提交给 NEOS 。除了模型和数据文件之外,它还接受一个命令文件,您可以在其中使用语句来解决问题并显示解决方案,例如:

solve;
display _varname, _var;

这篇文章描述了如何将 MPS 转换为 AMPL。

于 2014-01-06T16:18:51.137 回答