c++邮递员投递经过特定点_关于中国邮递员问题和欧拉图应用

关于中国邮递员问题和欧拉图应用

中国邮递员问题:

1962

年有管梅谷先生提出中国邮递员问题(简称

CPP

)

。一个邮递员从邮局出发,要走完他

所管辖的每一条街道,可重复走一条街道,然后返回邮局。任何选择一条尽可能短的路线。

这个问题可以转化为:给定一个具有非负权的赋权图

G

(

1

)用添加重复边的方法求

G

的一个

Euler

赋权母图

G*

,使得尽可能小。

(

2

)求

G*

Euler

环游。

人们也开始关注另一类似问题,旅行商问题(简称

TSP

)

TSP

是点路优化问题,它是

NPC

的。而

CPP

是弧路优化问题,该问题有几种变形,与加权图奇点的最小完全匹配或网络流

等价,有多项式算法。

[1]

欧拉图:

G

中经过每条边一次并且仅一次的回路称作欧拉回路。存在欧拉回路的图称为欧拉图。

无向图欧拉图判定:

无向图

G

为欧拉图,当且仅当

G

为连通图且所有顶点的度为偶数。

有向图欧拉图判定:

有向图

G

为欧拉图,当且仅当

G

的基图

[2]

连通,且所有顶点的入度等于出度。

欧拉回路性质:

性质

1

C

是欧拉图

G

中的一个简单回路,

C

中的边从图

G

中删去得到一个新的图

G

G

’的每一个极大连通子图都有一条欧拉回路。

性质

2

C1

C2

是图

G

的两个没有公共边,但有至少一个公共顶点的简单回路,我们可

以将它们合并成一个新的简单回路

C

欧拉回路算法:

你可能感兴趣的:(c++邮递员投递经过特定点)