演算法實驗7 動態規劃投資問題

2021-10-04 22:59:44 字數 912 閱讀 4082

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

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

例項:

問題轉換:

假設分配給第 i 個專案的錢數是 xi,問題描述為:

目標函式max

約束條件x1+x2+..+xn=m,xi∈n

遞推公式:

設f(x)表示x萬元投給前k個專案的最大效益,k=1.,2…..n, x=1,2…...m .

遞推方程: fk(x)= max,k=2.3,...n

邊界條件: f1(x)= f1(x),fk(0)=0,k = 1.2.....n

說明:第k步,前後共分配x萬元,

分配給第k個專案為xk。;

x-xk,萬元,分配給前k-1個專案。

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

for k=1,

2,3……,n //第k個專案

for x=1,

2,3,…,m //k個專案共分配x萬元

for xk=0,

1,2,

3…..x //第k個專案分配xk

f(x)= max 0≤xk≤x

f(x)= f(x)

xk∈[0…x],共x+1項,fk(xk)+f k-1(x-xk)有x+1項,因此有x+1次加,x項比較出最大值。

for k=1,2,3…n

for x= 1,2,3…m

加法:比較:

複雜度w(n,m) = 0(nm^2)

動態規劃 投資問題

要求 現有x萬元資金可以投資給m個專案,先給出三個專案分別投資0 x萬元可得的利益,其求出如何分配這x萬元可以使得得到的利益最大化。本題以投資金額為7萬元資金以及a b c三個專案為例 解題思路 這道題目是分成的專案是三個,所以可以將整個解題思路分為三個階段。第一階段 只考慮a乙個專案,即將所有的資...

演算法分析與設計作業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...

投資問題 動態規劃問題

動態規劃 是一種多階段決策過程最優的通用方法 優化原則 乙個最優決策序列的任何子串行本身一定是相對於子串行的初始和結束狀態的最優決策序列 我的理解是 假設s3a3b4c4t4 最優化的未知 是最優化的,即是 所有的s中某點 到 所有的t中某點 最短的選擇路徑 按照優化原則,即是s3a3b4ct4中任...