DoCplex MILP 问题:运行 Benders & Branch and Bound Parallel
DoCplex MILP problem: Running Benders & Branch and Bound Parallel
我正在研究 MILP 模型(在 DoCplex 中),求解器有时使用 Benders 方法更快地找到解决方案,有时使用 Branch & Bound。有没有一种简单的方法可以 运行 并行解决方法,而无需在同一模型上更改变量名称(克隆模型)。并使用其中一个解决方案的输出。
您不能同时使用两种算法求解同一个模型。但是,创建同一个模型两次,然后在两个不同的线程或进程中同时求解应该很容易。为此,您必须使用 threading
或 multiprocessing
Python 模块。
在 Unix-like 操作系统(如 Linux 或 MacOS)上,一种非常简单方便的方法是使用 os.fork() 为每个求解创建一个新进程,然后控制他们从最初的过程。 fork()
隐式克隆模型,因此可以节省一些编程行。
我正在研究 MILP 模型(在 DoCplex 中),求解器有时使用 Benders 方法更快地找到解决方案,有时使用 Branch & Bound。有没有一种简单的方法可以 运行 并行解决方法,而无需在同一模型上更改变量名称(克隆模型)。并使用其中一个解决方案的输出。
您不能同时使用两种算法求解同一个模型。但是,创建同一个模型两次,然后在两个不同的线程或进程中同时求解应该很容易。为此,您必须使用 threading
或 multiprocessing
Python 模块。
在 Unix-like 操作系统(如 Linux 或 MacOS)上,一种非常简单方便的方法是使用 os.fork() 为每个求解创建一个新进程,然后控制他们从最初的过程。 fork()
隐式克隆模型,因此可以节省一些编程行。