数学建模Python图论习题
数学建模简明教程-基于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图论习题相关推荐
- 数学建模python实现基础编程练习1
数学建模python实现编程练习1 习题来自<python数学实验与建模> 1.利用sympy库进行画单叶双曲面 用pyplot画的不是很理想,就用sympy画了,利用plot3D函数 f ...
- 数学建模之图论——图与网络模型(一)(基本概念和最短路问题,附MATLAB源码)
图与网络的基本概念与数据结构 一.图与网络的基本概念 图论中图是由点和边构成的,可以反映一些对象之间的关系. 无向图 无向图(简称图):没有方向,由点和边构成的图,记做G =(V , E),点是V,边 ...
- 数学建模python实现基础编程练习4
数学建模python实现基础编程练习4 1.使用networkx实现最短路和最短距离 import networkx as nx list1 = [(1,2,7),(1,3,3),(1,4,12),( ...
- 数学建模python和java_参加数学建模用 MATLAB,还是 Python?
用哪个不重要,重要的是能找到代码!代码查找和改写的能力很重要!建模就三天的时间,纯打代码肯定是来不及的,必须要找点套路!!! 一般情况下,这两个软件都可以,不过大多数人会选择使用MATLAB ,因为用 ...
- 【数学建模】图论模型-Floyd算法(最优化)
文章目录 一.算法介绍 二.适用问题 三.算法总结 1. 步骤 四.应用场景举例 五.MATLAB代码 六.实际案例 七.论文案例片段(待完善) Floyd算法主要针对数学建模问题中的一些小的子问题进 ...
- 【数学建模】图论模型-dijkstra算法(最优化)
文章目录 一.算法介绍 1. 带权邻接矩阵 二.适用问题 三.算法总结 1. 步骤 四.应用场景举例(待完善) 五.MATLAB代码 六.实际案例 七.论文案例片段(待完善) dijkstra算法主要 ...
- 数学建模python教材推荐_数模竞赛专攻python应该准备什么?
想起以前打开Matlab就不忍心关掉的阴影(无SSD打开及其慢). 没有什么非要二选一,喜欢哪个用哪个都行,两个都试试比一比也行,比赛更不会关心你的结果图哪儿来的(小孩才...大人全都...). Ma ...
- 【数学建模】图论模型(基础理论+最大流与最小费用流问题)
图论模型 基础理论 1.无向图与有向图 有向图的边称为弧,有向图一般记为 D = ( V , A ) D=(V,A) D=(V,A),其中 V V V 为顶点集, A A A 为弧集. 边的表示 ( ...
- 数学建模python matlab 编程(喷泉模拟)
在无风情况下的喷泉模拟 我的python代码 import numpy as np import random import matplotlib matplotlib.rcParams['font. ...
最新文章
- gulp打包js/css时合并成一个文件时的顺序解决
- TensorFlow官方文档中的sub 和mul中的函数已经在API中改名了
- Dotnet洋葱架构实践
- 我的领域驱动设计运用实例 - 领域啊领域
- 前端学习(2982):实现商品功能列表
- django 模型blank和null的区别
- DefaultMessageListenerContainer
- creo扫描选择多条链作为轨迹_Proe/Creo曲面造型·蓝牙耳机纹理曲面纹理
- Android最全UI库合集
- WIN7安装启动盘制作并支持usb3.0
- c语言正确声明的格式,c语言函数声明格式是什么?
- 深入研究webrtc平滑发送(paced sender)
- RPC框架系列——Avro
- Android如何制作.9图片
- 有了这个sku分析!老板再也不用担心我不会选款备货了
- JS如何获取指定元素下的子元素的值
- 将一组数组尽可能均匀的分成两堆,使两个堆中的数的和尽可能相等
- 编程推荐书目管理(PDF资源)
- CF 920A Water the Garden
- 5W字总结Spark(建议收藏)
热门文章
- 模拟器连不上解决方法
- 直播app开发需要走的六大步骤
- 新中大SE(ngpower)反月结、反记账
- 2019,被催更了!2020,干就是了!
- 从java环境配置到成功使用VOSviewer
- VFP视频教程计划启动
- VC2013下使用64位libcurl(包含zlib1、ssleay32等)
- vue中base64图片展示提示 图片报错:GET data:image/png;base64,undefined net::ERR_INVALID_URL
- 一周AI资讯|如果深度学习成为“侦探”,会发生什么?
- 【ember zigbee】序章:协议栈相关文档学习笔记