Python CPLEX warm从不可行的解决方案开始

问题描述

我目前解决一个(整数)LP问题,除其他外,它具有以下数学约束作为伪代码

Packages_T1 + Packages_T2 + Packages_T3 + RPackages = 25

它代表三个包装车(T1,T2和T3),可以为每个包装车分配包装,还有目标功能中使用的剩余/溢出包装变量。当前值25表示总包装需求。

让我们说我想重新解决这个问题,但是将当前的25个包装需求更改为35个包装。当我从带有25个软件包的以前的解决方案开始时,CPLEX错误指出所提供的解决方案不可行:这很有意义。但是,即使最直接的方法是针对这些约束中的每一个“ {” RPackages变量”,它也随后无法修复先前的解决方案。

我的问题是,是否有可能仍然使用先前解决的问题中的信息作为新问题的热启动。例如,是否有办法从解决方案中删除所有RPackages并重新计算它们以适合右侧的新约束?我想到的“不得已”的工作是手动重新计算所有这些RPackages值,然后将它们替换为旧的解决方案,但更倾向于此问题的自动解决方案。我正在使用标准的CPLEX Python API作为参考。

谢谢。

解决方法

即使暖启动不可行,CPLEX仍可以使用一些信息。

让我使用来自的动物园示例

https://www.linkedin.com/pulse/making-optimization-simple-python-alex-fleischer/

#include<stdio.h>
#include<math.h>

  int main () { 
  double a = pow(2,99); 
  printf ("%lf\n",a); 
  return 0; 
  }

给予

633825300114114700748351602688.000000