GUROBI实战案例(三)——交通运输(网络流模型)

问题介绍见:网络流问题:交通调度、仓储运输 (aliyun.com)

复制代码
import gurobipy as gb
from gurobipy import *
# 参数

start= ["a"]
mid_point = ["b","c","d","e","f"]
end = ["g"]

arcs, capacity = gb.multidict({
    ("a","b"):50,
    ("a","c"):100,
    ("b","d"):40,
    ("b","e"):20,
    ("c","d"):60,
    ("c","f"):20,
    ("d","e"):50,
    ("d","f"):60,
    ("e","g"):70,
    ("f","g"):70
})

# model
model = gb.Model()

# decision var
flow = model.addVars(arcs, lb = 0, vtype = GRB.INTEGER, name = "flow")
# constraints
# mid_points constraints
model.addConstrs((flow.sum("*", mid) == flow.sum(mid, "*") for mid in mid_point), name = "mid_point constrains")
# capacity constraints
model.addConstrs((flow[arc] <= capacity[arc] for arc in arcs), name = "capacity constraints")
# model.addConsts((flow.select(arc) <= capacity.select(arc) for arc in arcs), name = "capacity constraints")

# objective
obj = flow.sum("*", "g")
model.setObjective(obj, GRB.MAXIMIZE) #默认是求最小值
model.optimize()
# print(flow)
print(model.objVal)  # 打印目标函数值
for v in model.getVars():
  # 打印最终解中的决策变量
    print(v.x)
相关推荐
救救孩子把2 分钟前
59-机器学习与大模型开发数学教程-5-6 Adam、RMSProp、AdaGrad 等自适应优化算法
人工智能·算法·机器学习
Σίσυφος19002 分钟前
PCL 中常用的滤波对比
算法
进击的小头2 分钟前
连续系统离散化方法(嵌入式信号处理实战指南)
c语言·算法·信号处理
小码过河.5 分钟前
17装饰器模式
开发语言·python·装饰器模式
gf132111113 分钟前
python_生成RPA运行数据报告
windows·python·rpa
嫂子开门我是_我哥14 分钟前
第八节:条件判断与循环:解锁Python的逻辑控制能力
开发语言·python
永远都不秃头的程序员(互关)16 分钟前
【决策树深度探索(五)】智慧之眼:信息增益,如何找到最佳决策问题?
算法·决策树·机器学习
2301_8059629316 分钟前
树莓派的一些问题记录-1:usbboot仓库
python·gitee
智者知已应修善业19 分钟前
【输出方形点阵】2024-11-1
c语言·c++·经验分享·笔记·算法
深蓝电商API21 分钟前
Selenium 动作链 ActionChains 高级用法
爬虫·python·selenium