用Gurobi解决收集施泰纳树的奖品

时间:2017-05-26 15:38:43

标签: python mathematical-optimization networkx gurobi operations-research

我是数学编程问题建模的新手。我试图用Gurobi求解器解决关于网络优化的练习。这就是练习所说的:

`附件中的图表 graph10092015.gml 包含一组电信公司可以与光纤网络连接的潜在机柜。每个机柜(节点)u都关联了一个利润,每个边缘uv都与一个连接成本相关联。

  1. 设计一个最大化公司利润的网络,知道链接安装的预算不能超过4000欧元。
  2. 从之前的最佳解决方案中,评估以500欧元的成本将网络扩展到机柜19的便利性,以便在连接免费机柜4和14的机柜中安装无线路由器。 `
  3. 我将这个问题描述为收集Steiner树的奖品:

    formulation of the problem

    您如何看待这个?要解决这个问题,我应该使用切割平面方法,因此定义分离问题吗?

    我想我想出了如何对问题进行建模,但我对此类练习仍然没有信心。

    提前感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

我很久以前就解决了这个问题。我把这个问题描述为PCST。我添加了一个约束条件,该约束条件规定了设计网络的成本上限(它为预算支出建模)。

一旦我获得了第一点的解决方案。我已经介绍了一个二进制变量k,当1为1时,机柜4,14的成本无效,并增加了19的路由器安装成本。然后:

1-我强制将19连接到在第1点发现的树枝。这等于:y [19] = 1

2-如果机柜19处于树状结构中,那么即使是4和14也必须在。这等于:(2 * y [19])< = y [4] + y [14]

3-如果19在树枝中,则引入路由器引起的成本变化。这等于:k [1]< = y [19]