多段图规划

一个5段图。
在这里插入图片描述

求一条从 s s s t t t 的成本最小的路径。

多段图问题满足最优性原理。
证明:反证法。
s , ⋯   , V i p , ⋯   , V j q , ⋯   , t s,\cdots,V_{i_p},\cdots,V_{j_q},\cdots,t s,,Vip,,Vjq,,t 是一条从 s s s t t t 的最短路径,但其子路径 V i p , ⋯   , V j q , ⋯   , t V_{i_p},\cdots,V_{j_q},\cdots,t Vip,,Vjq,,t 不是最优的。假设最优路径是 V i p , ⋯   , V j q ′ , ⋯   , t V_{i_p},\cdots,V_{j_q}',\cdots,t Vip,,Vjq,,t,重新构造一条路径 s , ⋯   , V i p , ⋯   , V j q ′ , ⋯   , t s,\cdots, V_{i_p},\cdots,V_{j_q}',\cdots,t s,,Vip,,Vjq,,t,显然,该路径长度小于 s , ⋯   , V i p , ⋯   , V j q , ⋯   , t s,\cdots,V_{i_p},\cdots,V_{j_q},\cdots,t s,,Vip,,Vjq,,t。与 s , ⋯   , V i p , ⋯   , V j q , ⋯   , t s,\cdots,V_{i_p},\cdots,V_{j_q},\cdots,t s,,Vip,,Vjq,,t 是从 s s s t t t 的最短路径相矛盾,所以原问题满足最优性原理。

递归式推导:

c o s t ( i , j ) cost(i, j) cost(i,j) 是结点 V i V_i Vi 中结点 V i j V_{i_j} Vij 到结点 t t t 的最小成本路径的成本,递归式为:
c o s t ( i , j ) = { c ( j , t ) i = t − 1 m i n { v l ∈ V i + 1 } { c ( j , l ) + c o s t ( i + 1 , l ) } 1 ≤ i < t − 1 cost(i, j)=\begin{cases} c(j, t) & i = t - 1 \\ min_{\{v_l \in V_{i+1}\}}\{c(j, l)+cost(i+1,l)\} & 1 \le i \lt t-1\\ \end{cases} cost(i,j)={c(j,t)min{vlVi+1}{c(j,l)+cost(i+1,l)}i=t11i<t1
计算过程:

  • c o s t ( 4 , 9 ) = c ( 9 , 12 ) = 4 cost(4, 9)=c(9, 12) = 4 cost(49)=c(9,12)=4

    • cost(4, 9):4 代表 V 4 V_4 V4 那一列,9 代表 V 4 V_4 V4 那一列的结点 9。
    • c(9, 12):9 代表结点 9,12 代表结点 12。
  • c o s t ( 4 , 10 ) = c ( 10 , 12 ) = 2 cost(4,10)= c(10, 12) = 2 cost(410)=c(10,12)=2

  • c o s t ( 4 , 11 ) = c ( 11 , 12 ) = ∞ cost(4,11)= c(11, 12) = \infty cost(411)=c(11,12)=

  • c o s t ( 3 , 6 ) = m i n { c ( 6 , 9 ) + c o s t ( 4 , 9 ) , c ( 6 , 10 ) + c o s t ( 4 , 10 ) } = m i n { 6 + 4 , 5 + 2 } = 7 cost(3, 6) = min\{c(6, 9)+cost(4, 9), c(6, 10) + cost(4, 10)\} = min\{6+4, 5+2\} = 7 cost(3,6)=min{c(6,9)+cost(4,9),c(6,10)+cost(4,10)}=min{6+4,5+2}=7

    • c(6, 9)+cost(4, 9):从6-9-12这条路线
    • c(6, 10) + cost(4, 10):从6-10-12这条路线
  • c o s t ( 1 , 1 ) = m i n { 9 + c o s t ( 2 , 2 ) , 7 + c o s t ( 2 , 3 ) , 3 + c o s t ( 2 , 4 ) , 2 + c o s t ( 2 , 5 ) } = 16 cost(1,1)=min\{9+cost(2,2),7+cost(2,3),3+cost(2,4),2+cost(2,5)\}=16 cost(1,1)=min{9+cost(2,2),7+cost(2,3),3+cost(2,4),2+cost(2,5)}=16

构造解:解1(1, 2, 7, 10, 12)解2(1, 3, 6, 10, 12)

posted @ 2023-07-05 16:47  gengduc  阅读(6)  评论(0编辑  收藏  举报  来源