当前位置:文档之家› 经典图论问题

经典图论问题

5经典图论问题
5.1 一笔画问题
一笔画算法即是从起点a开始选择关联边(第一这条边不是往回倒,第二这条边在前面延伸路上没有出现过)向前延伸,如果到达终点b,得到a—b迹,判断路上的的边数是否为图的总边数,是就终止,否则选择迹上某个关联边没有用完的顶点v,用同样方式再搜索v—v的闭迹,添加到a—b迹上,即得到a—v---v—b迹,如果这个迹的边数还没有达到总边数,则再选择迹上某个关联边没有用完的顶点。

逐步扩展即可。

二、弗罗莱(Fleury )算法
任取v 0∈V(G),令P 0=v 0;
设P i =v 0e 1v 1e 2…e i v i 已经行遍,按下面方法从中选取e i+1: (a )e i+1与v i 相关联;
(b )除非无别的边可供行遍,否则e i+1不应该为G i =G-{e 1,e 2, …, e i }中的桥(所谓桥是一条删除后使连通图不再连通的边);
(c )当(b )不能再进行时,算法停止。

5.2 中国邮递员问题(CPP )
规划模型:
设ij x 为经过边j i v v 的次数,则得如下模型。

∑∈=
E
v v ij ij
j
i x z ϖmin


E
∈E
∈∈=j i i k v v i v v ki ij V v x x ,
E ∈∈≤j i ij v v N x ,1
..t s
5.3旅行推销员问题(TSP,货郎担问题)(NPC问题)
定义:包含图G的所有定点的路(圈)称为哈密顿路(圈),含有哈密顿圈得图称为哈密顿图。

分析:从一个哈密顿圈出发,
算法一:(哈密顿圈的充要条件:一包含所有顶点的连通子图,二每个顶点度数为2)
象求最小生成树一样,从最小权边加边,顶点度数大于3以及形成小回路的边去掉。

算法二:
算法三:
示例:设旅行推销员的矩阵为⎪⎪⎪⎪
⎪⎭
⎫ ⎝⎛01086100111281101565150
规划模型:
先将一般加权连通图转化成一个等价的加权完全图,设当从i v 到j v 时,1=ij x ,否则,
0=ij x ,则得如下模型。

∑∑==n i n
j ij
ij x
w 11
min
∑===n
j ij
n i x
1
,,1,1
∑===n
i ij
n j x
1
,,1,1 1,,2-=n k
n i i k x x x k i i i i i i k 1,,,1113221=-≤+++ 不含子巡回 0=ij x 或1,j i n j i ≠=,,,1,
不含子巡回的约束也可以用如下条件表示:
0,,,2,1;1≥≠==-≤++j i ij j i u u j i n j n i n nx u u
5.4 排课表问题 问题一
..t s
Step1:取权数最小的四条边,权和29,不合理(v 4度数为3)但为下界,分两枝保留或去掉(v1,v4)
Step2:去掉(v1,v4)后取权最小的四条边
边色数:给图的边着色,相邻边着不同的颜色,则每条边都着上颜色而且最少的颜色数称为边色数,对于排课表问题来说,一种颜色表示可以在同一时间段同时上课的情况。

定理:最小边色数()G χ'等于最大顶点度数()G ∆。

以下加边循环算法为多项式时间算法:就是加边让每个顶点的度数一样(为最大度数),然后求一组完美匹配M ,着同样颜色,然后从图中去掉M 中的边,再求第二组完美匹配。

问题二:
基本思想是:由给定的教室数与总课时数确定教学时间长度(即匹配数--色数),在没有考虑教室数限制所计算的匹配数基础上,增加空匹配至时间长度个,然后调节匹配边差大于1的匹配,直到满足要求。

5.5 几个小问题
会议安排问题
例如: 举行一个国际会议,有A, B, C, D, E,F,G 7个人。

已知下列事实:
A 会讲英语;
B 会讲英语和汉语;
C 会讲英语、意大利语和俄语;
D 会讲日语和汉语;
E 会讲德语和意大利语;
F 会讲法语、日语和俄语;
G 会讲法语和德语。

试问这7个人应如何排座位, 才能使每个人都能和他身边的人交谈?
解答:那么我们用结点来代表人,于是结点集合V={A,B,C,D,E,F,G}对于任意的两点,若有共同语
言,就在它们之间连一条无向边,可得边集E,图G=(V,E), 如下图:
问题转化为在图中找到一条哈密顿回路的问题(哈密顿回路即是通过每个结点一次且仅一次的回路)。

而A-B-D-F-G-E-C-A 即是图中的一条哈密顿回路。

照这个顺序排座位就可以解决问题了。

过河问题
一摆渡人欲将一只狼,一头羊,一篮菜从河西渡过河到河东.由于船小,一次只能带一物过
河,并且狼与羊,羊与菜不能独处.给出渡河方法.
解:用四维0-1向量表示(人,狼,羊,菜)在河西岸的状态(在河西岸则分量取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)也是不允许的.以可允许的10个状态向量作为顶点,将可能互相转移的状态用线段连接起来构成一个图.根据此图便可找到渡河方法.
问题转化为求一点到另一点的路。

放置机器人
有一个N*M(N,M<=50)的棋盘,棋盘的每一格是三种类型之一:空地、草地、墙。

机器人只能放在空地上。

在同一行或同一列的两个机器人,若它们之间没有墙,则它们可以互相攻击。

问给定的棋盘,最多可以放置多少个机器人,使它们不能互相攻击。

模型一
以空地为顶点,有冲突的空地间连边,问题转化为最大独立点集。

模型二
我们将每一行,每一列被墙隔开,且包含空地的连续区域称作“块”。

显然,在一个块之中,最多只能放一个机器人。

我们把这些块编上号。

同样,把竖直方向的块也编上号。

把每个横向块看作X部的点,竖向块看作Y部的点,若两个块有公共的空地,则在它们之间连边。

于是,问题转化为二部图的最大匹配问题。

比较前面的两个模型:模型一过于简单,没有给问题的求解带来任何便利;模型二则充分抓住了问题的内
在联系,巧妙地建立了二部图模型。

为什么会产生这种截然不同的结果呢?其一是由于对问题分析的角度不同:模型一以空地为点,模型二以空地为边;其二是由于对原型中要素的选取有差异:模型一对要素的选取不充分,模型二则保留了原型中“棋盘”这个重要的性质。

由此可见,对要素的选取,是图论建模中至关重要的一步。

打猎
猎人要在n*n的格子里打鸟,他可以在某一行中打一枪,这样此行中的所有鸟都被打掉,也可以在某一列中打,这样此列中的所有鸟都打掉。

问至少打几枪,才能打光所有的鸟?建图:二分图的X部为每一行,Y部为每一列,如果(i,j)有一只鸟,那么连接X部的i与
Y部的j。

该二分图的最大匹配数则是最少要打的枪数。

设备更新问题
某企业使用一台设备,每年年初,企业都要作出决定,如果继续使用旧的,要付维修费;若购买一台新设备,要付购买费. 试制定一个5年更新计划,使总支出最少.
已知设备在每年年初的购买费分别为11,11, 12,12,13. 使用不同时间设备所需的维修费分别为5,6,8,11,18.。

相关主题