演算法分析與設計 投資問題之動態規劃

2021-10-04 23:26:57 字數 545 閱讀 8596

設有m萬元錢,n項投資,函式fi(x)表示將x萬元投入第i項專案所產生的效益,i=1,2,…,n

問:如何分配這m元錢,使得投資的總效益最高?

遞推公式

優化原則:乙個最優決策序列的任何子串行本身一定是相對於子串行的初始和結束狀

態的最優決策序列。

已知:這個序列 l1 是最優決策序列

那麼:這個序列任何子串行本身一定是相對於子串行的初始和結束狀態的最優決策序

列。

for(int i=1;i<=n;i++)

for(int j=0;j<=m;j++)

for(int k=0;k<=j;k++)

if(f[i-1][j-k]+v[i][k]>f[i][j])

for i 1->n

for j 0->m

for k 0->j

綜上所述,分析可得演算法的時間複雜度近似為o(n*m^2)。

演算法分析與設計作業7 動態規劃 投資問題

設m元錢,n項投資,函式fi x 表示將x元投入第i個專案所產生的效益 i 0,1,2,3 n 問 如何分配這m元錢,使得投資總效益最高?將這個問題分割開看,將一部分資金x元分割給第k個專案,那麼剩下k 1個專案分得資金m x元,零gk x 表示將資金x分給前k個專案的最大利潤,則求max fk x...

《演算法分析與設計》 作業7 投資問題

問題 設m元錢,n項投資.效益函式fi x 表示將x元投入第i個專案所產生的效益,i 1,2,3,n。問 如何分配這m元錢,使得投資的總效益最高?解析遞推公式。設fk x 表示x萬元投給前k個專案的最大收益,k 1,2,n,x 1,2,m 我們可以得到遞推方程和邊界條件 遞推方程 fk x max0...

演算法分析設計實踐 投資問題

設m元錢,n項投資,函式fi x 表示將x元投入第i項專案所產生的相依 i 1 2 n 問 如何分配這m元錢,使得投資的總效益最高。1.我們設dp i j 為前i個專案花費j元所能得到的最大收益 2.假設我們分配個第i個專案k元,那麼實際上前i 1個專案一共得到了j k元 因此 dp i j 的最優...