如何將動(dòng)態(tài)規(guī)劃解決不了的問題轉(zhuǎn)化為判定性問題
Posted on 2006-08-13 18:18 oyjpart 閱讀(923) 評(píng)論(2) 編輯 收藏 引用動(dòng)態(tài)規(guī)劃成立的條件中有一條:無后效性。
典型的比較就是多階段路徑問題與MOD4最優(yōu)路徑問題:前者無后效性 后者有
MOD4最優(yōu)路徑問題: 找到1-N的一條MOD4的余數(shù)最小的路徑。
顯然不滿足無后效性 但是我們可以這樣轉(zhuǎn)化:(呵呵 我看書的)
增加狀態(tài)的維數(shù),將最優(yōu)化問題轉(zhuǎn)會(huì)為判定性問題。
設(shè) f[k][i] 為bool型數(shù)組,表示從1點(diǎn)到K點(diǎn)長(zhǎng)度mod4為i的路徑是否存在。
顯然如果dis[k-1][k]代表k-1的點(diǎn)到k的距離 由f[k-1][i-dis[k-1][k]]=TRUE 可以推出 f[k][i]=TRUE;
那么如果到從k-1的點(diǎn)到k的路徑有M條,我們就可以由這M個(gè)狀態(tài)的邏輯或得到 f[k][i]的真假。
呵呵 這樣就把動(dòng)態(tài)規(guī)劃的思想運(yùn)用到了不能用動(dòng)態(tài)規(guī)劃解決的問題。。
典型的比較就是多階段路徑問題與MOD4最優(yōu)路徑問題:前者無后效性 后者有
MOD4最優(yōu)路徑問題: 找到1-N的一條MOD4的余數(shù)最小的路徑。
顯然不滿足無后效性 但是我們可以這樣轉(zhuǎn)化:(呵呵 我看書的)
增加狀態(tài)的維數(shù),將最優(yōu)化問題轉(zhuǎn)會(huì)為判定性問題。
設(shè) f[k][i] 為bool型數(shù)組,表示從1點(diǎn)到K點(diǎn)長(zhǎng)度mod4為i的路徑是否存在。
顯然如果dis[k-1][k]代表k-1的點(diǎn)到k的距離 由f[k-1][i-dis[k-1][k]]=TRUE 可以推出 f[k][i]=TRUE;
那么如果到從k-1的點(diǎn)到k的路徑有M條,我們就可以由這M個(gè)狀態(tài)的邏輯或得到 f[k][i]的真假。
呵呵 這樣就把動(dòng)態(tài)規(guī)劃的思想運(yùn)用到了不能用動(dòng)態(tài)規(guī)劃解決的問題。。
§