向SCIP传递SoPlex参数:LP子问题对偶单纯形算法设置疑问
在AMPL中配置SCIP+SoPlex使用对偶单纯形求解LP子问题
方案一:通过SCIP的LP算法参数设置
直接在scip.set里指定lp/initalgorithm = d和lp/resolvealgorithm = d完全可以实现你的需求。这两个SCIP参数专门用于指定LP求解器在初始LP求解和后续LP重求解阶段使用的算法,当SoPlex作为LP求解器时,SCIP会自动将d(代表对偶单纯形)的设置传递给SoPlex,无需额外操作就能让SoPlex用对偶单纯形处理MIP的LP子问题。
方案二:直接传递SoPlex专属参数
你也可以绕过SCIP的LP参数,直接给SoPlex传递其原生参数,具体方法是在scip.set中用soplex/作为前缀,后跟SoPlex的参数名:
# 直接指定SoPlex使用对偶单纯形 soplex/algorithm = d # 额外配置SoPlex的对偶定价策略 soplex/dualpricing = steepestedge
这种方式的优势是可以精细控制SoPlex的所有原生参数,比如调整缩放策略、迭代阈值等SCIP层面参数覆盖不到的选项。
另外,在AMPL环境中,也可以直接通过option scip_options临时传递参数,不用修改scip.set:
option scip_options 'soplex/algorithm=d';
内容的提问来源于stack exchange,提问作者Matthias Fripp
相关产品推荐
相关产品推荐

