图论常见模型与分析

合集下载

图论模型

图论模型

图论模型此模型解决的是垃圾清运路线的最佳方案。

1、收集路线方案:用中国邮递员问题解决达到最佳经济效益和环保效果的垃圾清运路线问题是在车辆限载约束条件下的最优路径选择的问题,同时本项目涉及到深圳市南山区38个垃圾中转站,而每个中转站所覆盖的收集区域的选取需要满足最大覆盖域(即总体能够消耗最少资源来覆盖整片区域),收集区域的划分又要同时考虑实地情况(地形、路线、用地性质、人流量、垃圾量等)。

1.1模型建立:为简化问题讨论,在转运站覆盖区域的划分的问题上,需要运用“最大覆盖”及“模糊划分”的思想,具体划分出每个转运站所对应 的片区的近似最优划分。

将问题简化后,所要求解的问题就是每个垃圾中转站所对应的每个小分区的街道所构成的收集网络的垃圾收运车辆优化路线的问题,也就是要求每一条街道至少有一辆垃圾收运车经过并且车辆重复走过的街道的总长度最小化的问题。

对于这个问题,我们采用图论模型,将每个小分区的街道及收集点简化成网络图(也叫赋权图)。

对于网络图中的圈用圈点来表示,计算各个圈点的垃圾量(也即围成圈的街道上的垃圾量的和),将相邻(有公共顶点)的圈点用线连接起来,这就构成了圈点图。

遵循以垃圾中转站为圆心沿径向发散求最小生成树的原则将圈点图中相邻的圈点组块,使得每块的垃圾量近似于垃圾收运车载限,对应于圈点分块,网络图分开成了各个子网络图,对于每一个子网络图即可利用欧拉回路求得其最小路径线路。

现在给出最短欧拉回路求解举例:图代表的是其中一个收集子网络图,其中直线表示车辆需要经过的街道,线上的数字表示该街道的长度,该子网络图各条街道的垃圾量之和近似于收集车辆的载限。

现要求的是车辆经过每一条街道至少一次的最短回路,现在对这个问题分步求解:第一步:找出图中的奇点,如图中橙色小圆点所在处为奇点。

第二步:将各对奇点沿街道连接起来,使得连接奇点的所有街道总长度最小。

如下图绿色线条:第三步:得出经过每条街道至少一次的最短路径长度为所有街道的总长加上连接奇点的街道的长度。

图论建模(结合案例分析)

图论建模(结合案例分析)

e4 v1v4 , e5 v3v4 , e6 v3v4 .
(见图 2)
图. 称边 e (vi , v j ) 为有向边或弧,称 e (vi , v j )是从vi 连接 v j 的弧 ,称 vi 为e的尾,称 v j 为e的头. 若图G中的边均为无序偶对 vi v j ,称G为无向图.称 边 e viv j 为无向边,称e连接 vi 和 v j ,顶点 vi 和 v j 称 为e的端点. 既有无向边又有有向边的图称为混合图.
2004A:奥运会临时超市网点的设计问题 • 题型:属于社会事业问题,主要包括观众的出行、用餐 和购物的规律,各商区人流分布规律,以及各商区的大小 超市的设计数量等问题。 • 特点:海量数据、数据冗余、结构复杂,即时性、综 合性、实用性和开放性强。 • 方法:主题方法数据的处理、统计分析、数据挖掘、 数学规划等。 • 结果:不唯一,对结果没有明确要求。
图的作用
图是一种表示工具,改变问题的描述方式,往往是创造性的 启发式解决问题的手段.一种描述方式就好比我们站在一个位 置和角度观察目标,有的东西被遮挡住了,但如果换一个位置和 角度,原来隐藏着的东西就可能被发现.采用一种新的描述方式, 可能会产生新思想.图论中的图提供了一种直观,清晰表达已知 信息的方式.它有时就像小学数学应用题中的线段图一样,能使 我们用语言描述时未显示的或不易观察到的特征、关系,直观 地呈现在我们面前,帮助我们分析和思考问题,激发我们的灵感.
v 来表示;
用 G (V (G ), E (G )) 表示图,简记 G (V , E ). 也用 vi v j 来表示边 (vi , v j ).
例设 G (V (G ), E (G )) , 其中:V (G) {v1, v2 , v3 , v4},

数学建模-图论模型

数学建模-图论模型

思路分析
• 每学期任课老师都有一定工作量的要求往往可能要上不止一门课 程。
• 每位同学需要在学期内完成若干门课程的学习。 • 某些对上课设施有特殊要求的课程,也不可以安排在同一时间。 • 为了方便开展一些全校性的活动,有些时段不安排课程。 • 受到教室数量的限制,在同一时段无法安排太多的课程。
模型建立
• 以每个课程为顶点,任何两个顶点之间连一条边当且仅当两门课 程的任课老师为同一人,或有学生同时选了这两门课或上课教室 冲突。
• 那么一个合理的课程安排就是将图中的点进行分化,使得每一个 部分里的点为一个独立集。
• 通过极小覆盖找出图中的极 大独立集,然后删去该极大 独立集,在剩下的图中找出 极大独立集,直到剩下的图 为一个独立集。
匈牙利算法
• 饱和点:M是图G的一个匹配,若G中顶点v是M中某条边的端 点,则称M饱和v,否则称v是M的非饱和点。
• 可扩路:一条连接两个非饱和点x和y的由M外的边和M的边交错 组成的路称为M的(x,y)可扩路。
• 算法基本步骤:
Kuhn-Munkres算法
1.2 图的独立集应用
• 问题描述:各大学学期临近结束时,需要根据老师任课 计划和学生选课情况,再结合教室资源情况安排下一学 期的课程及上课时间和地点。下表所示是某大学电信学 院的大三各专业部分课程情况。该学院每届学生按专业 分班,统一选课。另外,学院只有一间普通机房和一间 高级机房。那么应该如何合理地排这些课程呢?
则称其是双连通或强连通的。对于不是双连通的图,都可以分解成 若干个极大的双连通分支,且任意两分支之间的边是同向的。
举例:
• 右图所示竞赛图不是双连通的

为一条有向
的D哈密尔A顿路B。 C E

数学建模图论模型

数学建模图论模型
若将图G的每一条边e都对应一个实数Fe,则称 F(e)为该边的权,并称图G为赋权图(网络), 记为 G = <V, E , F>。
任意两点均有通路的图称为连通图。
连通而无圈的图称为树,常用T=<V,E>表示树。
若图G’是图 G 的生成子图,且G’又是一棵树, 则称G’是图G 的生成树。
例 Ramsey问题
图1
图2
并且常记: V = v1, v2, … , vn, |V | = n ; E = {e1, e2, … , em}ek=vivj , |E | = m
称点vi , vj为边vivj的端点 在有向图中, 称点vi , vj分别为边vivj的 始点和终点. 该图称为n,m图
8
对于一个图G = V, E , 人们常用图形来表示它, 称其 为图解 凡是有向边, 在图解上都用箭头标明其方向.
4、P'代替P,T'代替T,重复步骤2,3
定理2 设 T为V的子集,P=V-T,设 (1)对P中的任一点p,存在一条从a到p的最短路径,这条路径仅有P中的
点构成, (2)对于每一点t,它关于P的指标为l(t),令x为最小指标所在的点, 即:
l(x)mli(tn )} t{ ,T
(3)令P’=P Ux,T’=T-{x},l’(t)表示T'中结点t关于P'的指标,则
解:用四维01向量表示人,狼,羊,菜例在过河西河岸问的题状态(在
岸则分量取1;否则取0),共有24 =16 种状态; 在河东岸 态类似记作。
由题设,状态(0,1,1,0),(0,0,1,1),(0,1,1,1)是不允许的
其对应状态:(1,0,0,1), (1,1,0,0),(1,0,0,0)也是不允许

图论模型及其解答

图论模型及其解答

各种图论模型及其解答摘要:本文用另一种思路重新组织《图论及其应用》相关知识。

首先,用通俗化语言阐述了如何对事物间联系的问题进行图论建模;接着从现实例子出发,给出各种典型图论模型,每种图论模型对应于图论一个重要内容;再者,介绍相关知识对上述提到的图论模型涉及的问题进行解答;最后,补充一些图论其他知识,包括图论分支、易混概念。

符号约定:Q(Question)表示对问题描述,M(Modeling)表示数学建模过程,A(Answer)表示原问题转化为何种图论问题。

一、引言图论是研究点、线间关系的一门学科,属于应用数学的一部分。

现实生活中,凡是涉及到事物间的关系,都可以抽象为图论模型。

点表示事物,连线表示事物间的联系。

整个求解过程如下:原问题——>图论建模——>运用图论相关理论求解——>转化为原问题的解整个过程关键在于图论建模,所谓图论建模,就是明确点表示什么,连线表示什么,原问题转化为图论中的什么问题。

存在以下两种情况:①若事物间联系是可逆的(比如双行道,朋友),则抽象成无向图②若事物间联系是不可逆的(比如单行道,状态转化不可逆),则抽象成有向图如果需要进一步刻画事物间的联系(比如城市间的距离),就给连线赋一个权值,从而抽象成赋值图。

综上,根据实际问题,可建模成下列图论模型的一种:无向赋权图、有向赋权图、无向非赋权图、有向非赋权图。

例1.宴会定理:任何一宴会中,一定存在两个人有相同的数量朋友M:点表示人,连线表示当且仅当该两个人是朋友A:问题转化为任何一个图一定存在两个顶点的度相等二、图论模型接下来介绍若干典型的图论模型,每种模型几乎对应于图论的一个重要内容,这些内容将在第三章进行讨论,也就给出了这些模型的解答思路。

2.1 偶图模型凡涉及两类事物间的联系(即只考虑两类事物间的联系,而不考虑同类事物间的联系),均可抽象成偶图模型。

作图时,将两类事物分成两行或者两列。

这类模型通常被包含在后续的模型中,但因许多现实问题可抽象成该模型,所以单列出来讨论。

图论数学模型

图论数学模型

关于工序流程图画法的说明
• (1) “拆卸”,“清洗”等这些具体工作称为 工 序 ,用实箭线“→”来表示。工序名称写在箭线上方, 完成这项工序的时间写在箭线下面,箭线的方向代表 了工序时间的流向 . • (2)工序之间交接处表示的圆圈称为 事项 或 结 点 ,用以标志前面工序的结束和允许后面工序的开始, 是工序完成或开始的瞬间符号,具有承上启下、把工 序衔接起来的作用 . • (3)若 A 工序必须在 B 工序完成之后才有条件进 行,则称 A 是 B 的 紧后工序 ,或称 B 是 A 的 紧 前工序 . 另外,同一对结点间不能表示两个及其以上 个工序,如图 2 - 21 ( 左图 )的画法是不允许的, 为此引进了虚工序概念而将此表示式画成图 2 - 21 (右图)的形式 .
• 解:TCP;ABS;RD
• 例 3 工程流程图 • ( 第五届北京高中数学知识应用竞赛题) • 机床的大修有如下的工作项目:拆卸③,清洗④, 电器检修④,部件检查①,零件加工④,零件修 理⑤,床身和工作台研合②,部件组装(不含电 器)②,变速器组装①,试车③ . • 1. 画出工序的流程图,即用图表示出各项工作 的衔接关系 . • 2. 假定大修期间没有耽误任何时间,并把开始 拆卸时刻记为 0 ,试问:大修完成的时刻最早是 多少? • 3. 在不影响最短时间完工的条件下,每个工作 项目最早和最迟开工时间各是多少?
第二章
图论数学模型 及其应用
2.3 建立图模型 解决实际问题的趣例
• 例 1 节目排序问题 • 一场文艺演出共有 8 个节目 , 全体演员中 有 10 人须参加两个以上的节目演出 , 情 况如表,表中的√号所示 , 如演员 1 要参 加三个节目 A 、 B 和 H. 若节目主办单 位希望首尾两个节目为 A 和 H, 或为 H 和 A, 并且希望每个演员不连续参加两个 节目的演出 , 试为主办单位安排一个节目 顺序表 .

东北大学数学建模-图论模型朱和贵

东北大学数学建模-图论模型朱和贵
36
每对顶点间的最短路算法
寻求赋权图中各对顶点之间最短路,显然 可以调用 Dijkstra 算法。具体方法是:每次以 不同的顶点作为起点,用 Dijkstra 算法求出从 该起点到其余顶点的最短路径,反复执行次这 样的操作,就可得到每对顶点之间的最短路。 但这样做需要大量重复计算,效率不高。R. W. Floyd(弗洛伊德)另辟蹊径,提出了比这更好 的算法,操作方式与 Dijkstra 算法截然不同。
一个点v6表示第5年年底。 E ={vivj | 1≤i<j≤6}。
F (vi v j ) bi ck
k 1
34
j i
这样上述设备更新问题就变为:在有向赋权 图G = (V, E, F )(图解如下)中求v1到v6的最短路问 题。
35
从上图中容易得到v1到v6有两条最短路: v1v3v6和v1v4v6。
20
重要性质: 如果P是D中从vs到vj的最短路,vi是P中 的一个点,那么,从vs沿P到vi的路是从vs到vi
的最短路。
21
求非负赋权图G中某一点到其它各点最 短路,一般用Dijkstra (迪克斯特拉)标号算 法;求非负赋权图上任意两点间的最短路, 一般用Floyd(弗洛伊德)算法。这两种算法均 适用于有向非负赋权图(Floyd算法也适应 于负赋权图)。
(3,V1)
v2 3 1
6 4 1
v4 3 2
5
v3
(4,V2)
v6
6
v5
(5,V3)
28
(5) S:{V1,V2,V3, V5} S’:{V4,V6} 求出(S→ S’)所有 弧,分别计算: (0,V1) S24 =3 + 6=9 v1 S34 =4 + 4=8 S54 =5 + 2=7 S56=5 + 6=11 Min Sij=S54

图论模型

图论模型

图论模型图是为了解决一些具体问题而产生的模型,这可以从它的发源“哥尼斯堡的七桥问题”看到。

一个图表示了某些对象集合元素之间的关系,所以它被广泛用来作为许多与对象的离散安排有关问题的模型。

它已在物理、化学、经济、管理、信息、控制等所有离散系统中应用。

本章仅介绍几类图论模型。

9.1 连线问题一、问题的背景与提出现实社会中,我们可以看到,公路、铁路、通信、输电线路等的建设中,都涉及到“如何设计建造一个既能畅通无阻又造价小的网络”问题,即连线问题。

二、模型假设与符号说明假设要建造一个连接若干城镇的通信网络,第i个城镇与第j个城镇之间直通线路的造价为cij。

三、模型的建立与求解把每个城镇看作是一个点v;两个城镇直通线路看作边e;城镇vi与城镇vj之间直通线路的造价看作边vivj的权w(vivj)=cij,这样我们得到了一个赋权图G。

设计一个总造价最小的通信网络,就转化为:在赋权图G,找出具有最小权的连通生成子图,即寻找赋权图的最小权的生成树(最优数)。

1956年Kruskal给出了一种求最优树的算法,称为避圈法,算法如下: 10 选择边e1,使得w(e1)尽可能小;20 若已选定边e1, e2, …, ei, 则从边集E\{e1, e2, …, ei}中选取ei+1,使(ⅰ)G[{e1, e2, …, ei+1}]为无圈图;(ⅱ)w(ei+1)是满足(ⅰ)的尽可能小的权, 30 当20不能继续执行时停止。

对于p个点ε条的赋权图G,该算法就是先将赋权图的边按权的递增顺序排列:a1, a2, …, aε设e1=a1, e2=a2, 检查a3,如果a3与e1, e2不构成圈,则令e3=a3,否则放弃a3,检查a4,1。

美赛 7:图论模型、分类模型(十大模型篇)

美赛 7:图论模型、分类模型(十大模型篇)

目录五、图论模型1.迪杰斯特拉(Dijkstra)算法、贝尔曼-福特(Bellman-Ford)算法2.弗洛伊德(Floyd)算法六、分类模型1.逻辑回归2.Fisher线性判别分析五、图论模型图论模型主要解决最短路径问题,根据图的不同,对应采用迪杰斯特拉(Dijkstra)算法、贝尔曼-福特(Bellman-Ford)算法、弗洛伊德算法(Floyd)。

Matlab代码:% Matlab中的图节点要从1开始编号s = [9 9 1 1 2 2 2 7 7 6 6 5 5 4];t = [1 7 7 2 8 3 5 8 6 8 5 3 4 3];w = [4 8 3 8 2 7 4 1 6 6 2 14 10 9];G =graph(s,t,w);plot(G, 'EdgeLabel', G.Edges.Weight, 'linewidth', 2) set ( gca, 'XTick', [], 'YTick', [] );%% Matlab作无向图% (1)无权重(每条边的权重默认为1)% 函数graph(s,t):可在 s 和 t 中的对应节点之间创建边,并生成一个图% s 和 t 都必须具有相同的元素数;这些节点必须都是从1开始的正整数,或都是字符串元胞数组% 注意:编号从1开始连续编号s1 = [1,2,3,4];t1 = [2,3,1,1];G1 = graph(s1, t1);plot(G1)% 注意字符串元胞数组是用大括号包起来s2 = {'学校','电影院','网吧','酒店'};t2 = {'电影院','酒店','酒店','KTV'};G2 = graph(s2, t2);% 设置线的宽度plot(G2, 'line width', 2) % 画图后不显示坐标set( gca, 'XTick', [], 'YTick', [] ); % (2)有权重% 函数graph(s,t,w):可在 s 和 t 中的对应节点之间以w的权重创建边,并生成一个图s = [1,2,3,4];t = [2,3,1,1];w = [3,8,9,2];G = graph(s, t, w); plot(G, 'EdgeLabel', G.Edges.Weight, 'linewidth', 2) set( gca, 'XTick', [], 'YTick', [] ); %% Matlab作有向图% 无权图 digraph(s,t)s = [1,2,3,4, 1];t = [2,3,1,1,4];G = digraph(s, t);plot(G)set( gca, 'XTick', [], 'YTi ck', [] ); % 有权图 digraph(s,t,w)s = [1,2,3,4];t = [2,3,1,1];w = [3,8, 9,2];G = digraph(s, t, w);plot(G, 'EdgeLabel', G.Edges.Weight, 'linewidth', 2) set( gca, 'XTick', [], 'YTick', [] );1.迪杰斯特拉(Dijkstra)算法、贝尔曼-福特(Bellman-Ford)算法迪杰斯特拉算法是基于贪婪算法的思想,从起点出发逐步找到通向终点的最短距离。

图论模型(最优连线问题、最短路问题)

图论模型(最优连线问题、最短路问题)

v3
8.1 最优连线问题(最小生成树)
例1 现需从自来水厂接自来水管道到各个城镇,自 来水厂到各城镇之间铺设自来水管道价格如下,问 如何铺设最经济。
A 8 B
5
E 1
7 6
水厂
3 10
D 9
C
分析: ①显然铺设的自来水管道要连通各个顶点; ②铺设的管道中如果有回路,则去掉一条边,仍可 行。 故所铺设的管道是连通各个顶点且没有回路的 图形,称为图G的生成树。 我们的目标是寻找一颗图G的生成树,其各条 边的权之和最小,称为最小生成树。 1956年,Kruskal给出了一种求最小生成树的 算法,称为避圈法。
e2 e5
e4
M
v2
v3
v4
v4
0 0 0 1
1 0 1 0
0 0 0 1
0 1 0 0
e3
v3
例3
v1 2 v2
v1 v1 v2 v3 v4
3 7
8
M
v2
v3
v4
v4
0 7
2 0 8
0 5
3 0
5
lv; v; s(k+1)=v; k=k+1; u=s(k); end l z 输出结果为: l=0 2 1 7 3 6 9 12 z=1 1 1 6 2 5 4 5
注:l输出的是u1到u1、u2、…、u8各个顶点的 最短路径距离。 z输出的是最短路径中u1、u2、…、u8的父节点。
%求从u0到uj0的最短路径 disp('起点为u1.'); j=input('输入终点u'); disp('下面求从起点u1到终点'); j, disp('的最短路径。'); lj=[]; while j~=1 lj=[[j],lj]; j=z(j); end lj=[[1],lj]; lj 例如求u1到u8的最短路径,程序执行后输出为:1 2 5 6 8 各位有兴趣还可以考虑将图可视化,点击屏幕输入终点以及 在图形上输出显示最短路径。

图论模型简介

图论模型简介

图论模型简介一、图及其矩阵表示1、起源:哥尼斯堡七桥问题:欧拉为了解决这个问题,建立数学模型:陆地——点,桥——边,得到一个有四个“点”,七条“边”的“图”。

问题转化为能否从任一点出发一笔画出七条边再回到起点。

欧拉考察了一般一笔画的结构特点,给出了一笔画判定法则:图是连通的,且每个顶点都与偶数条边相关联(这种图称为欧拉图)。

由此可以得出结论:七桥问题无解。

2、基本概念:图(graph):由顶点和边(又称线,边的两端必须是顶点)组成的一个结构。

邻接:一条边的两个端点称是邻接的;关联:边与其两端的顶点称是关联的。

无向图(graph):边无方向的图;有向图(digraph):边有方向的图。

路(path):由相邻边组成的序列,其中中间顶点互不相同。

圈(cycle):首、尾顶点相同的路,即闭路。

连通图(connected graph):图中任意两顶点间都存在路的图。

树(tree):无圈连通图完全图(complete graph):任意两个顶点之间都有边相连的无向图,记为K n。

竞赛图(tournament):由完全图给每条边定向而得到的有向图。

二部图(bipartite graph):图的顶点分成两部分,只有不同部分顶点之间才有边相连。

图G的子图H(subgraph):H是一个图,H的顶点(边)是图G的顶点(边)。

网络(Network):边上赋了权的有向图。

3、图的矩阵表示无向图 有向图01000101100101101100010⎡⎤⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎣⎦ ⎥⎥⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎢⎢⎣⎡011101000001001000001104、著名的图论问题例1 最短路问题(shortest path problem)出租车司机要从城市甲地到乙地,在纵横交错的路中如何选择一条最短的路线?例2 最小生成树问题(minimum-weight spanning tree problem)为了给小山村的居民送电,每户立了一根电杆,怎样连接可使连线最短?例3 中国邮递员问题(chinese postman problem)一名邮递员负责投递某个街区的邮件。

数学建模--图论模型(2)

数学建模--图论模型(2)
数学建模 –图论模型(2)
数学与统计学院 李书选
shuxuanli@
2012/07/18
数学建模 –图论模型(2)
4. 最小生成树及算法 5. 旅行售货员问题 6. 中国邮递员问题

停 下
4.最小生成树及算法
1) 树的定义与树的特征 定义 连通且不含圈的无向图称为树.常用T表示. 树中的边称为树枝. 树中度为1的顶点称为树叶. 孤立顶点称为平凡树.
2)图的生成树
定义 若T是包含图G的全部顶点的子图,它又是树, 则称T是G的生成树. 图G中不在生成树的边叫做弦.
定理3 图G=(V,E)有生成树的充要条件是图G是连 通的.
证明 必要性是显然的.
充分性:任取 u1 V ,令集合V1 {u1},这时生成
( 树T 的边集 ET1) 为空集. 因为 G 是连通图, 点集V1与
取一圈{v1e1v2e6v5e8v3e2v1},去掉 e6 .
B 破圈法
例 用破圈法求出下图的另一棵生成树.
取一圈{v1e1v2e3v3e2v1}, 去掉 e3 ; 取一圈{v1e1v2e4v4e5v3e2v1},去掉 e4 ; 取一圈{v1e1v2e6v5e8v3e2v1},去掉 e8 ;
取一圈{v1e1v2e6v5e7v4e5v3e2v1}去掉 e6 ; 得到另一颗生成树.
仍能找到边 ei 满足其一端在点集Vi ,另一端在点
(i V \ Vi 中. 由于 ei 有一端在Vi 之外,所以Vi 与 ET ) 集
中的边不构成圈. 当 i n 时,得到
( Vn {u1, u2 ,...,un} V , ETn) {e1, e2 ,...,en1},
即图T
(n) 由定理 2 知, (V , ET ) 有 n 1条边且无圈,

(优选)第二讲图论模型Ppt

(优选)第二讲图论模型Ppt
定义 图G的阶是指图的顶点数|V(G)|, 用 v来表示; 图的边的数目|E(G)|用 来表示.
用 G (V (G), E(G)) 表示图,简记 G (V , E). 也用 viv j 来表示边 (vi ,v j ).
例设 G (V (G), E(G)) , 其中:V (G) {v1,v2,v3,v4}, E(G) {e1,e2, e3,e4,e5,e6} , e1 v1v1,e2 v2v3,e3 v1v3, e4 v1v4,e5 v3v4,e6 v3v4. (见图 2)
6) 任意两顶点都相邻的简单图,称为完全图. 记为Kv.
7) 若V (G) X Y,X Y ,且X 中任意两顶点不
相邻,Y 中任意两顶点不相邻,则称为二部图或 偶图;若X中每一顶点皆与Y 中一切顶点相邻,称为 完全二部图或完全偶图,记为Km,n (m=|X|,n=|Y|).

8) 图 K1,n 叫做星.
X : x1 x2 x3 X : x1 x2 x3
Y : y1 y2 y3 y4 Y : y1 y2 y3 y4
K1,4
K6
二部图
K3,4
2) 赋权图与子图
定义 若图 G (V (G), E(G)) 的每一条边e 都赋以 一个实数w(e),称w(e)为边e的权,G 连同边上的权 称为赋权图.
定义 设 G (V , E)和 G (V , E)是两个图. 1) 若V V , E E ,称 G是 G 的一个子图,记 G G. 2) 若V V,E E ,则称 G是G的生成子图.
常用术语
1) 边和它的两端点称为互相关联.
2)与同一条边关联的两个端点称 为相邻的顶点,与同一个顶点 点关联的两条边称为相邻的边.
3) 端点重合为一点的边称为环, 端点不相同的边称为连杆.

数学建模之图论模型讲解

数学建模之图论模型讲解

过河问题:摆渡人Ferryman,狼wolf,羊sheep,卷 心菜cabbage过河问题 . 如何摆渡使得它们不能互 相伤害.
考试安排问题:学校期末考试安排n门课的考 试时间时,不能把同一位学生选修的两门课安排在 同一时间考试,问学校考试最少要进行多长时间?
信道分配问题:发射台所用频率从小到大编号 为1,2, …称为信道。用同一信道的两个台站相距得 少于一个常数d,问各台至少需同时使用几个不同 的信道?
A—R,A—C,A—T,
R—P,P—S,S—T,
T—B,B—D,D—C,
A
R—S,R—B,P—D,
S—C,S—D.
T
每种药品作为一个顶 点,不能放在一起的 S 连边。相邻顶点用不 同颜色着色。
R P
这一问题就是图论中的顶点着色问题。
至少需用3个房间:A,S,B/D,T,R/C,P
B C
D
例3 最短路问题(SPP-shortest path problem) 一名司机奉命在最短的时间内将一车货物从甲
问题变成了:能否从这个图上任一顶点出发,
经过每条边一次且仅一次而回到出发顶点。
--Euler-回路(圈)问题。
A
A
B
D
B
D
C
C
例2 药品存储问题
▪ 有8种化学药品A、B、C、D、P、R、S和T要放 进贮藏室保管,出于安全原因,下列各组药品不能 贮在同一室内:A—R,A—C,A—T,R—P, P—S,S—T,T—B,B—D,D—C,R—S, R—B,P—D,S—C,S—D,试为这8种药品设 计一个使用房间数最少的贮藏方案。
G[{v1,v2,v3}] G[{e3,e4,e5,e6}]
3) 若 V V,且 V ,以 V 为顶点集,以两端点 均在V 中的边的全体为边集的图 G 的子图,称 为G的由V 导出的子图,记为 G[V ] .

08图论模型剖析

08图论模型剖析

0 1 0 1 v1 1 0 1 1 v2 0 1 0 1 v3 1 1 1 0 v4
对有向图G=(V,E) ,其邻接矩阵 A (aij ) ,其中:
1 aij 0
若( vi,v j) E 若( vi,v j) E
基 本 概 念
定义 在无向图 G=(V ,E, )中:
c
x
x1 j 1 v j V s.t. x ji 1 ,i 1 v j V x 0或1 ij
8.2
最短通路问题
8.2.1 问题的背景与提出
在各种网络的铺设、网络的输送、线路的安排等 问题中,经常涉及到确定一条最短路.如在输送网络 中,考虑最小运输路线、最省运输费用、最少运输时 间等,这些都是最短通路问题.最短通路问题有非常 广泛的背景和应用,它也是图论或组合优化中的一个 重要问题.1959年,E.W.Dijkstra给出了该问题的一个 解法.
1956年Kruskal给出了一种求最优树的算法,称为避 圈法,算法如下: 1. 选择边 e1 ,使得w(e1 ) 尽可能小; 2. 若已选边 e1 , e2, ...,ei ,则从边集
E \ {e1 , e2, ...,ei } 中选取 ei 1 ,使
(1) G[{e1 , e2 ,...,ei 1}] 为无圈图;
节点间的连线,表示 有关联 一般用 eij 表示
节点和边的集合 一般用 G(V,E) 表示 点集 V={v1,v2,…, vn} 边集E={eij }

图 (Graph)


所有边都没有方向的图称为无向图,如上图 在无向图中 eij=eji,或 (vi, vj)=(vj, vi) 当所有边都有方向时,称为有向图,用G(V,A) 表示 在有向图中,有向边又称为弧,用 aij表示,i, j 的顺序是不能颠倒的,图中弧的方向用箭头标 识 图中既有边又有弧,称为混合图

图论 模型

图论 模型

图论模型图论是运筹学的一个经典和重要分支,专门研究图与网络模型的特点、性质以及求解方法。

许多优化问题,可以利用图与网络的固有特性而形成的特定方法来解决,比用数学规划等其他模型来求解往往要简单且有效得多。

图论起源于1736年欧拉对柯尼斯堡七桥问题的抽象和论证。

1936年,匈牙利数学家柯尼希(D. Kӧnig )出版的第一部图论专著《有限图与无限图理论》,树立了图论发展的第一座里程碑。

近几十年来,计算机科学和技术的飞速发展,大大地促进了图论研究和应用,其理论和方法已经渗透到物理、化学、计算机科学、通信科学、建筑学、生物遗传学、心理学、经济学、社会学各个学科中。

9.1 图的基础理论9.1.1 图的基本概念所谓图,概括地讲就是由一些点和这些点之间的连线组成的。

定义为(,)G V E =,V 是顶点的非空有限集合,称为顶点集。

E 是边的集合,称为边集。

边一般用(,)i j v v 表示,其中,i j v v 属于顶点集V 。

以下用V 表示图(,)G V E =中顶点的个数,E 表示边的条数。

如图9.1是几个图的示例,其中图9.1 (a)共有3个顶点、2条边,将其表示为(,)G V E =,123{,,}V v v v =,1213{(,),(,)}E v v v v =.23v 45v 34(a)(c)图9.1 图的示意图1.无向图和有向图如果图的边是没有方向的,则称此图为无向图(简称为图),无向图的边称为无向边(简称边)。

如图9.1 (a)和(b)都是无向图。

连接两顶点i v 和j v 的无向边记为(,)i j v v 或(,)j i v v 。

如果图的边是有方向(带箭头)的,则称此图为有向图,有向图的边称为弧(或有向边),如图9.1 (c)是一个有向图。

连接两顶点i v 和j v 的弧记为,i j v v 〈〉,其中i v 称为起点,j v 称为终点。

显然此时弧,i j v v 〈〉与弧,j i v v 〈〉是不同的两条有向边。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
22
例题分析
先求传递闭包 对于边(u,v),若存在一点k,使得uk且
kv,则边(u,v)是不必要的 易得一个O(n^3)的算法
证明?
23
Stack.push(u)
// 将节点u压入栈中
for each (u, v) in E
// 枚举每一条边
if (v is not visted) // 如果节点v未被访问过(树边)
tarjan(v)
// 继续向下找
Low[u] = min(Low[u], Low[v])
else if (v in S)
有向图G’,使G和G’的传递闭包相同。 图的传递闭包是指,若存在边AB, BC,
则必存在边AC N <= 100, M <= 10000
20
例题分析
Input 33 12 23 13 Output 2
Input 46 12 21 23 32 34 43 Output 4
21
例题分析
求强连通分量,缩点…… 在同一强连通分量内部,最少需要几条边? 不同分量之间的边,有哪一种是不必要的?
强连通分量相关
概念:有向图的强连通分量(SCC)是指,对 于强连通分量里面的任意两个点u,v,都存 在从u到v的路和从v到u的路
算法:复杂度均为O(V+E)
Kosaraju (两次dfs) Tarjan / Gabow (一次dfs)
1
Tarjan
对图进行DFS,每个SCC都是DFS树的一个子树。 在搜索时用堆栈维护当前正在处理的结点,栈顶 的若干元素即组成一个SCC。
18
例题分析
最终解法:
对原图求SCC并缩点,设新点i中最高价格点 为H[i],最低价格点为L[i]。在新的DAG图上 有DP:
dp[i] = max(H[i], max{dp[j], 当ij有边时}) 最终结果为max{dp[i] – L[i]}
注意:应排除不能到达N的点
19
例题分析
Poly-time Reductions(Hefei 2008) 给定一个有向图G,求一个包含最少边的
关键点:
一个强连通分量内部的所有点,在某种意义上 是“等价”的。
图中的边存在某种意义上的“传递性”。 通过缩点操作可以把复杂的一般有向图转化为
DAG,使得问题简化
8
例题分析
Popular Cows (USACO Fall 03)
POJ 2186 N头奶牛,给出若干个欢迎关系A B,表示A
欢迎B,欢迎关系是单向的,但是是可以传递 的。另外每个奶牛都是欢迎他自己的。求出被 所有的奶牛欢迎的奶牛的数目。 奶牛数目N≤10000 直接的欢迎关系数目M≤50000
9
例题分析
如果A欢迎B,就连一条从A到B的有向边 容易发现,在同一个强连通分量里的点具
有同样的“受欢迎程度”:能够到达它们 的点集是相同的,从它们出发能够到达的 点集也是相同的。 我们求出原图的强连通分量,然后收 缩……
类似求割点的过程,定义 Low[u] = min(dfn[u], low[v], {(u,v)为树边} dfn[v], {(u,v)为后向边} )
若对某点u有 dfn[u] = low[u],说明以u为根的子 树上的点为一个SCC
2
tarjan(u) {
DFN[u]=Low[u]=++Index // 为u设定dfn和Low初值
状态转移方程: dp[i] = max(v[i], max{dp[j], 当ij有边时})
注意:应排除不能到达N的点
17
例题分析
若图中有环…… 在同一SCC里的全部点的“连通性”是等
价的:能够到达它们的点集是相同的,从 它们出发能够到达的点集也是相同的。
若从此SCC买入,则一定买价格最低的点 若从此SCC卖出,则一定买价格最高的点
10
例题分析
容易发现,新图中唯一的出度为0的点即为 所求。
因为新图不含有环,这样的点一定存在。 如果出度为0的点不唯一则无解。
时间’s Trouble(TOJ2233/TOI 1135) WTommy需要向所有人通知某件事情,因为人数
众多,他想出了一个省力的方法:他只通知队中 的某些人,然后让这些人去通知所有他们认识的 人,这些新被通知的人又去通知更多的人……直 到最后队中的所有人都被通知到。 给定最初时WTommy通知每个人所需的花费,现 在他想求出一种方案,使得花费最少,并且保证 最终所有人都能被通知到。
12
例题分析
Input 43 30 20 10 40 12 21 23 Output : 60
1 ≤ N ≤ 10000, 0 ≤ M ≤ 200000
13
例题分析
同一个强连通分量里,只要有一人被通知 即可
缩点后得到的DAG中,如果一个点被通知, 则它的所有后继结点都会被通知。故只需 通知入度为0的点
在入度为0的每个点所表示的连通分量中, 通知花费最少的那个人,即为最优解
O(E)
14
例题分析
NOIP 2009 最优贸易(Trade) C 国有 n 个大城市和 m 条道路(单向或双
向),每条道路连接这 n 个城市中的某两 个城市。水晶球在各地有不同的价格。某 商人准备从1走到n(任何城市可以经过多 次),在某个城市买入,并在另一城市卖 出,收益即为价格之差。他最多只买入和 卖出1次,求最大收益。
15
例题分析
如下图,五城市水晶球价格分别为 4,3, 5,6,1 。则最高的方案是14545。 在第一次到5时买入,第二次到4时卖出, 收益为6 – 1 = 5
16
例题分析
若图中无环,则可以DP求解:
设v[i]表示i点的物品价格。令dp[i]表示从i到N 的路径中的最高价格。若从i点买入,则收益 为dp[i]-v[i]。最终结果即为max(dp[i]-v[i])
// 如果节点u还在栈内(后向边)
Low[u] = min(Low[u], DFN[v])
if (DFN[u] == Low[u]) // 节点u是SCC的根
repeat
v = S.pop // 将v退栈,为该SCC中一个顶点
print v
until (u== v)
} 3
4
5
6
7
强连通分量相关
相关文档
最新文档