动态规划例1求解下列整数规划的最优解.docx
《动态规划例1求解下列整数规划的最优解.docx》由会员分享,可在线阅读,更多相关《动态规划例1求解下列整数规划的最优解.docx(26页珍藏版)》请在冰豆网上搜索。
动态规划例1求解下列整数规划的最优解
例1求解卜列整数规划的最优解:
maxZ4x15x26x3
3xi4X25x3<10c4-
S.t
Xj>0j1,2,3,Xj为整效
解
(1)建立动态规划模型:
阶段变量:
将给每一个变量Xj赋值看成一个阶段,划分为3个阶段,且阶段变量k=1,2,3.
设状态变量Sk表示从第k阶段到第3阶段约束右端最大值,则Sj10.
设决策变量Xk表示第k阶段赋给变量Xk的值(k1,2,3).
状态转移方程:
S2&3X1,S3S24X2.
阶段指标:
u1(S!
X1)4x1,u2(s2,x2)5x2,u3(s3,x3)6x3.
基本方程;
其中a〔3,a24,a35.
(1)用逆序法求解:
当k3时,
f3S3max6x3f4s4max6x3
s3S3
0玄X—0玄X3玄一
55
x30;当&5,6,7,8,9时,x3可取0或1;当S310时,x3可取0,1,2,由此确定f3S3
现将有关数据列入表4.1中表4.1中.
L
6X3fqS)
f3(S3)
*
X3
0
1
2
0
0
0
0
1
0
0
0
2
0
0
0
3
0
0
0
4
0
0
0
5
0
6
6
1
6
0
6
6
1
7
0
6
6
1
8
0
6
6
1
9
0
6
6
1
10
0
6
12
12
2
当k2时,有
而S20,1,2,3,4,5,6,7,8,9,10。
所以当S20,1,2,3时,x?
0;当s4,5,6,7时,
x20或1;当S28,9,10时x20,1,2。
由此确定f2S2。
现将有关数据列入表4.2中.
表4.2
X
S2
5x2f3(S24x2)
f3(S3)
*
x3
S3
0
1
2
0
0+0
0
0
0
1
0+0
0
0
1
2
0+0
0
0
2
3
0+0
0
0
3
4
0+0
5+0
5
1
0
5
0+6
5+0
6
0
5
6
0+6
5+0
6
0
6
7
0+6
5+0
6
0
7
8
0+6
5+0
10+0
10
2
0
9
0+6
5+6
10+0
11
1
5
10
0+12
5+6
10+0
12
0
10
当k1时,有
而§10,故x1只能取0,1,2,3,由此确定f1§。
现将有关数据列入表4.3中。
表4.3
4x1f2s3x1
f1Si
*
*
S2
\0
1
2
3
10
0+12
4+6
8+5
12+0
13
2
4
按计算顺序反推,由表4.3可知,当
x12时,f1(S1)取得最大值13.又由s24查表4.2得x21,及
S30,再由表4.1查得x30因此,最优解为
x32,x31,x30,最优解maxZ13.
例5用动态规划方法解下列非线性规划问题
2
maxzx1x2x3x1x2x3cxi0i1,2,3
解:
解决这一类静态规划问题,需要人为地赋予时间概念,从而将该问题
转化为多阶段决策过程。
按问题的变量个数划分阶段,把它看作一个三阶段决策问题,k=1,2,3
设状态变量为S1,&,S3,S4并记S1取问题中的变量x1,x2,x3为决策变量
状态转移方程为:
S3=x3S3+x2=S2S2+x1=S1允许决策集合为:
x3=S30各阶段指标函数为:
V1(x1)=x1V2(x2)=x2V3(x3)=x3,各指标函
fk(Sk)
数以乘积方式结合,最优指标函数fk(Sk)表示从第k阶段初始状态Sk出发到第3阶段所得到的最大值,则动态规划基本方程为:
xjmaxjvkg)fkg1)]k,2,,1
f4(S4)1
用逆序解法由后向前依次求解:
k=3时,
f3(S3)盎"3*f4(S4)]
max(x3)
^3S3
S3
*
x3=S3
k=2时,
2、「2
f2(S2)maxJv2(x2)f3(S3)]max(x2S3)max[x2(S2x?
)]
xD2(S2)0x2S20x2S2
所以x22S2是极大值点
3
f2(S2)
N、2,243
(S2)(S2巳)草S2
3327
*2
X2S2
3
k=1时,
fi(Si)
maX[vi(Xi)f2(S2)]maX(x1
XDi(S)0XiS
—s2)maX[Xi
270Xis
"27(SiXi)3]
人…、4、3
令hi(S,,Xi)Xi——(SiXi)
27
dhidX
43
万(SXi)
i2,、2_、
为护耳xi)(i)
解得:
Xi
d2hi
dX2
〔2,—(§
27
Xi)2(
1)
i2‘、2
27(SiXi)
24,
—Xi(§
27
Xi)
24/
——(Si
27
Xi)(2xi&)
d2'
dX2
Xi
-9S20
27
一.i
所以Xi4Si是极大值点
i3i4
Si)Si
464
i4
fi(s)S—(s
427
由丁Si未知,所以对s再求极值,
*
Xi
i
;Si
…、,i4、
maXf-i(s〔)maX(—s)
0sc0Sic64
显然Si=c时,fi(si)取得最大值
fi(Si)
i——c64
*
1
1
i4
Si=c
Xi
si
-c
fi(S)
一c
4
4
64
*
3
*
2
1
43
i3
S2S-I
Xi
-c
X2
匚S2
-c
f2(S2)
cS2
一c
4
3
2
27
i6
*
1
*
1
1
S3S2
X2
_c
X3
S3
_c
f3(S3)
S3
c
4
4
4
反向追踪得各阶段最优决策及最优值:
*
*
4
所以最优解为:
*
Xi
i
C,X24
i一c
64
1*i
—c,X3c,z
24
例6用动态规划方法解下列非线性规划问题
maXz
2
Xi
X2
3
X3
Xi
X2
X3
6
Xj
0
j
i,2,3
解:
按变量个数将原问题分为三个阶段,阶段变量k=1,2,3;
选择Xk为决策变量;
状态变量Sk表示第k阶段至第3阶段决策变量之和;
取小区间长度△=〔,小区间数目m=6/1=6,状态变量Sk的取值点为:
Sk0,1,2,3,4,5,6k2
Si6
状态转移方程:
Sk+1=$—Xk;
允许决策集合:
Dk(Sk)={Xk|0X<,Sk均在分割点上取值;
阶段指标函数分别为:
g〔(X1)=X12g2(X2)=X2g3(X3)=X33,
最优指标函数fk(sQ表小从第k阶段状态$出发到第3阶段所得到的最大值,动态规划的基本方程为:
fk(Sk)maX[gk(Xk)fk1(Sk1)]k3,2,1
0XkSk
f4(S4)1
k=3时,
f3(s3)丁弩(©s3
S3及X3取值点较多,计算结果以表格形式给出,见表6.1-6.3所示。
表6.1计算结果
S3\
X3
f3(S3)
*
X3
0
1
2
3
4
5
6
0
0
0
0
1
1
1
1
2
8
8
2
3
27
27
3
4
64
64
4
5
125
125
5
6
216
216
6
表6.2计算结果
0
0
0
0
1
0
1X0
0
0,1
2
0
1X1
2X0
1
1
3
0
1X8
2X1
3X0
8
1
4
0
1X27
2X8
3X1
4X0
27
1
5
0
1X64
2X27
3X8
4X1
5X0
64
1
6
0
1乂125
2X64
3X27
4X8
5X1
6X0
128
2
表6.3计算结果
Xi
2「,一、
f2(Si—Xi)
fi(Si)
*
Xi
S\
0
1
2
3
4
5
6
6
0
1X64
4X27
9x8
16xi
25X0
36X0
108
2
由表6.3知,xi=2,si=6,贝US2=si-xi=6—2=4,查表6.2得:
X2=1,则
S3=S2—X2=4—1=3,查表6.1得:
X3=3,所以最优解为:
Xi=2,X2=1,X3=3,fi(Si)=108。
上面讨论的问题仅有一个约束条件。
对具有多个约束条件的问题,同样可以
用动态规划方法求解,但这时是一个多维动态规划问题,解法上比较繁琐一些。
例7某公司打算在3个不同的地区设置4个销售点,根据市场部门估计,
在不同地区设置不同数量的销售点每月可得到的利润如表6.4所示。
试问在各地区如何设置销售点可使每月总利润最大。
表6.4利润值
地区
销售点
0
1
2
3
4
1
0
16
25
30
32
2
0
12
17
21
22
3
0
10
14
16
17
解:
如前所述,建立动态规划数学模型:
将问题分为3个阶段,k=1,2,3;
决策变量Xk表示分配给第k个地区的销售点数;
状态变量为$表示分配给第k个至第3个地区的销售点总数;
状态转移方程:
Sk+1=&—Xk,其中Si=4;
允许决策集合:
Dk(Sk)={Xk|0阶段指标函数:
gk(Xk)表示Xk个销售点分配给第k个地区所获得的利润;
最优指标函数fk(Sk)表示将数量为■的销售点分配给第k个至第3个地区
所得到的最大利润,动态规划基本方程为:
fk(Sk)max[gk(xk)fk1(skxk)]k3,2,1
0XkSk
f4(S4)0
数值计算如表所示。
表6.5k=3时计算结果
S3\
g3O)
f3⑶
*
x3
0
1
2
3
4
0
0
0
0
1
10
10
1
2
14
14
2
3
16
16
3
4
17
17
4
表6.6k=2时计算结果
X?
S2X
g2(x2)+f3(S2—x2)
f2(&)
*
x2
0
1
2
3
4
0
0
0
0
1
0+10
12+0
12
1
2
0+14
12+10
17+0
22
1
3
0+16
12+14
17+10
21+0
27
2
4
0+17
12+16
17+14
21+10
22+0
31
2,3
表6.7k=1时计算结果
g1(x)+f2(S1—xi)
*
xi
s\
0
1
2
3
4
4
0+31
16+27
25+22
30+12
32+0
47
2
所以最优解为:
xi=2,x2=1,x3=1,f〔(4)=47,即在第1个地区设置2个销售点,第2个地区设置1个销售点,第3个地区设置1个销售点,每月可获利润47。
例9(生广一库存I可题)
某工厂要对一种产品制定今后四个时期的生产计划,据估计在今后四个时期内,市场对该产品的需求量分别为2,3,2,4单位,假设每批产品固定成本为
3千元,若不生产为0,每单位产品成本为1千元,每个时期最大生产能力不超过6个单位,每期期末未出售产品,每单位需付存贮费0.5千元,假定第1期初
和第4期末库存量均为0,问该厂如何安排生产与库存,可在满足市场需求的前提下总成本最小。
解:
以每个时期作为一个阶段,该问题分为4个阶段,k=1,2,3,4;
决策变量xk表小第k阶段生产的产品数;
状态变量sk表示第k阶段初的库存量;
以dk表示第k阶段的需求,则状态转移方程:
sk+i=$+xk—dk;k=4,3,2,1由丁期初及期末库存为0,所以Sl=0,S5=0;
允许决策集合Dk(Sk)的确定:
当s<>dk时,xk可以为0,当$量,djSk,所以为的上限为min(djSk,6),故有:
4
Dk(s<)={xk|max(0,dk—s<)阶段指标函数rk(s%xk)表示第k期的生产费用与存贮费用之和:
最优指标函数fk(Sk)表小第k期库存为Sk到第4期末的生广与存贮最低费用,动态规划基本方程为:
fk(Sk)min、[「k(Sk,xk)fk1(Sk1)]k4,3,2,1
xkDk(sk)
f5(S5)0
先求出各状态允许状态集合及允许决策集合,如表6.8所示。
表6.8状态允许状态集合及允许决策集合
S1
0
D1(S
1)
{2,3,4,5,6
}
S2
0
1
2
3
4
D2(s
2)
{3,4,5,6}
{2,3,4,5,6
}
{123,4,5,
6}
{0,1,2,3,4,5,
6}
{0,123,4,
5}
S3
0
1
2
3
4
5
6
D3(S
3)
{2,3,4,5,6
}
{123,4,5
}
{0,1,2,3,4}
{0,1,2,3}
{0,1,2}
{0,1
}
{0}
S4
0
1
2
3
4
D4(s
{4}
{3}
{2}
{1}
{0}
由基本方程计算各阶段策略,结果如下表所示。
表6.9k=4时计算结果
S4
x4
0.5&
3x4
X40.5s4x4
0
0
S5
f5(S5)
f4(S)
—
0
4
7
0
0
7
1
*
3
6.5
0
0
*
6.5
2
*
2
6
0
0
*
6
3
*
1
5.5
0
0
*
5.5
4
*
0
2
0
0
*
2
表6.10k=3时计算结果
0.5S3X30
S3
X3
「3(&飞3)八clc
S4=$+乂3—2
f4(S4)
f3(S3)
3x30.5S3x30
2
5
0
7
12
3
6
1
6.5
12.5
0
4
7
2
6
13
5
8
3
5.5
13.5
*
6
9
4
2
*
11
1
4.5
0
7
11.5
2
5.5
1
6.5
12
1
3
6.5
2
6
12.5
4
7.5
3
5.5
13
*
5
8.5
4
2
*
10.5
*
0
1
0
7
*
8
1
5
1
6.5
11.5
2
2
6
2
6
12
3
7
3
5.5
12.5
4
8
4
2
10
—*—
0
1.5
1
6.5
—*—
8
Q
1
5.5
2
6
11.5
3
2
6.5
3
5.5
12
3
7.5
4
2
9.5
*
0
2
2
6
8*
4
1
6
3
5.5
11.5
2
7
4
2
9
*
0
2.5
3
5.5
*
8
5
1
6.5
4
2
8.5
6
*
0
3
4
2
*
5
表6.11k=2时计算结果
0.5S2x20
S2
X2
「2(3飞2)小clc
S3=S2+x2-3
f3(&)
f2(&)
3x20.5s2x20
3
6
0
11
17
4
7
1
10.5
17.5
0
*
*
5
8
2
8
16
6
9
3
8
17
2
5.5
0
11
16.5
3
6.5
1
10.5
17
1
*
4
7.5
2
8
*
15.5
5
8.5
3
8
16.5
6
9.5
4
8
17.5
1
5
0
11
16
2
6
1
10.5
16.5
*
3
7
2
8
*
15
2
4
8
3
8
16
5
9
4
8
17
6
10
5
8
18
*
0
1.5
0
11
*
12.5
1
5.5
1
10.5
16
2
6.5
2
8
14.5
3
3
7.5
3
8
15.5
4
8.5
4
8
16.5
5
9.5
5
8
17.5
6
10.5
6
5
15.5
*
0
2
1
10.5
*
12.5
1
6
2
8
14
2
7
3
8
15
4
3
8
4
8
16
4
9
5
8
17
5
10
6
5
15
表6.12k=1时计算结果
S1
X1
0.5§X10
「1(§,X1)CCLC
3X10.5s1X10
S2=X-2
f2(S2)
f1(S1)
0
2
3
4
*
5
6
5
6
7
8
9
0
1
2
3
4
16
15.5
15
12.5
12.5
21
21.5
22
*
20.5
21.5
逆向追踪可得:
xi=5,S2=3,X2=0,S3=0,X3=6,S4=4,X4=0,即第1时期生产5个单位,第3时期生产6个单位,第2,4时期不生产,可使总费用最小,最小费用为20.5千元。
例10(库存一销售问题)
设某公司计划在1至4月份从事某种商品经营。
已知仓库最多可存储600
件这种商品,已知1月初存货200件,根据预测知1至4月份各月的单位购货成本及销售价格如表6.13所示,每月只能销售本月初的库存,当月进货供以后各月销售,问如何安排进货量和销售量,使该公司四个月获得利润最大(假设四月底库存为零)。
表6.13单位购货成本及销售价格
月份
购货成本C
销售价格P
1
40
45
2
38
42
3
40
39
4
42
44
解:
按月份划分阶段,k=1,2,3,4;
状态变量Sk表示第k月初的库存量,S1=200,S5=0;
决策变量:
Xk表小第k月售出的货物数量,yk表小第k月购进的货物数量;
状态转移方程:
Sk+1=S<+yk—Xk;
允许决策集合:
0VXk阶段指标函数为:
pkXk—o最优指标函数fk(Sk)表小第k月初库存为$时从第k月至第4月末的最大
利润,则动态规划基本方程为:
fk(Sk)maX[PkXkCkykfk〔(庄1)]k4,3,2,1
0XkSk0yk600(SkX<)
f5(S5)0
k=4时,
**-
X4=S4y4=0
f4(S4)maX(44x442y4)44s4
0X4S40y4600(S4X4)
k=3时,
为求出使44S3—5x3+4y3最大的X3,ya,须求解线性规划问题:
maxz44ss5x34y3
X3&
X3V3600S3
X3,y30
只有两个变重X3,y3,可用图解法也可用单纯形法求解,取得取优解,X3=0,
*
y3=600—S3,f3(S3)=40S3+2400
k=2时,
f2(s2)maX[42x238y2f3(s3