图论模型的构建

合集下载

图论模型(最优连线问题最短路问题)PPT课件

图论模型(最优连线问题最短路问题)PPT课件
择的边组成图为无圈图,②新选边是满足①的尽可能 小的权。
(3)当(2)不能继续执行时停止。
(其思想是:在剩余边集中找边权最小的边添加到生成树中,同时又 不能产生回路即以局部的最优谋求全局的最优。)
上述的描述实际上是最小生成树的逐 步生长过程,上例的最小生成树如下:
A 5
1 3
D
8 E
水厂
9
B 7
6 10
著名数学家欧拉
七桥问题
图的基本概念
无 向 图
1 定义:由顶点和边组成的图形称为图。 有 向 图



2 边e与顶点u、v相关联。顶点u与v相邻。
e
u
边e1与e2相邻。
e1
v
e2
u=v时,边e称为环。
3度
定义:与顶点v关联的边的数目称为顶点的度数, 记为d(v)。(注:环算2度。)
对于有向图的顶点的度数,还可分为出度 d ( v ) 和 入度 d ( v ) 。
u3
u6
0 8
1
6
u8
5
10
5
2
6
1
1
u4
10
u7
第五步:min{8,11,11,9,8,12,7,11,11},u3。
u2
1
2
u5
3
2
7
5
3
9
u1
u3
u6
0
8
7
1
6
u8
5
10
5
2
6
1
1
u4
10
u7
第六步:min{11,12,11,11,9},u7。
u2
1
2

数学建模-图论模型

数学建模-图论模型

思路分析
• 每学期任课老师都有一定工作量的要求往往可能要上不止一门课 程。
• 每位同学需要在学期内完成若干门课程的学习。 • 某些对上课设施有特殊要求的课程,也不可以安排在同一时间。 • 为了方便开展一些全校性的活动,有些时段不安排课程。 • 受到教室数量的限制,在同一时段无法安排太多的课程。
模型建立
• 以每个课程为顶点,任何两个顶点之间连一条边当且仅当两门课 程的任课老师为同一人,或有学生同时选了这两门课或上课教室 冲突。
• 那么一个合理的课程安排就是将图中的点进行分化,使得每一个 部分里的点为一个独立集。
• 通过极小覆盖找出图中的极 大独立集,然后删去该极大 独立集,在剩下的图中找出 极大独立集,直到剩下的图 为一个独立集。
匈牙利算法
• 饱和点: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

图论模型的构建

图论模型的构建
图论模型的构建

•二.图论建模方法
1. 要素的选取
• 在建立模型之前,我们首先要对研究对象进
行全面的调查,将原型理想化、简单化;然后对
原型进行初步的分析,分清其中的各个要素及求
解目标,理出它们之间的联系;下一步就是用恰
当的模型来描述这些要素及联系。
• 【例1】渡河问题

一个人带了一只狼、一只羊和一筐白菜想要
•e
•e3
4

•2. 选择合适的理论体系
• 图由点、边、权三部分组成,根据这三部分的 性质的不同,就有着不同的图论模型,有着不同的理 论和算法,也就构成了不同的理论体系。图论建模依 据的是图论的基本理论和基本算法。
• 例如二分图把整个点集V分为两个子集,规定子 集内部的点之间没有边,因此二分图就有着不同于一 般图的特殊性质,而它的匹配算法也就比一般图的算 法简单;此外还有树、有向无环图等,它们属于不同 的理论体系,有着各自不同的性质,适于用不同的算 法求解。
•问题的求解目标:求河上往返次数最少的渡河方案。
• 对于要素(1),用字母m代表人,w代表狼,s代表 羊,v代表白菜。 • 要素(2)、(3)可抽象为开始时设人和其他三样东 西在河的左岸,这种情况用集合{mwsv}表示。在过河过 程中左岸出现的情况有以下16种: •{wmsv} {mws} {mwv} {msv} {wsv} {mw} {ms} {mv} •{ws} {wv} {sv} {m} {s} {v} {w} {φ}
过河。河上有一只小船,每次除了人以外,只能
带一样东西。另外,如果人不在时狼就会吃掉羊
,羊就要吃白菜。问怎样安排渡河,才能做到既
把所有东西都带过河,而且在河上往返次数最少

数学建模图论模型

数学建模图论模型
若将图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)也是不允许

数学建模方法之图论模型

数学建模方法之图论模型
2) 在有向图中,从顶点v引出的边的数目称为顶点 v的出度,记为d+(v),从顶点v引入的边的数目称为 v的入度,记为d -(v). 称d(v)= d+(v)+d -(v)为顶点v的 度或次数.
定理 d (v) 2.
vV
推论 任何图中奇点 的个数为偶数. d (v1) 4
d (u3) 1
d (u3) 2
一个顶点记为 ui1,置 Si1 Si {ui1}.
3) 若 i 1,则停Hale Waihona Puke ;若 i 1,则用 i+1 代
替i,并转2).
S0 {u0},l(u j ) , j 1,2,...,7.
u1 S0 l(u1) min{,0 1}
Dijkstra算法: 求G中从顶点u0到其余顶点的最短路.
G[{v1,v2,v3}] G[{e3,e4,e5,e6}]
3) 若 V V,且 V ,以 V 为顶点集,以两端点 均在V 中的边的全体为边集的图 G 的子图,称 为G的由V 导出的子图,记为 G[V ] .
4) 若E E,且 E ,以 E为边集,以 E 的端点 集为顶点集的图 G 的子图,称为 G 的由E 导出的
第二讲 图论模型
1. 问题引入与分析
2. 图论的基本概念
3. 最短路问题及算法
4. 最小生成树及算法

5. 旅行售货员问题

6. 模型建立与求解 下
1. 问题引入与分析
1) 98年全国大学生数学建模竞赛B题“最佳灾 情巡视路线”中的前两个问题是这样的:
今年(1998年)夏天某县遭受水灾. 为考察灾情、 组织自救,县领导决定,带领有关部门负责人到 全县各乡(镇)、村巡视. 巡视路线指从县政府 所在地出发,走遍各乡(镇)、村,又回到县政 府所在地的路线.

5、图论模型的建立

5、图论模型的建立
图论建模
信息学竞赛解题的一个重要步骤是数学建模, 如几何模型、代数模型、运筹学模型等。图论模型 的构造(图论建模)也是数学建模的一个分支。 在建立一个问题的模型之前,首先要对研究对 象进行全面的调查,将原型理想化、简单化(对于 竞赛而言,这一步大部分已经由命题者完成);然 后对原型进行初步的分析,分清其中的各个要素及 求解目标,理出它们之间的联系;然后用恰当的模 型来描述这些要素及联系。
图论建模
[问题分析] 1、问题的数据规模只有200,所以很容易想到用搜索, 由于要输出最优解(要求的是最快的次数),所以是宽搜。 2、对于A楼而言,实际上对它最多只能做2个操作, 上到A+X层或下到A-X层,当然前提是存在A+X或A-X层。显 然,如果把每一层楼看做一个顶点,如果A楼可以到B楼, 则从顶点A引一条到顶点B的边。对于样例,如下图:
下面,我们把每个si抽象成一个点,则根据上述两个不等式可以建立一个 有 向 图, 图中 共 有n+1个顶 点 ,分 别为 s0 ,s1 ,……,sn 。若 si>sj(0≤i, j≤n),则从si往sj引出一条有向边。例如对于n=6,p=5,q=3的情况,我们可 以建立下图。
常州市第一中学 林厚从
图论建模
图论模型和其它模型在研究方法上有着很大的 不同,例如可以运用典型的图论算法来对图论模型 进行求解,或是根据图论的基本理论来分析图论模 型的性质,这些特殊的算法和理论都是其它模型所 不具备的,而且在其它模型中,能用类似于图这种 直观的结构来描述的也很少。
常州市第一中学 林厚从
是指对一些客观事物进行抽象、化简, 并利用图来描述事物特征及其内在联系的过程。建 立图论模型的目的和建立其它数学模型一样,都是 为了简化问题,突出要点,以便更深入地研究问题 的本质;它的求解目标可以是最优化问题,也可以 是存在性或构造性问题;并且和几何模型、运筹学 模型一样,在建立图论模型的过程中,也需要用到 集合、映射、函数等基本的数学概念和工具。

图论基础知识

图论基础知识
常州市第一中学 林厚从
图论算法与实现
一、图论基础知识
4、图的遍历: 对下面两个图分别进行深度优先遍历,写出遍历结果。 注意:分别从a和V1出发。
左图从顶点a出发,进行深度优先遍历的结果为:a,b,c,d,e,g,f 右图从V1出发进行深度优先遍历的结果为:V1,V2,V4,V8,V5,V3,V6,V7
邻接矩阵
边集数组
邻接表
优点O(1)
存储稀疏图时,空 间效率比较好,也 比较直观
便于查找任一顶点的关联边及 关联点,查找运算的时间复杂 性平均为O(e/n)
存储稀疏图,会造 成很大的空间浪费
不适合对顶点的运 算和对任意一条边 的运算
要查找一个顶点的前驱顶点和以此顶点 为终点的边、以及该顶点的入度就不方 便了,需要扫描整个表,时间复杂度为O (n+e)。可以用十字邻接表改进
被访问一次,这种运算操作被称为图的遍历。为了避免重复访问某个 顶点,可以设一个标志数组visited[i],未访问时值为false,访问一次 后就改为true。
图的遍历分为深度优先遍历和广度(宽度)优先遍历两种方法。 图的深度优先遍历:类似于树的先序遍历。从图中某个顶点Vi出发, 访问此顶点并作已访问标记,然后从Vi的一个未被访问过的邻接点Vj出 发再进行深度优先遍历,当Vi的所有邻接点都被访问过时,则退回到上 一个顶点Vk,再从Vk的另一个未被访问过的邻接点出发进行深度优先遍 历,直至图中所有顶点都被访问到为止。
常州市第一中学 林厚从
图论算法与实现
一、图论基础知识
4、图的遍历: 对于一个连通图,深度优先遍历的递归过程如下:
Procedure dfs(i:integer); {图用邻接矩阵存储} Begin
访问顶点i; Visited[i]:=True; For j:=1 to n do {按深度优先搜索的顺序遍历与i相关联的所有顶点}

图论建模方法

图论建模方法
• 定理10. 8设T是(n.m)非平凡图.则下列命题等价: • (1) T是树; (2)T无圈.m=n-1; • (3) T连通.m=n-1;(4)T无圈.任加一边有唯一圈; • (5)T连通.任去一边不连通;(6) T的任二顶点恰有一条路连通. • 由定理10. 8可直接导出下面的结果: • (1)树是边数最少的连通图; (2)连通图的极大无圈生成子图是生成树; • (3)连通图的极小连通生成子图是生成树. • 由此可见.在n个城市之间.修建n-1条直通高速公路足以形成连通的
• 称图G与图H同构.记为G= H.如果存在V (G)与V(H)的一一对应.同时存 在E(G)与E(H)的一一对应.且保持顶点与边的关联关系不变.例如.在图 10. 3中·图G与图H同构.同构的图可看成同一个图.只是顶点与边的标 号可能不同而已.
• 定义10. 3在无向图中.与顶点v关联的边的数目(环算两次)称为v的度. 记为dG (v).简记为d (v).对有向图.顶点v少的出关联边数称为出度.记 为dG' (v)或d' (v).人关联边数称为入度.记dG (v)或d(v).显然
• 我们可用定义或图形表示一个图.但注意到图的关联关系和邻接关系. 还可以用矩阵来表示一个图.从而更有利于计算机处理.
• 定义10. 5设G是(n.m)图·则以矩阵A = (aij) nx m表G的关联矩阵.其 中
• 以H=(hij )nx n表T邻接矩阵.其中hij为以顶点vi和vj为端点的边数(i,j =1.2...…n).
• 有n个顶点m条边的图称为(n,m)图.(n,0)图叫零图.特别地.(0,0)图叫空 图.(1 ,0)图叫平凡图.没有环与平行边的图称为简单图.任意两顶点都相 邻的简单图称为完全图.有n个顶点的完全图记为Kn.若V(G)能分解为 V1与V2,使得
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
为此,我们必须寻找解决问题的更好途径。
【方形柱体堆砌问题分析】
对符合要求的方形柱体来讲,交换任意两个正 方体的上下位置,得到的方形柱体仍是符合要求的, 即它的4个侧面都有4种颜色。它的每一对对面由4 个正方体各一个对面组成,因此问题的要素是4个正 方体各3个对面的颜色的构成,于是从每个对面的着 色考虑。用字母b,g,r,y分别表示蓝、绿、红、黄4种 颜色,并作为图的4个 顶点,4个正方体的各三个对 面依各对面的颜色连以边,并分别标以e1、e2、e3、 e4,比如第一个正方体有一对面着蓝、黄两色,则 从顶点b到y引一条边标以e1,另两对面为红对红、红 对绿,故联结r,e和r,g,均标以 e1。同样地根据第二、 三、四正方体的各对面着色分别连以边并分别标以 e2 、e3、e4。则得图G,如图1—3所示。
si<si+p
(0≤i≤n-p)
si+q<si
(0≤i≤n-q)
【奇怪的数列分析】
下面,我们把每个si抽象成一个点,则根据上述两个不 等式可以建立一个有向图,图中共有n+1个顶点,分别 为s0,s1,……,sn。若si>sj(0≤i,j≤n),则从si往sj 引出一条有向边。例如对于n=6,p=5,q=3的情况, 我们可以建立图4
begin
if i+p<=n then begin
g[i+p,i]=1;
d[i]=d[i]+1;
end;
if i+q<=n then begin
g[i,i+q]=1;
d[i+q]=d[i+q]+1;
end;
end;
【奇怪的数列分析】
显然,按照上面的定义,如果建立的图可以拓扑排序,其 顶点的拓扑序列可以对应满足条件的整数数列;反之,不 存在这样的整数数列。 算法框架为:
对图进行拓扑排序; if 图有回路 then 无解退出
else 生成拓扑序列 order[0]…order[n]; 如果得到了一个拓扑序列,该如何转换成s数组呢?因为拓 扑序列中顶点对应的s值是递减的,其中s0=0。如果 order[i]=0,则依次设定sorder[0]=i,sorder[1]=i-1,……, sorder[i-1]=1,sorder[i]=0,sorder[i+1]=-1,……, sorder[n]=i-n。例如,对于图4所示的有向图,可以得到表 1:
2、若能,找出一种堆砌方法。
【方形柱体堆砌问题分析】
一个正方体有6个面,所以4个正方体可以堆砌 出为数十分可观的不同状态。就是确定了4个正方 体依Ⅰ,Ⅱ,Ⅲ,Ⅳ次序从上到下排列,只考虑两 两接触面不同,也有6^4=1296种排列,这里还没 有考虑4个侧面的不同组合。若考虑到后者,又会 衍生出许多各异的形式,先令第Ⅰ个正方体保持不 动,Ⅱ,Ⅲ,Ⅳ正方体个有4个侧面,故有4^3=64 种状态。因此即使在从上到下按序排列情况下,仍 然有1296×64=82944种状态。若用穷举法求这类 问题,将是不胜其烦的。
【例3】 机器人布阵
有一个N*M(N,M<=50)的棋盘,棋盘的每一 格是三种类型之一:空地、草地、墙。机器人只 能放在空地上。在同一行或同一列的两个机器人, 若它们之间没有墙,则它们可以互相攻击。问给 定的棋盘,最多可以放置多少个机器人,使它们 不能互相攻击。
空地 Empty 草地 Grass
墙 Wall
要素(2)、(3)可抽象为开始时设人和其他三样东 西在河的左岸,这种情况用集合{mwsv}表示。在过河过 程中左岸出现的情况有以下16种: {wmsv} {mws} {mwv} {msv} {wsv} {mw} {ms} {mv} {ws} {wv} {sv} {m} {s} {v} {w} {φ}
显然这一模型不是属于一些特殊的图,给我们设计算法 带来很大的麻烦。
【模型二】
我们将每一行,每一列被墙隔开,且包含空地的连续区域称 作“块”。显然,在一个块之中,最多只能放一个机器人。我 们把水平方向的这些块编上号;同样,把竖直方向的块也编上 号。
1
2
3
4
5
水平方向的块编号
1 2
3 4
竖直方向的块编号
【例4】奇怪的数列
编程输入3个整数n,p,q,寻找一个由整数组成的数列 (a1,a2,……,an),要求:其中任意连续p项之和为正 数,任意连续q项之和为负数。0<n<100,0<p,q<n,若不 存在这样的整数数列,则输出NO;否则输出满足条件的一 个数列即可。
【输入格式】
输入文件名为num.in,仅一行分别表示n,p,q,之间用 一个空格隔开。
问题的求解目标就归结为:在图G中找一条连接顶点mwsv与 φ,并且包含边数最少的路径。把图的边长设为1,那么渡河 问题归结为求顶点mwsv到顶点φ的最短路径问题。
【例2】方形柱体堆砌
有4个正立方体,它们的6个侧面各着以绿、蓝、红、黄4 种颜色之一,如图1-2所示。现在要把这4个正方体堆成一方 形柱体,堆成的方形柱体每个侧面4种颜色都有。 求解任务:1、这4个正方体能否堆成符合要求的方形柱体?
fillchar(s,sizeof(s),0); for i:=0 to n do if order[i]<>0 then for j : = i downto 0 do s[order[ j]]←s[order[ j]]+1
径上每条边的权相加得到,求解目标往往是求图中或是
两点之间所有路径的权的最优值。
• 权的运算也会产生一些变形,例如权的运算由 简单的相加、求最值扩展到相乘,或是更复杂的函数 计算等等。
以上这些差异形成了图论模 型的多样化,使图论模型可以广 泛地适应各类问题,但这些丰富 的选择同时也增加了图论建模的 难度。。
问题的要素有三点:(1)人及他所带的3样东西;(2) 人不在时狼就会吃掉羊,羊就要吃白菜,即人在渡河 时,一岸上不能同时留下狼和羊或羊和白菜;(3)人 每次至多带一样东西渡河,并要保证岸上的安全。
问题的求解目标:求河上往返次数最少的渡河方案。
对于要素(1),用字母m代表人,w代表狼,s代表 羊,v代表白菜。
【输出格式】
输出文件名为num.out,只有一行,有解即输出这个数列, 每个数之间用一个空格隔开。否则输出NO。
【奇怪的数列分析】
从形式上看,这道题与图论风马牛不相干,题中既未出 现图论中常见的“车站”,“城市”等顶点,也未出现 “公路”,“铁路”等边,更未出现“长度”,“传输时 间”等权。仅以数学角度考虑,按常规思想来分析如何表 示“连续几项之和”这一要点,直接将第i个整数ai开始的 k 个 整 数 之 和 描 述 成 多 项 式 ai+ai+1+…+ai+k-1 的 话 , 问 题 就很难再往下思考和解决了。所以,我们不防换个角度, 暂且撇去每一项数究竟为何值的具体细节,而将注意力集 中至连续性这一特点上。设si表示数列前i个整数之和,即 si=a1+a2+…+ai。其中s0=0 (0≤i≤n)。显然根据题意, 有:
二.图论建模方法
1. 要素的选取
在建立模型之前,我们首先要对研究对象进行 全面的调查,将原型理想化、简单化;然后对原 型进行初步的分析,分清其中的各个要素及求解 目标,理出它们之间的联系;下一步就是用恰当 的模型来描述这些要素及联系。 【例1】渡河问题
一个人带了一只狼、一只羊和一筐白菜想要过 河。河上有一只小船,每次除了人以外,只能带 一样东西。另外,如果人不在时狼就会吃掉羊, 羊就要吃白菜。问怎样安排渡河,才能做到既把 所有东西都带过河,而且在河上往返次数最少?
“串联求最值,并联求和”,即一条路径上最大或是最
小的权决定了整条路径的权,而求解目标则是求图中或
是两点之间所有路径的权的加和。

还有的图不仅包含边权(边集E到实数集R的映
射),还包含点权(点集V到实数集R的映射);或是
包含好几类不同性质的权。

有的权表示长度或是时间等等,它们的运算特征是
“串联求和,并联求最值”,即一条路径的权由这条路
S1
S2
S0 S6
图4
S3
S4 S5
【奇怪的数列分析】
构造这样的有向图很简单,过程如下:
fillchar(g,sizeof(g),0); {有向图的邻接矩阵初始化}
fillchar(d,sizeof(d),0); {各顶点的入度序列初始化}
for i:=0 to n do
{根据两组不等式构造有向图}
e4
b
e3
e1 e2
e4 e3
y
e2
e3
r
e1
从图中,能找 到两个 e2 Hamiltion回 路,每个回路
e1
的4条边分别 是
g e4 e1,e2,e3,e4。
(见下页 )
e4
b
e3
e1 e2
e4 e3
r
e1
e2 e1
y
e2
g
e4
e3
2. 选择合适的理论体系
图由点、边、权三部分组成,根据这三部分的性 质的不同,就有着不同的图论模型,有着不同的理论 和算法,也就构成了不同的理论体系。图论建模依据 的是图论的基本理论和基本算法。
【奇怪的数列分析】
i
0
1
2
3
4
5
6
order[i]
2
Байду номын сангаас
5
0
3
6
1
4
sorder[i]
2
1
0
-1
-2
-3
-4
所以,得到s0=0,s1=-3,s2=2,s3=-1,s4=-4,s5=1,s6=-2。再 根据s的定义,由: ai=(a0+a1+…+ai-1+ai) - (a0+a1+…+ai-1)=sisi-1 , 求 出 : a1=s1-s0=-3 , a2=s2-s1=5 , a3=s3-s2=-3 , a4=s4s3=-3,a5=s5-s4=5,a6=s6-s5=-3。显然这个整数数列的任意连续5 个整数之和为正,任意连续3个整数之和为负。由拓扑序列构造整数数 列的算法如下:
相关文档
最新文档