迪杰斯特拉算法求单源最短路径时某一轮两个点距离一样时怎么办
松弛操作。迪杰斯特拉算法用于解决图的单源最短路径问题,即给定a和b点,求a到b的最短路径。从给定的起点出发,求单源最短路径时某一轮两个点距离一样时,选择其中一个使用,然后以找到的点为中转点做松弛操作就可完成。绛旓細鏉惧紱鎿嶄綔銆杩澃鏂壒鎷夌畻娉鐢ㄤ簬瑙e喅鍥剧殑鍗曟簮鏈鐭矾寰勯棶棰橈紝鍗崇粰瀹歛鍜宐鐐癸紝姹俛鍒癰鐨勬渶鐭矾寰勩備粠缁欏畾鐨勮捣鐐瑰嚭鍙戯紝姹傚崟婧愭渶鐭矾寰勬椂鏌愪竴杞袱涓偣璺濈涓鏍锋椂锛岄夋嫨鍏朵腑涓涓娇鐢紝鐒跺悗浠ユ壘鍒扮殑鐐逛负涓浆鐐瑰仛鏉惧紱鎿嶄綔灏卞彲瀹屾垚銆
绛旓細Dijkstra(杩澃鏂壒鎷)绠楁硶鏄吀鍨嬬殑鍗曟簮鏈鐭矾寰勭畻娉曪紝鐢ㄤ簬璁$畻涓涓妭鐐瑰埌鍏朵粬鎵鏈夎妭鐐圭殑鏈鐭矾寰銆備富瑕佺壒鐐规槸浠ヨ捣濮嬬偣涓轰腑蹇冨悜澶栧眰灞傛墿灞曪紝鐩村埌鎵╁睍鍒扮粓鐐逛负姝傛敞鎰忚绠楁硶瑕佹眰鍥句腑涓嶅瓨鍦ㄨ礋鏉冭竟銆傝G=(V,E)鏄竴涓甫鏉冩湁鍚戝浘锛屾妸鍥句腑椤剁偣闆嗗悎V鍒嗘垚涓ょ粍锛岀涓缁勪负宸叉眰鍑烘渶鐭矾寰勭殑椤剁偣闆嗗悎锛堢敤S琛ㄧず...
绛旓細Dijkstra杩澃鏂壒鎷夋槸涓绉嶅鐞嗗崟婧愮偣鐨勬渶鐭矾寰勭畻娉,灏辨槸璇存眰浠庢煇涓涓妭鐐瑰埌鍏朵粬鎵鏈夎妭鐐圭殑鏈鐭矾寰勫氨鏄疍ijkstra銆 璧勬枡鎷撳睍: 杩澃鏂壒鎷夌畻娉(Dijkstra)鏄敱鑽峰叞鏁拌厰璁$畻鏈虹瀛﹀鐙勫厠鏂壒鎷変簬1959骞存彁鍑虹殑,鍥犳鍙堝彨鐙勫厠鏂壒鎷夌畻娉曘傛槸浠庝竴涓《鐐瑰埌鍏惰柉绾宠~浣欏悇椤剁偣鐨勬渶鐭矾寰勭畻娉,瑙e喅鐨勬槸鏈夋潈鍥句腑鏈鐭矾寰勯棶棰樸
绛旓細甯哥敤鐨勬渶鐭矾寰勭畻娉曞寘鎷細Dijkstra绠楁硶锛孉 绠楁硶锛孊ellman-Ford绠楁硶锛孲PFA绠楁硶锛圔ellman-Ford绠楁硶鐨勬敼杩涚増鏈級锛孎loyd-Warshall绠楁硶锛孞ohnson绠楁硶浠ュ強Bi-direction BFS绠楁硶銆傛湰鏂囧皢閲嶇偣浠嬬粛Dijkstra绠楁硶鐨勫師鐞嗕互鍙婂疄鐜般侱ijkstra绠楁硶锛岀炕璇戜綔鎴村厠鏂壒鎷夌畻娉曟垨杩澃鏂壒鎷夌畻娉曪紝浜1956骞寸敱鑽峰叞璁$畻鏈虹瀛﹀鑹惧吂璧皵.鎴村厠...
绛旓細杩澃鏂壒鎷夌畻娉鏄竴绉嶇粡鍏哥殑鍗曟簮鏈鐭矾寰绠楁硶锛屽叾鐩爣鏄鎵句粠涓涓捣濮嬭妭鐐瑰埌鍥句腑鎵鏈夊叾浠栬妭鐐圭殑鏈鐭矾寰勩傚叾涓昏鐗瑰緛鏄互璧峰鐐逛负涓績锛岄愭鍚戝鎵╁睍锛岀洿鍒版墿灞曞埌鐩爣鑺傜偣銆傝绠楁硶鍦ㄦ暟鎹粨鏋勩佸浘璁哄拰杩愮瀛︾瓑涓撲笟璇剧▼涓叿鏈夐噸瑕佺殑鍦颁綅锛屽父浣滀负鍩虹鐭ヨ瘑杩涜璁茶В銆傜畻娉曢氬父鏈変袱绉嶈〃杩版柟寮忥紝杩欓噷鎴戜滑閲囩敤鐨勬槸...
绛旓細涓銆佸畾涔 Dijkstra绠楁硶锛堣开鏉版柉鐗规媺绠楁硶锛夋槸寰堟湁浠h〃鎬х殑鏈鐭矾寰勭畻娉曪紝鐢ㄤ簬璁$畻涓涓粨鐐瑰埌鍏朵粬缁撶偣鐨勬渶鐭矾寰勩傝绠楁硶鎸囧畾涓涓偣锛堟簮鐐癸級鍒板叾浣欏悇涓粨鐐圭殑鏈鐭矾寰勶紝鍥犳涔熷彨鍋氬崟婧愭渶鐭矾寰勭畻娉曘傝绠楁硶鏄敱鑽峰叞璁$畻鏈虹瀛﹀Edsger W.Dijkstra浜1959骞村彂琛ㄣ侱ijkstra绠楁硶鏄竴绉嶇敤浜庤绠楀甫鏉冩湁鍚戝浘涓崟婧...
绛旓細(杩欓噷鎻忚堪鐨勬槸浠庤妭鐐1寮濮嬪埌鍚勭偣鐨dijkstra绠楁硶锛屽叾涓璚a->b琛ㄧずa->b鐨勮竟鐨勬潈鍊硷紝d(i)鍗充负鏈鐭矾寰鍊)1锛 缃泦鍚圫={2,3,...n}, 鏁扮粍d(1)=0, d(i)=W1->i(1,i涔嬮棿瀛樺湪杈) or +鏃犵┓澶(1.i涔嬮棿涓嶅瓨鍦ㄨ竟) 2锛 鍦⊿涓紝浠(j)=min{d(i),i灞炰簬S}锛屼护S=S-{j}锛岃嫢S涓...
绛旓細杩澃鏂壒鎷(Dijkstra)绠楁硶鎬濇兂 鎸夎矾寰勯暱搴﹂掑娆″簭浜х敓鏈鐭矾寰勭畻娉曪細鎶奦鍒嗘垚涓ょ粍锛氾紙1锛塖锛氬凡姹傚嚭鏈鐭矾寰勭殑椤剁偣鐨勯泦鍚 锛2锛塚-S=T锛氬皻鏈‘瀹氭渶鐭矾寰勭殑椤剁偣闆嗗悎 灏員涓《鐐规寜鏈鐭矾寰勯掑鐨勬搴忓姞鍏ュ埌S涓紝淇濊瘉锛氾紙1锛変粠婧愮偣V0鍒癝涓悇椤剁偣鐨勬渶鐭矾寰勯暱搴﹂兘涓嶅ぇ浜 浠嶸0鍒癟涓换浣曢《鐐圭殑鏈鐭...
绛旓細1銆佺洰鐨勪笉鍚岋細杩澃鏂壒鎷夌畻娉涓昏瑙e喅鍗曟簮鏈鐭矾寰闂锛屽嵆浠庢寚瀹氱殑涓涓妭鐐瑰紑濮嬶紝鎵惧嚭鍥句腑浠庤妭鐐瑰埌鎵鏈夊叾浠栬妭鐐圭殑鏈鐭矾寰勶紝鑰屾櫘閲屽绠楁硶鍒欑敤浜庤В鍐虫渶灏忕敓鎴愭爲闂锛屽嵆鍦ㄨ繛閫氬浘涓夋嫨涓浜涜竟锛屼娇寰楄繖浜涜竟鏋勬垚鐨勫瓙鍥句粛鐒惰繛閫氾紝骞朵笖鎵鏈夎竟鐨勬潈閲嶄箣鍜屾渶灏忋2銆佹牳蹇冩濇兂涓嶅悓锛氳开鏉版柉鐗规媺绠楁硶姣忔浠庢湭琚闂繃鐨...
绛旓細杩澃鏂壒鎷(Dijkstra)绠楁硶姝ラ锛氾紙姹傚浘涓璿0鍒皏8鐨勬渶鐭矾寰勶級骞堕潪涓涓嬪瓙姹傚嚭v0鍒皏8鐨勬渶鐭矾寰勶紝鑰屾槸 涓姝ヤ竴姝ユ眰鍑哄畠浠箣闂撮《鐐圭殑鏈鐭矾寰 锛岃繃杩囩▼涓兘鏄 鍩轰簬宸茬粡姹傚嚭鐨勬渶鐭矾寰勭殑鍩虹涓婏紝姹傚緱鏇磋繙椤剁偣鐨勬渶鐭矾寰勶紝鏈缁堝緱鍑烘簮鐐逛笌缁堢偣鐨勬渶鐭矾寰 銆傚紬娲涗紛寰(Floyd)绠楁硶鏄竴涓粡鍏哥殑 鍔ㄦ佽鍒掔畻娉...