计算机问题求解一论题3-9 All-Pair Shortest Paths 2020年11月17日
计算机问题求解 – 论题3-9 - All-Pair Shortest Paths 2020年11月17日
算法的输入形式 2 3 4 0 3 8 00 3 8 0 0∞ 1 > 4 0 5 2 -5 0 5 4 00 00 00 6 0 6
算法的输入形式
最直观的解法 Bellman-Ford算法执行VI次 ■Dijkstra算法执行VI次 口f可能
最直观的解法 ◼ Bellman-Ford算法执行|V|次 ◼ Dijkstra算法执行|V|次 ❑ if可能
最优子结构:对于任意i,j间最短路p,其间的 任意子路径均最短 假设这是从到的最短通路,经过k If verticesiandare distinct,then we decompose path pinto k.where path p'now contains at most m-1 edges.By Lemma 24.1. p'is a shortest path fromitokand s)j 这对我们未来的“递归”有什么启发?
i k j 假设这是从i到j的最短通路,经过k p ’ 最优子结构:对于任意i,j间最短路p,其间的 任意子路径均最短 这对我们未来的“递归”有什么启发?
一种“最优解”的递归定义方式 ■表达节点到的最短路径长度的动态规划递归表达式: 口1,T(i,j)=W 2.Z(i,j)=min1<=k<=n[(i,k)+W) 但参考书上采用了另外一种递归表达方式,有何不同? Now,letbe the minimum weight of any path from vertexito vertexthat contains at most m edges. When m =0,there is a shortest path from i to j with no edges if and only if i =j.Thus, ifi=j, fi≠j =mn(”,盟-”+)
一种“最优解”的递归定义方式 ◼ 表达节点i到j的最短路径长度的动态规划递归表达式: ❑ 1,L(i,j)=wij ❑ 2, L(i,j)=min1<=k<=n{L(i,k)+wkj} 但参考书上采用了另外一种递归表达方式,有何不同?
本质上相同,但形式上给定了子问题的“序” Now,letbe the minimum weight of any path from vertexito vertexthat contains at most m edges. When m=0,there is a shortest path from i to j with no edges if and only if i=j.Thus, 0 ifi=j. fi≠j =min(,ng-+0 1<k<n 问题1: 在有10个点的图中,岛=7的直观含义是什么? 如果=7,能认定ij节点间的最短路径长度是7吗?
本质上相同,但形式上给定了子问题的“序” 问题1: 在有𝟏𝟎个点的图中,𝒍𝒊𝒋 𝟔 = 𝟕的直观含义是什么? 如果𝒍𝒊𝒋 𝟔 = 𝟕,能认定ij节点间的最短路径长度是7吗?
本质上相同,但形式上给定了子问题的“序” 间题2: 如果定义矩阵L=(),L,L2,…,L-1 分别表示什么含义?
本质上相同,但形式上给定了子问题的“序
本质上相同,但形式上给定了问题的解 间题3: 如果定义矩阵L=(),L-1中的元素 Ln1时表示什么含义? In-1 In =In+i
本质上相同,但形式上给定了问题的解 𝐿 𝑛−1 = 𝐿 𝑛 = 𝐿 𝑛+1 …
一种“最优解”的递归定义方式 怎么从路-1去计算珊 Form1,we compute as the minimum of(the weight of a shortest path from i to j consisting of at most m-l edges)and the minimum weight of any path from i to j consisting of at most m edges,obtained by looking at all possible predecessors k ofj.Thus,we recursively define m)=min(-1).min 1<k< min (25.2) 1≤k≤n {-D+w}. The latter equality follows since wjj=0 for all j
一种“最优解”的递归定义方式 怎么从𝑙 𝑖𝑗 𝑚−1去计算𝑙 𝑖𝑗 𝑚
自底向上计算 The heart of the algorithm is the following procedure,which,given matrices L(m-1and W.returns the matrix L(m).That is,it extends the shortest paths com- puted so far by one more edge. EXTEND-SHORTEST-PATHS(L.W) 1 n =L.rows 2 let L'=()be a new n x n matrix 间题4: 3 for i Iton 4 forj 1to n 567 号=∞ one more for k Ito n 号=min(吗,lk+0对) edge”体现在 8 return L' 哪里?
自底向上计算 O(n3 )