数学建模简明教程-基于python

第五章 图与网络优化


文章目录

  • 数学建模简明教程-基于python
  • 题目
  • 三、3如表5.3是某运输问题的相关数据,将次问题转换为最小费用最大流问题,画出网络图并求解。
  • 二、题解
    • 1.问题分析
    • 2.运行结果
  • 问题总结

题目

本文章为自己解答的教材答案:


三、3如表5.3是某运输问题的相关数据,将次问题转换为最小费用最大流问题,画出网络图并求解。

二、题解

1.问题分析

要使用要使用最大流算法,必须构造一个发点s,和收点t,设出边和边的容量,且要解决最小费用问题需要设出费用且根据链路经行赋权,再构造有向赋权图。
构造有向图(V,E,f)V为图中的节点集合,E为vivj边的集合,C为每条边的容量,
Bij为每条边的费用。
(c,f)第一个数字为容量,f第二各数字为费用

代码如下(示例):


from platform import node
import numpy as np
import networkx as nx
L=[('s','A',8,0),('s','B',7,0),
('A','1',8,20),('A','2',8,24),('A','3',8,5),
('B','1',7,30),('B','2',7,22),('B','3',7,20),
('1','t',4,0),('1','t',5,0),('1','t',6,0)
]
node=['s']+['A','B']+[str(i) for i in range(1,4)]+['t']
G=nx.DiGraph();n=len(node)
G.add_nodes_from(node)
for k in range(len(L)):G.add_edge(L[k][0],L[k][1],capacity=L[k][2],weight=L[k][3])
mincostFlow =nx.max_flow_min_cost(G,'s','t')
print('max flow',mincostFlow)
mincost=nx.cost_of_flow(G,mincostFlow)
print('min cost',mincost)flow_mat=np.zeros((n,n))
for i,adj in mincostFlow.items():for j,f in adj.items():flow_mat[node.index(i),node.index(j)]=f
print('max flow:',sum(flow_mat[:-1]))
print('min cost max flow zero:',flow_mat)

2.运行结果

(示例):
max flow {‘s’: {‘A’: 6, ‘B’: 0}, ‘A’: {‘1’: 6, ‘2’: 0, ‘3’: 0}, ‘B’: {‘1’: 0, ‘2’: 0, ‘3’: 0}, ‘1’: {‘t’: 6}, ‘2’: {}, ‘3’: {}, ‘t’: {}}
min cost 120
max flow: [0. 6. 0. 6. 0. 0. 6.]
min cost max flow zero: [[0. 6. 0. 0. 0. 0. 0.]
[0. 0. 0. 6. 0. 0. 0.]
[0. 0. 0. 0. 0. 0. 0.]
[0. 0. 0. 0. 0. 0. 6.]
[0. 0. 0. 0. 0. 0. 0.]
[0. 0. 0. 0. 0. 0. 0.]
[0. 0. 0. 0. 0. 0. 0.]]


问题总结

最短路径下的最大流量容量为6,在迭代了n次数后,没有出现负增长。

数学建模Python图论习题相关推荐

  1. 数学建模python实现基础编程练习1

    数学建模python实现编程练习1 习题来自<python数学实验与建模> 1.利用sympy库进行画单叶双曲面 用pyplot画的不是很理想,就用sympy画了,利用plot3D函数 f ...

  2. 数学建模之图论——图与网络模型(一)(基本概念和最短路问题,附MATLAB源码)

    图与网络的基本概念与数据结构 一.图与网络的基本概念 图论中图是由点和边构成的,可以反映一些对象之间的关系. 无向图 无向图(简称图):没有方向,由点和边构成的图,记做G =(V , E),点是V,边 ...

  3. 数学建模python实现基础编程练习4

    数学建模python实现基础编程练习4 1.使用networkx实现最短路和最短距离 import networkx as nx list1 = [(1,2,7),(1,3,3),(1,4,12),( ...

  4. 数学建模python和java_参加数学建模用 MATLAB,还是 Python?

    用哪个不重要,重要的是能找到代码!代码查找和改写的能力很重要!建模就三天的时间,纯打代码肯定是来不及的,必须要找点套路!!! 一般情况下,这两个软件都可以,不过大多数人会选择使用MATLAB ,因为用 ...

  5. 【数学建模】图论模型-Floyd算法(最优化)

    文章目录 一.算法介绍 二.适用问题 三.算法总结 1. 步骤 四.应用场景举例 五.MATLAB代码 六.实际案例 七.论文案例片段(待完善) Floyd算法主要针对数学建模问题中的一些小的子问题进 ...

  6. 【数学建模】图论模型-dijkstra算法(最优化)

    文章目录 一.算法介绍 1. 带权邻接矩阵 二.适用问题 三.算法总结 1. 步骤 四.应用场景举例(待完善) 五.MATLAB代码 六.实际案例 七.论文案例片段(待完善) dijkstra算法主要 ...

  7. 数学建模python教材推荐_数模竞赛专攻python应该准备什么?

    想起以前打开Matlab就不忍心关掉的阴影(无SSD打开及其慢). 没有什么非要二选一,喜欢哪个用哪个都行,两个都试试比一比也行,比赛更不会关心你的结果图哪儿来的(小孩才...大人全都...). Ma ...

  8. 【数学建模】图论模型(基础理论+最大流与最小费用流问题)

    图论模型 基础理论 1.无向图与有向图 有向图的边称为弧,有向图一般记为 D = ( V , A ) D=(V,A) D=(V,A),其中 V V V 为顶点集, A A A 为弧集. 边的表示 ( ...

  9. 数学建模python matlab 编程(喷泉模拟)

    在无风情况下的喷泉模拟 我的python代码 import numpy as np import random import matplotlib matplotlib.rcParams['font. ...

最新文章

  1. gulp打包js/css时合并成一个文件时的顺序解决
  2. TensorFlow官方文档中的sub 和mul中的函数已经在API中改名了
  3. Dotnet洋葱架构实践
  4. 我的领域驱动设计运用实例 - 领域啊领域
  5. 前端学习(2982):实现商品功能列表
  6. django 模型blank和null的区别
  7. DefaultMessageListenerContainer
  8. creo扫描选择多条链作为轨迹_Proe/Creo曲面造型·蓝牙耳机纹理曲面纹理
  9. Android最全UI库合集
  10. WIN7安装启动盘制作并支持usb3.0
  11. c语言正确声明的格式,c语言函数声明格式是什么?
  12. 深入研究webrtc平滑发送(paced sender)
  13. RPC框架系列——Avro
  14. Android如何制作.9图片
  15. 有了这个sku分析!老板再也不用担心我不会选款备货了
  16. JS如何获取指定元素下的子元素的值
  17. 将一组数组尽可能均匀的分成两堆,使两个堆中的数的和尽可能相等
  18. 编程推荐书目管理(PDF资源)
  19. CF 920A Water the Garden
  20. 5W字总结Spark(建议收藏)

热门文章

  1. 模拟器连不上解决方法
  2. 直播app开发需要走的六大步骤
  3. 新中大SE(ngpower)反月结、反记账
  4. 2019,被催更了!2020,干就是了!
  5. 从java环境配置到成功使用VOSviewer
  6. VFP视频教程计划启动
  7. VC2013下使用64位libcurl(包含zlib1、ssleay32等)
  8. vue中base64图片展示提示 图片报错:GET data:image/png;base64,undefined net::ERR_INVALID_URL
  9. 一周AI资讯|如果深度学习成为“侦探”,会发生什么?
  10. 【ember zigbee】序章:协议栈相关文档学习笔记