netflow.py例子细节
netflow.py例子细节
现在让我们一行一行地看一下这个例子,以了解它是如何达到计算最佳网络流的预期结果的。和前面介绍的简单Python示例一样,这个示例首先导入Gurobi函数和类:
从gurobipy导入*
然后我们创建了一些包含模型数据的列表:
# Base data commodities =['铅笔','钢笔']nodes =['底特律','丹佛','波士顿','纽约']arcs, capacity = multidict({('底特律','波士顿'):100,('底特律','纽约'):80,('底特律','西雅图'):120,('丹佛','纽约'):120,('丹佛','纽约'):120,('丹佛','纽约'):120,('丹佛','西雅图'):120})
该模型使用两种商品(铅笔和钢笔),网络包含5个节点和6个弧线。我们初始化大宗商品
和节点
作为简单的Python列表。我们用古罗比multidict
函数初始化弧
(列表
键),能力
(一个字典
).
该模型还需要每一对商品弧的成本数据:
# Cost for triplets Cost ={('铅笔','底特律','波士顿'):10,('铅笔','底特律','纽约'):20,('铅笔','底特律','西雅图'):60,('铅笔','丹佛','波士顿'):40,('铅笔','丹佛','纽约'):40,('铅笔','丹佛','西雅图'):30,('钢笔','底特律','波士顿'):20日(“笔”、“底特律”,“纽约”):20日(“笔”,“底特律”,“西雅图”):80(“笔”、“掘金”,“波士顿”):60岁(“笔”、“掘金”,“纽约”):70(“笔”、“掘金”,“西雅图”):30}
一旦这本词典完成,移动商品的成本h
从节点我
来j
可通过以下方式查询成本((h i, j))
.回想一下,Python允许您在使用元组索引字典时省略括号,因此可以将其缩短为just成本(h i, j)
.
一个类似的结构被用来初始化节点需求数据:
#对小商品城流入需求={(“铅笔”,“底特律”):50岁(“铅笔”、“掘金”):60岁(“铅笔”,“波士顿”):-50(“铅笔”,“纽约”):-50(“铅笔”,“西雅图”):-10(“笔”,“底特律”):60岁(“笔”、“掘金”):40岁(“笔”、“波士顿”):-40年,(“笔”、“纽约”):-30(“笔”、“西雅图”):-30}