370 likes | 864 Views
Chapter 5 Dynamic Programming. 2001 년 5 월 24 일 충북대학교 알고리즘연구실. Dynamic Programming. Used when the solution of a problem is a result of a sequence of decisions Example Knapsack Shortest path Optimal merge patterns. 5.3 All pairs shortest paths. G(V,E) : A directed graph with n vertices
E N D
Chapter 5Dynamic Programming 2001년 5월 24일 충북대학교 알고리즘연구실
Dynamic Programming • Used when the solution of a problem is a result of a sequence of decisions • Example • Knapsack • Shortest path • Optimal merge patterns
5.3 All pairs shortest paths • G(V,E) : A directed graph with n vertices • Ak(i,j) : Length of shortest path from i to j going through no vertex of index greater than k • A(i,j) = min{min{Ak-1(i,k) + Ak-1(k,j)},cost(i,j)} • Ak (i,j) = Ak-1(i,k) + Ak-1(k,j) Ak (i,j) = min{Ak-1(i,j),Ak-1(i,k) + Ak-1(k,j)},k>=1 C(i,j) = 0, 1<=i<=n Cost of edge if (i,j) E C(i,j) if i j and (i,j) E
5.3 All pairs shortest paths • Figure 5.5 Graph with negative cycle -2 1 2 3 1 1
5.3 All pairs shortest paths • Program 5.3 Function to compute lengths of shortest paths
5.3 All pairs shortest paths • Figure 5.6 Directed Graph and associated matrices
5.4 Single-source shortest paths:General weights • dist[u] = cost[v][u] • distl[u] = length of a shortest path from the source vertex V to vertex U under the constraint that the shortest path contains at most L edges • 순환관계 • distk[u] = min(distk-1[u],min(distk-1[i] + cost[i][u])) ,2<=k<=n-1
5.4 Single-source shortest paths:General weights • Figure 5.10 Shortest paths with negative edge lengths
5.4 Single-source shortest paths:General weights • Program 5.4 Bellman and Ford algorithm to compute shortest paths
5.5 Optimal binary search trees • Definition • A binary search tree T • All identifies in the Tleft < Troot • All identifies in the Tright < Troot • The left and right subtres of T are also BST • 가정 • a1 < a2 < … < an • Ti,j : OBST for ai+1,…,aj • Ci,j : cost for Ti,j • Ri,j : root of Ti,j • Weight of Ti,j : Wi,j = Qi +
5.5 Optimal binary search trees • P(i) : probability Search(a(i)) • Q(i) : probability search (a(i) < x < a(i+1)) • : Probability of an unsuccessful search Internal node External node (5.9)
Optimal Binary Search Tree Cost of the search Tree p(k)+cost(l)+cost(r)+w(0,k-1)+w(k,n) c(0, n) = min{c(0, k-1) + c(k, n) +p(k) +w(0, k-1)+w(k, n)} c(i, j) = min{c(i, k-1), c(k, j)+p(k) + w(i,k-1)+w(k,j)} C(i,j) = min{c(i,k-1)+c(k,j)} + w(i,j)
5.5 Optimal binary search trees • Figure 5.12 Two possible binary search trees
5.5 Optimal binary search trees • Figure 5.13 Binary search trees of Figure 5.12 with external nodes added
5.5 Optimal binary search trees • Figure 5.16 Computation of c(0,4), w(0,4), and r(0,4)
5.8 Reliability design • Solve a problem with a multiplicative optimization function • Several devices are connected in series • ri be the reliability of device Di • Reliability of the entire system • Duplicate : multiple copies of the same device type are connected in parallel use switching circuits
5.8 Reliability design Figure 5.19 n devices Di, 1<=i<=n, connected in series Figure 5.20 Multiple devices connected in parallel in each stage
Multiple copies stage in contain mi copies of Di P(all mi malfunction) = (1-ri)mi Reliability of stage i =1-(1-ri)mi
5.8 Reliability design • Maximum allowable cost of the system Maximize Subject to Mi >=1 and integer, 1<=i<=n • Assume ci>0 ui =
5.9 The traveling salesperson problem • 우체부 : n개의 틀린 장소에서 mail pickup • n+1 vertex graph • Edge <i,j> distance from i to j • Tour of minimum cost • Permutation problem • n! different permutation of n object while there are 2n different subset of n object n! > O(2n)
5.9 The traveling salesperson problem • Tour : simple path that starts and ends at vertex 1 • Every tour : edge<1,k> for some k v-{1} each <k,1> • Optimal tour : path(k,1) • Shortest k to 1 path all the vertices in V-{1,k} • Let g(i,s) be the length of a shortest path starting at vertex i, going through all vertices in S and terminating at vertex 1
5.9 The traveling salesperson problem • Figure 5.21 Directed graph and edge length matrix c
5.9 The traveling salesperson problem • Thus g(2, ) = c21 = 5, g(3, ) = c31 = 6, and g(4, ) = c41 = 8. We obtain g(2,{3}) = c23 + g(3, ) = 15 g(2,{4}) = 18 g(3,{2}) = 18 g(3,{4}) = 20 g(4,{2}) = 13 g(4,{3}) = 15 g(2,{3,4}) = min{c23+g(3,{4}),c24+g(4,{3})} = 25 g(3,{2,4}) = min{c32+g(2,{4}),c34+g(4,{2})} = 25 g(4,{2,3}) = min{c42+g(2,{3}),c43+g(3,{2})} = 23 g(1,{2,3,4}) = min{c12+g(2,{3,4}),c13+g(3,{2,4}),c14+g(4,{2,3})} = min(35,40,43} = 35
5.9 The traveling salesperson problem • Let N be the number of g(i,s), that have to be computed before g(1,V-{1}) i, computed for each value of |s| • n-1 choices of i • The number of distinct sets of S of size k not including 1 and i