第三版的clrs改寫了15.1.用乙個rod cut問題代替了assembly-line問題。不過總覺得還沒第2版講得好啊。
15.1-1 print-station(l*, n). 如果n==2, print l_2[l*], 否則的話print-station(l_n[l*], n-1) print 'n station, l_n[l*] '
15.1-2 suppose \(r_1(j+1)=r_2(j+1)=2^\)。帶入公式15.9既得。
15.1-3 all \(f_i[j]\) . 這個\(1+2+4+....2^=2^n-1\) 乘2既得
15.1-4 如果只想知道f*的話,那麼需要用2n儲存的f_1和f_2可以改成只要4個空間儲存。a_1,a_2,b_1,b_2。假設a_1,a_2放了f_1[n-1],f_2[n-1],那麼在b_1和b_2可以用來計算f_1[n]和f_2[n]。然後交換一下方向就好了。儲存l_1和l_2不變還是2n-2。總共2n+2.
15.1-5 這個問題也就是l_1和l_2只能是1,1和1,2和2,2。因為上乙個子問題得到的兩個f_1[n-1]和f_2[n-1]記做a和b的話,那麼當前階段就要比較a,b,a+c,b+d。如果2,1出現的話,那麼a>b+d,b>a+c。a-b>d, a-b<-c。得到-c>d。但是c和d都是正數,所以canty錯了。
演算法導論 第15章
動態規劃,就是一種求解最優解問題的。這麼說,估計大家也覺得太空泛了。想看詳細的說明,請點這裡 那麼我就講我的理解了。首先,演算法是一種策略,方法,思想,其中,有一種非常常見的常用思想 動態思想。你要做一件事情,然後,到最後完成。而你沒做一件事情都影響後面,而且你每次有很多的選擇 那麼如何每次遇到岔路...
《演算法導論》筆記 第15章 總結與思考
歐幾里得旅行商問題是對平面上給定的n個點,確定一條連線各點的最短閉合旅程的問題。這個解的一般形式為np完全的。j.l.bentley 建議通過只考慮雙調旅程 bitonictour 來簡化問題,這種旅程即為從最左點開始,嚴格地從左到右直至最右點,然後嚴格地從右到左直至出發點。在這種情況下,多項式時間...
動態規劃(演算法導論第15章)
動態規劃 dynamic programming 與分治方法相似,都是通過組合子問題的解來求解原問題。其中,分治方法將問題劃分為互不相交的子問題,遞迴的求解子問題,再將它們的解組合起來,求出原問題的解。與之相反,動態規劃應用於子問題重疊的情況,即不同的子問題具有公共的子子問題 子問題的求解是遞迴進行...