摘要:試題四(共15分)閱讀下列說(shuō)明,回答問(wèn)題1和問(wèn)題2,將解答填入答題紙的對(duì)應(yīng)欄內(nèi)。【說(shuō)明】現(xiàn)需在某城市中選擇一個(gè)社區(qū)建一個(gè)大型超市,使該城市的其它社區(qū)到該超市的距離總和最小。用圖模型表示該城市的地圖,其中頂點(diǎn)表示社區(qū),邊表示社區(qū)間的路線,邊上的權(quán)重表示該路線的長(zhǎng)度?,F(xiàn)設(shè)計(jì)一個(gè)算法來(lái)找到該大型超市的最佳位
試題四 (共15 分 )
閱讀下列說(shuō)明,回答問(wèn)題1和問(wèn)題2,將解答填入答題紙的對(duì)應(yīng)欄內(nèi)。
【說(shuō)明】
現(xiàn)需在某城市中選擇一個(gè)社區(qū)建一個(gè)大型超市,使該城市的其它社區(qū)到該超市的距離總和最小。用圖模型表示該城市的地圖,其中頂點(diǎn)表示社區(qū),邊表示社區(qū)間的路線,邊上的權(quán)重表示該路線的長(zhǎng)度。
現(xiàn)設(shè)計(jì)一個(gè)算法來(lái)找到該大型超市的最佳位置:即在給定圖中選擇一個(gè)頂點(diǎn),使該頂點(diǎn)到其它各頂點(diǎn)的最短路徑之和最小。算法首先需要求出每個(gè)頂點(diǎn)到其它任一頂點(diǎn)的最短路徑,即需要計(jì)算任意兩個(gè)頂點(diǎn)之間的最短路徑;然后對(duì)每個(gè)頂點(diǎn),計(jì)算其它各頂點(diǎn)到該頂點(diǎn)的最短路徑之和;最后,選擇最短路徑之和最小的頂點(diǎn)作為建大型超市的最佳位置。
【問(wèn)題 1】(12 分)
本題采用Floyd-Warshall算法求解任意兩個(gè)頂點(diǎn)之間的最短路徑。 已知圖G的頂點(diǎn)集合為V= {1,2,...,n } ,W= {Wij}n*n 為權(quán)重矩陣。設(shè) d (k)ij=為從頂點(diǎn)i到頂點(diǎn)j的一條最短路徑的權(quán)重。當(dāng)k = 0時(shí),不存在中間頂點(diǎn),因此d(0)ij=wij
當(dāng)k >0 時(shí),該最短路徑上所有的中間頂點(diǎn)均屬于集合 {1,2, ..., k}若中間頂點(diǎn)包括頂點(diǎn) k ,則d(k)ij=d(k-1)ik+d(k-1)kj若中間頂點(diǎn)不包括頂點(diǎn)k ,則d(k-1)ij=d(k-1)ij
于是得到如下遞歸式。
因?yàn)閷?duì)于任意路徑,所有的中間頂點(diǎn)都在集合{1,2, ..., n} 內(nèi),因此矩陣D(n) ={d(n)ij}n*n 給出了任意兩個(gè)頂點(diǎn)之間的最短路徑,即對(duì)所有i, j ∈V,d(n)ij表示頂點(diǎn)i到頂點(diǎn) j的最短路徑。
軟考備考資料免費(fèi)領(lǐng)取
去領(lǐng)取
共收錄117.93萬(wàn)道題
已有25.02萬(wàn)小伙伴參與做題