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)
相关推荐
Boop_wu1 小时前
[数据结构] Map和Set
java·数据结构·算法
二王一个今1 小时前
Python打包成exe(windows)或者app(mac)
开发语言·python·macos
一勺菠萝丶1 小时前
Mac 上用 Homebrew 安装 JDK 8(适配 zsh 终端)完整教程
java·python·macos
思考的笛卡尔2 小时前
密码学基础:RSA与AES算法的实现与对比
网络·算法·密码学
C嘎嘎嵌入式开发5 小时前
(2)100天python从入门到拿捏
开发语言·python
Stanford_11066 小时前
如何利用Python进行数据分析与可视化的具体操作指南
开发语言·c++·python·微信小程序·微信公众平台·twitter·微信开放平台
white-persist7 小时前
Python实例方法与Python类的构造方法全解析
开发语言·前端·python·原型模式
Java 码农8 小时前
Centos7 maven 安装
java·python·centos·maven
格林威8 小时前
常规线扫描镜头有哪些类型?能做什么?
人工智能·深度学习·数码相机·算法·计算机视觉·视觉检测·工业镜头
倔强青铜三8 小时前
苦练Python第63天:零基础玩转TOML配置读写,tomllib模块实战
人工智能·python·面试