MIP开始


MIP开始

例子:设施,灵敏度

MIP建模师通常知道如何计算问题的可行解决方案。在MIP求解器在寻找初始可行解时速度较慢的情况手机万博登录下,它可以帮助建模者提供模型本身的可行解。这是通过开始属性。这在设施的例子。

设施示例解决了一个简单的设施选址问题。该模型包含一组仓库和一组生产仓库中所需产品的工厂。manbetx官网手机登入每个工厂都有最大的生产能力和固定的运营成本。此外,还存在将产品从工厂运送到仓库的相关成本。manbetx官网手机登入目标是决定哪些工厂应该满足产品的需求,考虑到相关的能力和成本。

该示例使用一个简单的启发式方法来选择初始解决方案:它关闭固定成本最高的工厂。相关的解决方案可能不是最优的,但它可以产生一个合理的起始方案的MIP优化。的设置将MIP启动传递给MIP求解器手机万博登录开始属性在优化开始之前。在C语言中,我们使用以下代码设置start属性来打开所有的植物:

/*首先,打开所有的植物*/ for (p = 0;p < nPlants;++p) {error = grbsetdblattreement (model, "Start", opencol(p), 1.0);if (error) goto QUIT;}
在c++中:
//首先,打开所有的植物(p = 0;p < nPlants;+ + p){打开[p]。集(GRB_DoubleAttr_Start, 1.0);}
在Java中:
//首先,打开所有的植物(int p = 0;p < nPlants;+ + p) {[p]这里(GRB.DoubleAttr开放。首先,1.0);}
在c#中:
//首先,打开所有的植物(int p = 0;p < nPlants;+ + p){打开[p]。开始= 1.0;}
在Python中:
#首先打开所有植物中的p:打开[p]。开始= 1.0

当你运行这个例子时,MIP解析器报告这个开始产生了一个可行的初始解决手机万博登录方案:

用户MIP用目标210500启动生产的解决方案
这个初始解决方案对于样本数据来说是最优的。虽然计算差异对于这个小例子来说是微不足道的,但是提供一个好的开始解决方案有时可以帮助更困难的模型。

注意,本例中的MIP开始只指定一些变量的值——这些变量决定哪些植物应该开放,哪些植物应该关闭。Gurobi MIP解决方案使用所提供的任何启动信息来尝试构建一个完整的解决方案。