经典图论问题

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

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部的点,若两个块有公共的空地,则在它们之间连边。于是,问题转化为二部图的最大匹配问题。

比较前面的两个模型:模型一过于简单,没有给问题的求解带来任何便利;模型二则充分抓住了问题的内

相关文档
最新文档