我正在尝试实施基于Stefano Nasini" Benders分解AMPL"的两道课程随机编程,可用here。在教程示例中指定了两个模型文件 - 一个表示主问题,另一个表示子问题。在用于实现分解的运行文件中,如何向程序声明或显示问题文件?
答案 0 :(得分:1)
使用model和data命令在运行文件中包含指定主问题和子问题的组件的模型和数据文件:
model trnloc1d.mod;
data trnloc1.dat;
然后声明相应的命名问题:
problem Master: x, z, Total_Cost, Cut_Defn;
problem Sub: lambda, mu, Dual_Ship_Cost, Dual_Ship;
请注意,虽然您可以将两个问题拆分为两个,但是只有一个模型文件包含两个问题的所有声明。
在指定要解决的问题时,在实现Benders分解的脚本中使用问题名称(Sub
或Master
),例如以下命令解决子问题
solve Sub;