第三章 路徑分析算法——基于Dijkstra算法的路徑分析

3.1 基于Dijkstra算法的路徑分析

Dijkstra(迪杰斯特拉)算法是典型的最短路徑路由算法,也是一種單源路徑算法,用于計(jì)算一個節(jié)點(diǎn)到其他所有節(jié)點(diǎn)的最短路徑。該算法的主要特點(diǎn)是以起始點(diǎn)為中心向外層擴(kuò)展,知道擴(kuò)展到終點(diǎn)為止,Dijkstra算法對處理非負(fù)權(quán)邊的最短路徑問題是比較高效的。Dijkstra算法方法簡明,能得出最短路徑的最優(yōu)解,但由于它遍歷計(jì)算的節(jié)點(diǎn)很多,所有效率低,同時運(yùn)算時占用空間大。

3.1.1 應(yīng)用示例:極地探險

3.1.2 基于Dijkstra的最短路徑規(guī)劃

Dijkstra算法時很有代表性的最短路徑算法,其思想是,設(shè)置頂點(diǎn)集合S并不斷地進(jìn)行貪心選擇來擴(kuò)充這個集合。一個頂點(diǎn)屬于集合S當(dāng)且僅當(dāng)從源到該點(diǎn)的最短路徑長度已知。

初始時,S中僅含有源。設(shè)U是G的某一個頂點(diǎn),把從源到U且中間只經(jīng)過S中頂點(diǎn)的路稱為從從源到U的特殊路徑,并用數(shù)組dist記錄當(dāng)前每個頂點(diǎn)所對應(yīng)的最短特殊路徑長度。Diskstra算法每次從V-S中取出具有最短特殊路長度的頂點(diǎn)U,將U添加到S中,同時對數(shù)組dist進(jìn)行必要的修改。一旦S包含了所有V中頂點(diǎn),dist就記錄了從源到所有其他頂點(diǎn)之間的最短路徑長度。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容