文档介绍:以最短路为基础汇总网路上的流
在电路网中每两点之间都有中继电路群需求,但并不是任两点都有物理传输链路
根据两点间最短传输路径将该两点间的电路需求量加载到这条传输路径上去:设 a25=10 是节点2 和 5 之间的电路需求,节点2 和 5 之间的最短传输路径为 2135,则加载过程为: T21=T21+10, T13=T13+10, T35=T35+10; Tij 是传输链路 ij 上加载的电路数;当所有点间电路都加载完则算法结束
欧拉回路和中国邮递员问题
中国邮递员问题(Chinese Postman Problem, CPP)是由我国管梅谷教授于1962年首先提出并发表的
问题是从邮局出发,走遍邮区的所有街道至少一次再回到邮局,走什么路由才能使总的路程最短?
如果街区图是一个偶图,根据定理 3,一定有欧拉回路,CPP 问题也就迎刃而解了
若街区图不是偶图,则必然有一些街道要被重复走过才能回到原出发点
显然要在奇次点间加重复边
如何使所加的边长度最少
归结为求奇次点间的最小
匹配( minimum weighted
match) —由Edmons 给出
多项式算法(1965)
解中国邮递员问题的步骤
0、将图中的所有悬挂点依次摘去
1、求所有奇次点间的最短距离和最短路径
2、根据奇次点间的最短距离求最小完全匹配
3、根据最小完全匹配和最短路径添加重复边
4、将悬挂点逐一恢复,并加重复边
5、根据得到的偶图,给出欧拉回路的若干种走法
解中国邮递员问题的步骤
哈密尔顿回路及旅行推销员问题
哈密尔顿回路( Hamiltonian circuit)
连通图G(V,E)中的回路称为哈密尔顿回路,若该回路包括图中所有的点。显然哈密尔顿回路有且只有 n 条边,若|V|=n
连通图具有哈密尔顿回路的充分必要条件是什么?这个问题是由爱尔兰数学家哈密尔顿1859年提出的,但至今仍未解决
欧拉回路是对边进行访问的问题,哈密尔顿回路是对点进行访问的问题
搜索哈密尔顿回路的难度是 plete
任两点间都有边的图称为完全图(或全连接图)
完全图中有多少个不同的哈密尔顿回路?
完全图中有多少个边不相交的哈密尔顿回路?
最小哈密尔顿回路问题(plete)
哈密尔顿路径:包含图中所有点的路径
为什么说找两点间的最长路是非常困难的问题?
(n1)!/2
(n1)/2
旅行推销员问题(Traveling Salesman Problem)
旅行推销员问题(TSP):设v1, v2, ...,vn 为 n 个已知城市,城市之间的旅程也是已知的,要求推销员从 v1出发,走遍所有城市一次且仅一次又回到出发点,并使总旅程最短
这种不允许点重复的旅行推销员问题就是最小哈密尔顿回路问题
一般旅行推销员问题(GTSP):允许点重复的TSP
当网路边权满足三角不等式时,一般旅行推销员问题就等价于最小哈密尔顿回路问题
当网路边权不满足三角不等式时,只要用两点间最短路的距离代替原来的边权,就可以满足三角不等式,在此基础上求最小哈密尔顿回路
典型的应用:
乡邮员的投递路线
邮递员开邮箱取信的路线问题
邮车到各支局的转趟问题
TSP 的启发式算法(Heuristic algorithm)
穷举法:指数算法
分支定界法:隐枚举法
二交换法(two-option, Lin’s algorithm)
哈密尔顿回路可以用点的序列表示
从任一个哈密尔顿回路(即任何一个序列)出发
按照一定顺序试图交换相邻两个点的顺序,若路程减少则完成交换,继续下一个交换;若没有改善,则不进行本次交换,尝试下一个交换;若所有的相临交换都试过而不能改善,则算法结束,得到一个局部最优点
模拟退火(Simulated Annealing)
随机地采用二交换法
当交换后没有使目标函数改善,也可能以玻尔兹曼分布概率被接受,但这种概率是随模拟的温度下降而减少的
发挥了计算机的优点,尽量减少陷入局部极值点
模拟物理机制
二交换法举例
初始解:1-2-3-4-5
1-3-2-4-5
1-3-2-4-5 1-3-4-2-5
1-3-4-2-5 1-3-4-5-2
5-3-4-2-1 3-1-4-2-5
算法复杂度
Prim算法
i=1 n 1 次比较,最多 n 1 次赋值
i=2 2(n 2) 次比较,最多 2(n 2) 次赋值
i=k k(n k) 次比较,最多 k(n k) 次赋值
Dijkstra算法
i=1 n 1 次临时标记,永久标记 n 1 次比较和赋值
i=2 n 2 次临时标记,永久标记 n 2 次比较和赋值
i=k n k 次临时