折弯机分解中的点/可行性切割

2024-06-01 03:40:42 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在学习Benders分解,现在,我正在使用文件bendersatsp.py。我明白,在模型(ATSP)是编程在它是没有必要的增加可行性削减。我想看一个玩具的例子,其中有必要添加可行性削减使用相同的代码结构,在这个文件中,以了解如何做到这一点。你知道吗

我一直在想:

需要在函数def separate内添加新条件if

if cpx.solution.get_status() == cpx.solution.status.MIP_optimal:

这是一种选择吗?你知道吗

非常感谢!你知道吗


Tags: 文件代码py模型ifstatus编程例子
1条回答
网友
1楼 · 发布于 2024-06-01 03:40:42

我想你弄错了:这个例子只把可行性切割分开。你知道吗

不过,您将函数separate用于优化切割的想法是正确的。但是,由于子问题是LP而不是MIP,因此您必须检查cpx.solution.status.optimal的状态。你知道吗

目前在Python中没有这方面的示例代码。另一方面,仅仅采用任何教科书中的Benders描述,将其与您引用的Python示例相一致,然后自己扩展分离,可能并不太难。你知道吗

cplex/examples/src/remotec/parbenders.c中,您有一个Benders实现,它将两种类型的切割分离开来。这个实现是用C语言实现的,但是考虑到Python和capi是相似的,这可能会对您有所帮助。你知道吗

相关问题 更多 >