码迷,mamicode.com
首页 > 其他好文 > 详细

【图论】总结

时间:2019-05-14 18:58:31      阅读:129      评论:0      收藏:0      [点我收藏+]

标签:不可   最短路   text   无法   mic   总结   影响   ora   family   

一、最短路

最短路是满足最优子结构性质的。可以用反证法证明。

1. Dijkstra

两个集合。$S$中的点是已经确定了到源点的最短路的,$V-S$是未知的。此时,$V-S$集合中的$d$全部都是由$S$得来的,换句话说,这些d值对应的最短路统统经过S内的点。

每一步从$V-S$中选择一个$d$最小的点$i$加入$S$中,即最短路得以确定。这个最短路一定是由$S$中的点构成的,并且是$S$中所能构成的最优的,因为它是由$S$中所有与它相邻的点松弛后得来的。利用反证法:如果它还不是最优的,则存在一个点$p$使得

                     dis[$i$->$p$->起点]<dis[$i$->起点]                (1)

前者等于$dis(i,p)+d[p]$,后者等于$d[i]$。然而就目前状况来看,$d[i]<d[p]$,故(1)不成立。或曰$d[p]$还未确定,然而$d[p]$再松弛也不可能小于$d[i]$,因为它再要松弛也是被$i$或$d$比i更大的点松弛了。

因此有结论

                     dis[$i$->起点]≤dis[$i$->$p$->起点]               (2)

也正是因为(2)式,使得Dijkstra只能用于边权非负的图。因为如果$dis(i,p)<0$就不一定满足了。

由于每次都是从一集合中选择$d$最小的元素,故可以用堆来优化。一个点可能会进堆多次。虽然再次进堆的就无法松弛了,也就不会影响正确性。

 

【图论】总结

标签:不可   最短路   text   无法   mic   总结   影响   ora   family   

原文地址:https://www.cnblogs.com/qixingzhi/p/10863808.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!