最优化方法练习题答案
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
(1) ;(2)
解:隐枚举法:
(1)将(0,0,0)(0,0,1)(0,1,0)(1,0,0)(0,1,1)(1,0,1)(1,1,0)(1,1,1)分别带入到约束条件中,可以得到:原问题的最优解是(0,0,1),目标函数最优值2.
(2)将(0,0,0,0,0)(0,0,0,0,1)(0,0,0,1,0)(0,0,1,0,0)….(1,1,1,1,1)分别带入到约束条件中,可以得到:原问题的最优解是(1,1,0,0,0),目标函数最优值-5。
练习题二
1、某公司看中了例2.1中厂家所拥有的3种资源R1、R2、和R3,欲出价收购(可能用于生产附加值更高的产品)。如果你是该公司的决策者,对这3种资源的收购报价是多少?(该问题称为例2.1的对偶问题)。
解:确定决策变量对3种资源报价 作为本问题的决策变量。
确定目标函数问题的目标很清楚——“收购价最小”。
functiong=gfun(x)
g=[2*x(1),50*x(2)];
调用frcg.m文件
x0=[2,2]’;epsilon=1e-6;
[x,val,k]=frcg('fun','gfun',x0,epsilon)
单纯形表计算略;当所有非基变量为负数,人工变量 =0.5,所以原问题无可行解。
请同学们自己求解。
Matlab调用代码:
f=[-10;-15;-12];
A=[5,3,1;-5,6,15;-2,-1,-1];
b=[9;15;-5];
lb=[0;0;0];
x=linprog(f,A,b,[],[],lb)
该题可以用单纯形法或matlab自带工具箱命令(linprog)求解。
*9、求解下列不平衡运输问题(各数据表中,方框内的数字为单位价格 ,框外右侧的一列数为各发点的供应量 ,框底下一行数是各收点的需求量 ):
(1)51710要求收点3的需求必须正好满足。
64680
32515
752050
(2)51020要求收点1的需求必须由发点4供应。
x5
0
x1
2
1
-2
1
0
0
0
x4
2
0
[1]
-2
1
0
0
x5
5
0
1
1
0
1
cj-zj
0
-1
1
0
0
因检验数σ2<0最小,故确定x2为换入非基变量,以x2的系数列的正分量对应去除常数列,最小比值所在行对应的基变量x4作为换出的基变量。
cj→
0
-1
1
0
0
CB
基
b
x1
x2
x3
x4
x5
0
x1
6
1
0
-3
2
0
-1
x2
2
0
1
-2
1
0
0
x5
3
0
0
[3]
-1
1
cj-zj
0
0
-1
1
0
因检验数σ3<0最小,故确定x3为换入非基变量,以x1的系数列的正分量对应去除常数列,最小比值所在行对应的基变量x5作为换出的基变量。
cj→
0
-1
1
0
0
CB
基
b
x1
x2
x3
x4
x5
0
x1
9
1
0
0
1
1
-1
x2
4
0
1
0
1/3
2/3
1
x3
1
0
0
1
-1/3
练习题一
1、建立优化模型应考虑哪些要素?
答:决策变量、目标函数和约束条件。
2、讨论优化模型最优解的存在性、迭代算法的收敛性及停止准则。
答:针对一般优化模型 ,讨论解的可行域 ,若存在一点 ,对于 均有 则称 为优化模型最优解,最优解存在;迭代算法的收敛性是指迭代所得到的序列 ,满足 ,则迭代法收敛;收敛的停止准则有 , , , , 等等。
故
令 可得 求出 点之后,与上类似地,进行第二次迭代: 令
令步长变量为 ,最优步长为 ,则有
故 令 可得
此时所达到的精度
本题最优解 ,
解二:利用matlab程序求解
首先建立目标函数及其梯度函数的M文件
functionf=fun(x)
f=x(1)-x(2)+2*x(1)*x(1)+2*x(1)*x(2)+x(2)*x(2);
基
b
x1
x2
x3
x4
x5
x6
0
x4
2
1
[1]
-2
1
0
0
0
x5
3
2
1
1
0
1
0
0
x6
4
-1
0
1
0
0
1
cj-zj
1
-1
1
0
0
0
因检验数σ2<0,故确定x2为换入非基变量,以x2的系数列的正分量对应去除常数列,最小比值所在行对应的基变量x4作为换出的基变量。
cj→
1
-1
1
0
0
0
CB
基
b
x1
x4
x3
x4
x5
x6
x=
33
y=
-39
最优解[33];最优值39
(2)调用matlab编译程序bbmethod
f=[-7;-9];G=[-13;71];h=[6;35]
[x,y]=bbmethod(f,G,h,[],[],[0;0],[],[1;0],1)
x=
50
y=
-35
最优解[50];最优值35
7、用隐枚举法和Matlab软件求解下列问题:
0
0
x4
3
1
2
0
1
cj-zj
4-3M
1-M
0
0
4
x1
1
1
1/3
1/3
0
0
x4
2
0
[5/3]
-1/3
1
cj-zj
0
-1/3
M-4/3
0
4
x1
3/5
1
0
2/5
-1/5
1
x2
6/5
0
1
-1/5
3/5
cj-zj
0
0
M-7/5
1/5
因检验数σj>0,表明已求得最优解: 。
Matlab调用代码:
f=[4;1];
1/3
cj-zj
0
0
0
2/3
1/3
因检验数σj>0,表明已求得最优解: 。
4、分别用大 法、两阶段法和Matlab软件求解下列线性规划问题:
(1) ;(2)
解:(1)大M法
根据题意约束条件1和2可以合并为1,引入松弛变量x3,x4,构造新问题。
cj→
4
1
M
0
CB
基
b
x1
x2
x3
x4
M
x3
3
[3]
1
1
输出结果
x=
0
0
1
fval=
2
(2)
调用代码:
f=[-3;-2;5;2;3];
%价值向量f
A=[1,1,1,2,1;7,0,3,-4,3;-11,6,0,-3,3];
%不等式约束系数矩阵A,[]中的分号“;”%为行分隔符
b=[4;8;-1];
%不等式约束右端常数向量b
[x,fval]=bintprog(f,A,b,[],[]);
val=-1.2500
k=1
5、用Fletcher—Reeves法求解问题
其中 ,要求选取初始点 。
解一:
,
第一次迭代:令 ,
即,
第二次迭代:
, ,
第三次迭代:
……(建议同学们自己做下去,注意判别 )
解二:利用matlab程序求解
首先建立目标函数及其梯度函数的M文件
functionf=fun(x)
f=x(1)^2+25*x(2)*x(2);
, , ,则由 得 , ,
再用充分条件进行检验:
, , , , ,
即 为正定矩阵得极小点为 ,最优值为-1。
解二:目标函数改写成
min =
易知最优解为(1,0,0),最优值为-1。
3、用最速下降法求解无约束非线性规划问题。
其中 ,给定初始点 。
解一:目标函数 的梯度
令搜索方向 再从 出发,沿 方向作一维寻优,令步长变量为 ,最优步长为 ,则有
确定约束条件资源的报价至少应该高于原生产产品的利润,这样原厂家才可能卖。
因此有如下线性规划问题:
*2、研究线性规划的对偶理论和方法(包括对偶规划模型形式、对偶理论和对偶单纯形法)。
答:略。
3、用单纯形法求解下列线性规划问题:
(1) ;(2)
解:(1)引入松弛变量x4,x5,x6
cj→
1
-1
1
0
0
0
CB
functiong=gfun(x)
g=[1+4*x(1)+2*x(2),-1+2*x(1)+2*x(2)];
调用grad.m文件
x0=[0,0];
[x,val,k]=grad('fun','gfun',x0)
结果
x=[-1.0000,1.5000]
val=-1.2500
k=33
即迭代33次的到最优解x=[-1.0000,1.5000];最优值val=-1.2500。
表2-28
运价/产粮
(元/吨)区
化肥厂
甲
乙
丙
丁
各厂供应量/万吨
A1
5
4
9
10
7
8
A3
8
4
2
9
3
各区需要量/万吨
6
6
3
3
解:设A、B、C三个化肥厂为A1、A2、A3,甲、乙、丙、丁四个产粮区为B1、B2、B3、B4;cij为由Ai运化肥至Bj的运价,单位是元/吨;xij为由Ai运往Bj的化肥数量(i=1,2,3;j=1,2,3,4)单位是吨;z表示总运费,单位为元,依题意问题的数学模型为:
输出结果:
原题无可行解。
5、用内点法和Matlab软件求解下列线性规划问题:
解:用内点法的过程自己书写,参考答案:最优解 ;最优值5
Matlab调用代码:
f=[2;1;1];
Aeq=[1,2,2;2,1,0];
beq=[6;5];
lb=[0;0;0];
[x,fval]=linprog(f,[],[],Aeq,beq,lb)
输出结果:
Optimizationterminated.
x=
1.3333
2.3333
0.0000
fval=
5.0000
6、用分支定界法求解下列问题:
(1) ;(2)
解:(1)调用matlab编译程序bbmethod
f=[-5;-8];G=[11;59];h=[6;45]
[x,y]=bbmethod(f,G,h,[],[],[0;0],[],[1;1],1)
32410
75215
96015
51015
解答略。
10、一公司经理要分派4位推销员去4个地区推销某种商品。推销员各有不同的经验和能力,因而他们在不同地区能获得的利润不同,其获利估计值如表2-29所示。公司经理应怎样分派才使总利润最大?
表2-29
地区
推销员
1
2
3
4
1
35
27
28
37
2
28
34
29
40
3
35
0
1/3
2/3
0
1
x3
1/3
1/3
0
1
-1/3
1/3
0
0
x6
11/3
-4/3
0
0
1/3
-1/3
1
cj-zj
7/3
0
3
2/3
1/3
0
因检验数σj>0,表明已求得最优解: ,去除添加的松弛变量,原问题的最优解为: 。
(2)根据题意选取x1,x4,x5,为基变量:
cj→
0
-1
1
0
0
CB
基
b
x1
x2
x3
x4
Matlab软件求解:
(1)
调用代码:
f=[4;3;2];
%价值向量f
A=[2,-5,3;-4,-1,-3;0,-1,-1];
%不等式约束系数矩阵A,[]中的分号“;”%为行分隔符
b=[4;-3;-1];
%不等式约束右端常数向量b
[x,fval]=bintprog(f,A,b,[],[]);
%调用函数bintprog。注意两个空数组的占位作用。
4、试用Newton法求解第3题。
解一:计算目标函数的梯度和Hesse阵
目标函数 的梯度
,其逆矩阵为
计算 。
本题最优解 ,
解二:除了第3题建立两个M文件外,还需建立Hesse矩阵的M文件
利用matlab程序求解
首先建立目标函数及其梯度函数的M文件
functionf=fun(x)
f=x(1)-x(2)+2*x(1)*x(1)+2*x(1)*x(2)+x(2)*x(2);
1→1,2→4,3→3,4→2
此时总利润W=35+40+32+32=139
练习题三
1、用0.618法求解问题
的近似最优解,已知 的单谷区间为 ,要求最后区间精度 。
答:t=0.8115;最小值-0.0886.(调用golds.m函数)
2、求无约束非线性规划问题
min =
的最优解
解一:由极值存在的必要条件求出稳定点:
24
32
33
4
24
32
25
28
解:用求极大值的“匈牙利法”求解。
效率矩阵表示为:
所画()0元素少于n(n=4),未得到最优解,需要继续变换矩阵(求能覆盖所有0元素的最少数直线集合):
未被直线覆盖的最小元素为cij=2,在未被直线覆盖处减去2,在直线交叉处加上2。
∴得最优解:
∴使总利润为最大的分配任务方案为:
-1
x2
2
1
1
-2
1
0
0
0
x5
1
1
0
[3]
-1
1
0
0
x6
4
-1
0
1
0
0
1
cj-zj
2
0
-1
1
0
0
因检验数σ3<0,故确定x3为换入非基变量,以x3的系数列的正分量对应去除常数列,最小比值所在行对应的基变量x5作为换出的基变量。
cj→
解:隐枚举法:
(1)将(0,0,0)(0,0,1)(0,1,0)(1,0,0)(0,1,1)(1,0,1)(1,1,0)(1,1,1)分别带入到约束条件中,可以得到:原问题的最优解是(0,0,1),目标函数最优值2.
(2)将(0,0,0,0,0)(0,0,0,0,1)(0,0,0,1,0)(0,0,1,0,0)….(1,1,1,1,1)分别带入到约束条件中,可以得到:原问题的最优解是(1,1,0,0,0),目标函数最优值-5。
练习题二
1、某公司看中了例2.1中厂家所拥有的3种资源R1、R2、和R3,欲出价收购(可能用于生产附加值更高的产品)。如果你是该公司的决策者,对这3种资源的收购报价是多少?(该问题称为例2.1的对偶问题)。
解:确定决策变量对3种资源报价 作为本问题的决策变量。
确定目标函数问题的目标很清楚——“收购价最小”。
functiong=gfun(x)
g=[2*x(1),50*x(2)];
调用frcg.m文件
x0=[2,2]’;epsilon=1e-6;
[x,val,k]=frcg('fun','gfun',x0,epsilon)
单纯形表计算略;当所有非基变量为负数,人工变量 =0.5,所以原问题无可行解。
请同学们自己求解。
Matlab调用代码:
f=[-10;-15;-12];
A=[5,3,1;-5,6,15;-2,-1,-1];
b=[9;15;-5];
lb=[0;0;0];
x=linprog(f,A,b,[],[],lb)
该题可以用单纯形法或matlab自带工具箱命令(linprog)求解。
*9、求解下列不平衡运输问题(各数据表中,方框内的数字为单位价格 ,框外右侧的一列数为各发点的供应量 ,框底下一行数是各收点的需求量 ):
(1)51710要求收点3的需求必须正好满足。
64680
32515
752050
(2)51020要求收点1的需求必须由发点4供应。
x5
0
x1
2
1
-2
1
0
0
0
x4
2
0
[1]
-2
1
0
0
x5
5
0
1
1
0
1
cj-zj
0
-1
1
0
0
因检验数σ2<0最小,故确定x2为换入非基变量,以x2的系数列的正分量对应去除常数列,最小比值所在行对应的基变量x4作为换出的基变量。
cj→
0
-1
1
0
0
CB
基
b
x1
x2
x3
x4
x5
0
x1
6
1
0
-3
2
0
-1
x2
2
0
1
-2
1
0
0
x5
3
0
0
[3]
-1
1
cj-zj
0
0
-1
1
0
因检验数σ3<0最小,故确定x3为换入非基变量,以x1的系数列的正分量对应去除常数列,最小比值所在行对应的基变量x5作为换出的基变量。
cj→
0
-1
1
0
0
CB
基
b
x1
x2
x3
x4
x5
0
x1
9
1
0
0
1
1
-1
x2
4
0
1
0
1/3
2/3
1
x3
1
0
0
1
-1/3
练习题一
1、建立优化模型应考虑哪些要素?
答:决策变量、目标函数和约束条件。
2、讨论优化模型最优解的存在性、迭代算法的收敛性及停止准则。
答:针对一般优化模型 ,讨论解的可行域 ,若存在一点 ,对于 均有 则称 为优化模型最优解,最优解存在;迭代算法的收敛性是指迭代所得到的序列 ,满足 ,则迭代法收敛;收敛的停止准则有 , , , , 等等。
故
令 可得 求出 点之后,与上类似地,进行第二次迭代: 令
令步长变量为 ,最优步长为 ,则有
故 令 可得
此时所达到的精度
本题最优解 ,
解二:利用matlab程序求解
首先建立目标函数及其梯度函数的M文件
functionf=fun(x)
f=x(1)-x(2)+2*x(1)*x(1)+2*x(1)*x(2)+x(2)*x(2);
基
b
x1
x2
x3
x4
x5
x6
0
x4
2
1
[1]
-2
1
0
0
0
x5
3
2
1
1
0
1
0
0
x6
4
-1
0
1
0
0
1
cj-zj
1
-1
1
0
0
0
因检验数σ2<0,故确定x2为换入非基变量,以x2的系数列的正分量对应去除常数列,最小比值所在行对应的基变量x4作为换出的基变量。
cj→
1
-1
1
0
0
0
CB
基
b
x1
x4
x3
x4
x5
x6
x=
33
y=
-39
最优解[33];最优值39
(2)调用matlab编译程序bbmethod
f=[-7;-9];G=[-13;71];h=[6;35]
[x,y]=bbmethod(f,G,h,[],[],[0;0],[],[1;0],1)
x=
50
y=
-35
最优解[50];最优值35
7、用隐枚举法和Matlab软件求解下列问题:
0
0
x4
3
1
2
0
1
cj-zj
4-3M
1-M
0
0
4
x1
1
1
1/3
1/3
0
0
x4
2
0
[5/3]
-1/3
1
cj-zj
0
-1/3
M-4/3
0
4
x1
3/5
1
0
2/5
-1/5
1
x2
6/5
0
1
-1/5
3/5
cj-zj
0
0
M-7/5
1/5
因检验数σj>0,表明已求得最优解: 。
Matlab调用代码:
f=[4;1];
1/3
cj-zj
0
0
0
2/3
1/3
因检验数σj>0,表明已求得最优解: 。
4、分别用大 法、两阶段法和Matlab软件求解下列线性规划问题:
(1) ;(2)
解:(1)大M法
根据题意约束条件1和2可以合并为1,引入松弛变量x3,x4,构造新问题。
cj→
4
1
M
0
CB
基
b
x1
x2
x3
x4
M
x3
3
[3]
1
1
输出结果
x=
0
0
1
fval=
2
(2)
调用代码:
f=[-3;-2;5;2;3];
%价值向量f
A=[1,1,1,2,1;7,0,3,-4,3;-11,6,0,-3,3];
%不等式约束系数矩阵A,[]中的分号“;”%为行分隔符
b=[4;8;-1];
%不等式约束右端常数向量b
[x,fval]=bintprog(f,A,b,[],[]);
val=-1.2500
k=1
5、用Fletcher—Reeves法求解问题
其中 ,要求选取初始点 。
解一:
,
第一次迭代:令 ,
即,
第二次迭代:
, ,
第三次迭代:
……(建议同学们自己做下去,注意判别 )
解二:利用matlab程序求解
首先建立目标函数及其梯度函数的M文件
functionf=fun(x)
f=x(1)^2+25*x(2)*x(2);
, , ,则由 得 , ,
再用充分条件进行检验:
, , , , ,
即 为正定矩阵得极小点为 ,最优值为-1。
解二:目标函数改写成
min =
易知最优解为(1,0,0),最优值为-1。
3、用最速下降法求解无约束非线性规划问题。
其中 ,给定初始点 。
解一:目标函数 的梯度
令搜索方向 再从 出发,沿 方向作一维寻优,令步长变量为 ,最优步长为 ,则有
确定约束条件资源的报价至少应该高于原生产产品的利润,这样原厂家才可能卖。
因此有如下线性规划问题:
*2、研究线性规划的对偶理论和方法(包括对偶规划模型形式、对偶理论和对偶单纯形法)。
答:略。
3、用单纯形法求解下列线性规划问题:
(1) ;(2)
解:(1)引入松弛变量x4,x5,x6
cj→
1
-1
1
0
0
0
CB
functiong=gfun(x)
g=[1+4*x(1)+2*x(2),-1+2*x(1)+2*x(2)];
调用grad.m文件
x0=[0,0];
[x,val,k]=grad('fun','gfun',x0)
结果
x=[-1.0000,1.5000]
val=-1.2500
k=33
即迭代33次的到最优解x=[-1.0000,1.5000];最优值val=-1.2500。
表2-28
运价/产粮
(元/吨)区
化肥厂
甲
乙
丙
丁
各厂供应量/万吨
A1
5
4
9
10
7
8
A3
8
4
2
9
3
各区需要量/万吨
6
6
3
3
解:设A、B、C三个化肥厂为A1、A2、A3,甲、乙、丙、丁四个产粮区为B1、B2、B3、B4;cij为由Ai运化肥至Bj的运价,单位是元/吨;xij为由Ai运往Bj的化肥数量(i=1,2,3;j=1,2,3,4)单位是吨;z表示总运费,单位为元,依题意问题的数学模型为:
输出结果:
原题无可行解。
5、用内点法和Matlab软件求解下列线性规划问题:
解:用内点法的过程自己书写,参考答案:最优解 ;最优值5
Matlab调用代码:
f=[2;1;1];
Aeq=[1,2,2;2,1,0];
beq=[6;5];
lb=[0;0;0];
[x,fval]=linprog(f,[],[],Aeq,beq,lb)
输出结果:
Optimizationterminated.
x=
1.3333
2.3333
0.0000
fval=
5.0000
6、用分支定界法求解下列问题:
(1) ;(2)
解:(1)调用matlab编译程序bbmethod
f=[-5;-8];G=[11;59];h=[6;45]
[x,y]=bbmethod(f,G,h,[],[],[0;0],[],[1;1],1)
32410
75215
96015
51015
解答略。
10、一公司经理要分派4位推销员去4个地区推销某种商品。推销员各有不同的经验和能力,因而他们在不同地区能获得的利润不同,其获利估计值如表2-29所示。公司经理应怎样分派才使总利润最大?
表2-29
地区
推销员
1
2
3
4
1
35
27
28
37
2
28
34
29
40
3
35
0
1/3
2/3
0
1
x3
1/3
1/3
0
1
-1/3
1/3
0
0
x6
11/3
-4/3
0
0
1/3
-1/3
1
cj-zj
7/3
0
3
2/3
1/3
0
因检验数σj>0,表明已求得最优解: ,去除添加的松弛变量,原问题的最优解为: 。
(2)根据题意选取x1,x4,x5,为基变量:
cj→
0
-1
1
0
0
CB
基
b
x1
x2
x3
x4
Matlab软件求解:
(1)
调用代码:
f=[4;3;2];
%价值向量f
A=[2,-5,3;-4,-1,-3;0,-1,-1];
%不等式约束系数矩阵A,[]中的分号“;”%为行分隔符
b=[4;-3;-1];
%不等式约束右端常数向量b
[x,fval]=bintprog(f,A,b,[],[]);
%调用函数bintprog。注意两个空数组的占位作用。
4、试用Newton法求解第3题。
解一:计算目标函数的梯度和Hesse阵
目标函数 的梯度
,其逆矩阵为
计算 。
本题最优解 ,
解二:除了第3题建立两个M文件外,还需建立Hesse矩阵的M文件
利用matlab程序求解
首先建立目标函数及其梯度函数的M文件
functionf=fun(x)
f=x(1)-x(2)+2*x(1)*x(1)+2*x(1)*x(2)+x(2)*x(2);
1→1,2→4,3→3,4→2
此时总利润W=35+40+32+32=139
练习题三
1、用0.618法求解问题
的近似最优解,已知 的单谷区间为 ,要求最后区间精度 。
答:t=0.8115;最小值-0.0886.(调用golds.m函数)
2、求无约束非线性规划问题
min =
的最优解
解一:由极值存在的必要条件求出稳定点:
24
32
33
4
24
32
25
28
解:用求极大值的“匈牙利法”求解。
效率矩阵表示为:
所画()0元素少于n(n=4),未得到最优解,需要继续变换矩阵(求能覆盖所有0元素的最少数直线集合):
未被直线覆盖的最小元素为cij=2,在未被直线覆盖处减去2,在直线交叉处加上2。
∴得最优解:
∴使总利润为最大的分配任务方案为:
-1
x2
2
1
1
-2
1
0
0
0
x5
1
1
0
[3]
-1
1
0
0
x6
4
-1
0
1
0
0
1
cj-zj
2
0
-1
1
0
0
因检验数σ3<0,故确定x3为换入非基变量,以x3的系数列的正分量对应去除常数列,最小比值所在行对应的基变量x5作为换出的基变量。
cj→