《最优化-刘志斌-课后习题3-5参考答案要点.pdf》由会员分享,可在线阅读,更多相关《最优化-刘志斌-课后习题3-5参考答案要点.pdf(30页珍藏版)》请在三一文库上搜索。
1、练习题三 1、用 0.618法求解问题 12)(min 3 0 ttt t 的近似最优解,已知)(t的单谷区间为3 ,0,要求最后区间精度0.5 。 答:t=0.8115;最小值 -0.0886.(调用 golds.m 函数) (见例题讲解 5) 2、求无约束非线性规划问题 min ),( 321 xxxf= 1 2 3 2 2 2 1 24xxxx 的最优解 解一: 由极值存在的必要条件求出稳定点: 1 1 22 f x x , 2 2 8 f x x , 3 3 2 f x x ,则由0fx得 1 1x, 2 0x, 3 0x 再用充分条件进行检验: 2 2 1 2 f x , 2 2 2
2、 8 f x , 2 2 3 2 f x , 2 12 0 f x x , 2 13 0 f x x , 2 23 0 f xx 即 2 200 080 002 f为正定矩阵得极小点为 T *(1,0,0)x,最优值为 -1。 解二: 目标函数改写成 min ),( 321 xxxf= 222 123 (1)41xxx 易知最优解为( 1,0,0) ,最优值为 -1。 3、用最速下降法求解无约束非线性规划问题。 2 221 2 121 22)(minxxxxxxXf 其中 T xxX),( 21 ,给定初始点 T X)0,0( 0 。 解一: 目标函数( )f x的梯度 112 12 2 (
3、) ()142 ( ) 122( ) () f x xxx f x xxf x x (0) 1 () 1 f X令搜索方向 (1)(0) 1 () 1 df X再从 (0) X出发,沿 (1) d方向作一维寻 优,令步长变量为,最优步长为 1,则有 (0)(1) 01 01 Xd 故 (0)(1)222 1 ( )()()2()2()2( )f xf Xd 令 1( ) 220可得 1 1 (1)(0)(1) 1 011 011 XXd求出 (1) X点之后, 与上类似地,进行第二次迭代: (1) 1 () 1 f X令 (2)(1) 1 () 1 df X 令步长变量为,最优步长为 2,则有
4、 (1)(2) 111 111 Xd 故 (1)(2)222 2 ( )()(1)(1)2(1)2(1)(1)(1)521( )f xf Xd 令 2( ) 1020可得 2 1 5 ( 2 )( 1 )( 2 ) 2 110. 8 1 111. 25 XXd (2) 0.2 () 0.2 f X此时所达到的精度 (2) ()0.2828f X 本题最优解 1 1.5 X,()1,25f X 解二: 利用 matlab 程序求解 首先建立目标函数及其梯度函数的M 文件 function f=fun(x) f=x(1)-x(2)+2*x(1)*x(1)+2*x(1)*x(2)+x(2)*x(2)
5、; function g=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。 4、试用 Newton法求解第 3 题。 解一: 计算目标函数的梯度和Hesse阵 目标函数( )f x的梯度 112 12 2 ( ) ()1 42 ( ) 122( ) () f x xxx f x x
6、xf x x 2 42 () 22 f XG ,其逆矩阵为 1 0.50.5 0.51 G (1)(0)1(0) 0.50.5 ()0,01, 11,1.5 0.51 TTT XXGf X 计算 (1) ()0fX。 本题最优解 1 1.5 X,()1,25f X 解二: 除了第 3 题建立两个 M 文件外,还需建立Hesse矩阵的 M 文件 利用 matlab 程序求解 首先建立目标函数及其梯度函数的M 文件 function f=fun(x) f=x(1)-x(2)+2*x(1)*x(1)+2*x(1)*x(2)+x(2)*x(2); function g=gfun(x) g=1+4*x(
7、1)+2*x(2),-1+2*x(1) +2* x(2) ; function h=hess(x) g=4 2;2 2 ; 调用 newton.m文件 x0=0,0; x,val,k=newton(fun,gfun,hess,x0) 结果 x= -1.0000 ,1.5000 val= -1.2500 k=1 5、用 FletcherReeves法求解问题 2 2 2 1 25)(minxxXf 其中 T xxX),( 21 ,要求选取初始点 60 10,)2, 2( T X。 解一: 1 12 2 20 1 ( )(,), 0502 x f xx x x 20 050 G, 12 ( )(2
8、,50) . T rf xxx 第一次迭代:令 00 (4,100) T pr, 00 0 00 4 (4,100) 1001 20450 ( 4, 100) 050100 T T rr p Gp 即, (1)(0) 00 (1.92,0) T XXp 第二次迭代: 1 (3.84,0) T r, 2 1 02 0 |3 |2000 r r , T 1100 ( 3.846, 0.15)prp 11 1 11 3.84 (3.84,0) 0 0.4802 203.846 ( 3.846, 0.15) 0500.15 T T r r p Gp (2)(1) 11 (0.0732,0.072) T
9、 XXp 第三次迭代: 2 (0.1464,3.6) T r(建议同学们自己做下去,注意判别 k r) 解二: 利用 matlab 程序求解 首先建立目标函数及其梯度函数的M 文件 function f=fun(x) f=x(1)2+25* x(2)*x(2); function g=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) 结果 x = 1.0e-006 * 0.2651, 0.0088 val =7.2182e-014 k = 61 6
10、、试用外点法(二次罚函数方法)求解非线性规划问题 01)( )2()(min 2 2 2 2 1 xXgts xxXf 其中 2 21 ),(RxxX 解:设计罚函数(,)()* () Px MfXMgX 采用 Matlab 编程计算,结果 x=1 0;最优结果为 1。 (调用 waidianfa.m) 7、用内点法(内点障碍罚函数法)求解非线性规划问题: 3 12 1 2 min(1) 10 0 xx stx x 解:容易看出此问题最优解为x=1 0;最优值为 8. 给出罚函数为 3 1212 (,)(1 )( 1 / (1 )1 /)Px rxxrxx 令 2 1 2 11 ( , ) 3
11、(1)0 (1) P x rr x xx ; 2 22 ( , ) 10 P x rr xx 从而当0r时, 1/ 2 (1/3)1 ( ) 0 r x rx r (建议同学自己编程序计算) 8 22 12 112 min() ()20 f Xxx h Xxx 解:建立乘子法的增广目标函数: 22 121212( , ,)(2)(2)2 2 xxxxxxx 令: 112 1 ( , ,) 2(2)0 x xxx x 212 1 ( , ,) 2(2)0 x xxx x 解上述关于 x 的二元一次方程组得到稳定点 2 22 2 22 x 当乘子取 2 时,或发参数趋于无穷时,得到 1 * 1 x
12、x 即最优解。 (建议同学自己编程序计算) 练习题四 1、石油输送管道铺设最优方案的选择问题:考察网络图4-6,设 A 为出发地, F 为 目的地, B,C,D,E 分别为四个必须建立油泵加压站的地区。图中的线段表示管道可 铺设的位置,线段旁的数字表示铺设这些管线所需的费用。问如何铺设管道才能使总费 用最小? 图 4- 1 解: 第五阶段: E1F 4;E2F 3; 第四阶段: D1E1 F 7;D2E2F 5;D3E1F 5; 第三阶段: C1D1E1 F 12;C2D2E2F 10;C3D2E2F 8;C4 D3E1F 9; 第二阶段: B1C2D2E2F 13; B2C3D2E2F 15
13、; 第一阶段: AB1C2D2E2F 17; 最优解: AB1C2D2E2F 最优值: 17 2、 用动态规划方法求解非线性规划 123 123 123 max( ) 27 ,0 f xxxx xxx x xx 解: 123 9,9,9xxx,最优值为 9。 3、用动态规划方法求解非线性规划 22 112 12 12 12 max765 210 39 ,0 zxxx s txx xx xx 解:用顺序算法 阶段:分成两个阶段,且阶段1 、2 分别对应 12 ,x x 。 决策变量: 12 ,x x 状态变量:, ii v w 分别为第 j 阶段第一、第二约束条件可供分配的右段数值。 11 11
14、 *222 111111111 0 0 (,)max76min76 ,76 xv xw fv wxxvvww * 111 min,xv w 2 2 *2* 222212222 05 222 222222222 05 (,)max5(2,3) max5min7(2)6(2),7(3)6(3) x x fvwxfvxwx xvxvxwxwx 由于 22 10,9vw, 2 *22 22222222 05 (,)(10,9)maxmin33292760,68396621 x fvwfxxxx 可解的 12 9.6,0.2xx,最优值为 702.92。 4、设四个城市之间的公路网如图4-7。两点连线旁
15、的数字表示两地间的距离。使用 迭代法求各地到城市4 的最短路线及相应的最短距离。 21 43 5 8 6 7 4 图 4- 2 城市公路网 解:城市 1 到城市 4 路线 1-3-4 距离 10; 城市 2 到城市 4 路线 2-4 距离 8;城市 3 到城市 4 路线 3-4 距离 4。 5、某公司打算在 3 个不同的地区设置 4 个销售点,根据市场部门估计,在不同地 区设置不同数量的销售点每月可得到的利润如表4-19 所示。试问在各地区如何设置销 售点可使每月总利润最大。 表 4- 1 地 区 销售点 01234 1 2 3 0 0 0 16 12 10 25 17 14 30 21 16
16、 32 22 17 解: 将问题分为 3 个阶段, k=1,2,3; 决策变量 xk表示分配给第 k 个地区的销售点数; 状态变量为 sk表示分配给第 k 个至第 3 个地区的销售点总数; 状态转移方程: sk+1=s kxk,其中 s1=4; 允许决策集合: Dk(sk)=xk|0xksk 阶段指标函数: gk(xk)表示 xk个销售点分配给第k 个地区所获得的利润; 最优指标函数 fk(sk)表示将数量为 sk的销售点分配给第k 个至第 3 个地区所得到的最 大利润,动态规划基本方程为: 1 0 44 ()max()() 3,2,1 ()0 kk kkkkkkk xs fsgxfsxk f
17、s k=3时, 33 3333 ()max() xs fsgx 1101 4 17 174 316163 214142 10 0000 43210 x3*f3(s3) g3(x3) k=2时, 22 2222322 0 ()max ()() xs fsgxfsx 000 0 2,3 31 22+0 21+10 17+14 12+16 0+17 4 22721+017+1012+140+163 12217+012+100+142 11212+00+101 0 4321 x2*f2(s2) g2(x2)+f3(s2x2) k=1时, 11 1111211 0 ()max()() xs fsgxfs
18、x, 1 111121 04 ()max()(4) x fsgxfx 最优解为: x1*=2,x2*=1,x3*=1,f1(4)=47,即在第 1 个地区设置 2 个销售点,第 2 个 地区设置 1 个销售点,第 3 个地区设置 1 个销售点,每月可获利润47。 6、设某厂计划全年生产某种产品A。其四个季度的订货量分别为600 公斤, 700 公斤, 500 公斤和 1200 公斤。已知生产产品A 的生产费用与产品的平方成正比,系数 为 0.005。厂内有仓库可存放产品,存储费为每公斤每季度1 元。求最佳的生产安排使 年总成本最小。 解:四个季度为四个阶段,采用阶段编号与季度顺序一致。 设 s
19、k为第 k 季初的库存量,则边界条件为s1=s5=0 设 xk为第 k 季的生产量,设yk为第 k 季的订货量; sk ,xk ,yk都取实数,状 态转移方程为sk+1=sk+xk - yk仍采用反向递推, 但注意阶段编号是正向的目标函数为: 1234 4 2 1 , 1 ( )min(0.005) ii xxxx i fxxs 第一步: (第四季度 ) 总效果f4(s4,x4)=0.005 x42+s4 由边界条件有:s5= s4 + x4 y4=0,解得: x4*=1200 s4 将 x4*代入 f4(s4,x4)得: f4*( s4)=0.005(1200 s4)2+s4=7200 11
20、 s4+0.005 s42 第二步: (第三、四季度 ) 总效果f3(s3,x3)=0.005 x32+s3+ f4*(s4) 将 s4= s3 + x3 500 代入f3(s3,x3) 得: 2 3333333 2 33 22 33 3333 333 33 3 33333 2 3333 (,)0.005720011(500) 0.005(500) 0.010.01160.0051513950 (,) 0.020.01160 8000.5,(,) ()755070.0025 fsxxsxs xs xx sxss fs x xs x xsfs x fsss 解得代入得 第三步: (第二、三、四季
21、度 ) 总效果 f2(s2,x2)=0.005 x22+s2+ f3*(s3) 将 s3= s2 + x2 700 代入f2(s2,x2) 得: 2 2222222 2 22 222 22 2 22222 2 2222 (,)0.00575507(700) 0.0025(700) (,) 0.0150.005(700)70 700(1 3),(,) ()100006(0.005 3) fs xxsxs xs fsx xs x xsfs x fsss 解得代入得 第四步: (第一、二、三、四季度 ) 总效果 f1(s1,x1)=0.005 x12+s1+ f2*(s2) 将 s2= s1 + x
22、1 600= x1 600 代入f1(s1,x1) 得: 2 111111 2 1 111 1 1 1111 12 (,)0.005100006(600) (0.005 3)(600) (,) (0.04 3)80 600,( ,) ()11800 f s xxsx x f s x x x xfs x fs 解得代入得 由此回溯:得最优生产 库存方案 x1*=600,s2*=0; x2*=700,s3*=0; x3*=800,s4*=300; x4*=900。 7、某种机器可在高低两种不同的负荷下进行生产。设机器在高负荷下生产的产量 函数为 g=8u1,其中 u1为投入生产的机器数量,年完好率
23、a=0.7;在低负荷下生产的产 量函数为 h=5y,其中 y 为投入生产的机器数量,年完好率为b=0.9。假定开始生产时完 好机器的数量s1=1000。试问每年如何安排机器在高、低负荷下的生产,使在5 年内生 产的产品总产量最高。 解: 构造这个问题的动态规划模型: 设阶段序数 k 表示年度。 状态变量 sk为第 k 年度初拥有的完好机器数量,同时也是第k-1 年度末时的完好机器 数量。 决策变量 uk为第 k 年度中分配高负荷下生产的机器数量,于是sk- uk为该年度中分配 在低负荷下生产的机器数量。 这里 sk和 uk均取连续变量,它们的非整数值可以这样理解,如sk=0.6,就表示一台机
24、器在 k 年度中正常工作时间只占6/10;uk=0.3,就表示一台机器在该年度只有3/10 的时 间能在高负荷下工作。 状态转移方程为: 1 ()0.70.9(), 1,2,5 kkkkkkk saub suusuk k 段允许决策集合为:()0 kkkkk Dsuus 设(,) kkk v s u为第 k 年度的产量,则85() kkkk vusu 故指标函数为: 1 5 1,5 (,) k kkk Vvs u 令最优值函数 f k(sk)表示由资源量 sk 出发,从第 k 年开始到第 5 年结束时所生产的产 品的总产量最大值。因而有逆推关系式: 66 1 () ()0 ()max85()0
25、.70.9() 1,2,3, 4,5 kkk kkkkkkkkk uDs fs fsusufusu k 从第 5 年度开始,向前逆推计算。 当 k=5 时,有: 5 5 5 555556555 05 555 05 55 05 ()max85()0.70.9() max85(5 ) max35 us us us fsusufusu usu us 因 f 5 是 u5的线性单调增函数,故得最大解u5*,相应的有: 555 ()8fss 当 k=4 时,有: 44 44 44 44 444445444 0 444444 0 444 0 44 0 ()max 85()0.70.9() max 85()
26、8 0.70.9() max 13.612.2() max 1.412.2 us us us us fsusufusu usuusu usu us 故得最大解, u4*=s4,相应的有 444 ()13.6fss 依此类推,可求得 * 33333 * 2222 * 1111 ()17.5 0()20.8 0( )23.7 usfss ufss uf ss , 相应的 , 相应的 , 相应的 因 s1=1000,故: 11 ( )23700f s 计算结果表明:最优策略为 * 12334455 0,0,uuus us us 即前两年应把年初全部完好机器投入低负荷生产,后三年应把年初全部完好机器投
27、入高 负荷生产。这样所得的产量最高,其最高产量为23700 台。 在得到整个问题的最优指标函数值和最优策略后,还需反过来确定每年年初的状态,即 从始端向终端递推计算出每年年初完好机器数。已知s1=1000台,于是可得: * 21111 * 32222 * 43333 * 54444 * 65555 0.70.9()0.9900() 0.70.2()0.9810() 0.70.9()0.7567() 0.70.9()0.7397() 0.70.9()0.7278() susus susus susus susus susus 台 台 台 台 台 8、有一辆最大货运量为10t 的卡车,用以装载3
28、种货物,每种货物的单位重量及 相应单位价值如表4-20 所示。应如何装载可使总价值最大? 表 4- 2 货物编号i 1 2 3 单位重量( t)3 4 5 单位价值ci 4 5 6 解: 123 ,x xx建模设三种物品各装件 123 123 max(456) 34510 0,1,2,3 jj xxx xxx xxIj 利用动态规划的逆序解法求此问题。 111111 ,( )|0sc D sxxs 21122222 ,()|0ssx Dsxxs 32233333 ,()|0ssxD sxxs 状态转移方程为: 1 (,),3, 2 , 1 kkkkkk sTsxsxk 该题是三阶段决策过程,故
29、可假想存在第四个阶段,而 4 0x,于是动态规划的基本方 程为: 11 () 44 ()max ,(),3,2,1 ()0 kKk kkkkk xDs fsxfsk fs 3,k 33 333 0,1,/5 ()max6 xs fsx 2,k 2 2 2 2 22233 0,1, 4 2322 0,1, 4 ()max5() max5(4) s x s x fsxfs xfsx 1,k 1 1 11122 0,1,2,3 1211 0,1,2,3 ()max 4() max 4(3) x x fsxfs xfsx 计算最终结果为 123 2,1,0xxx,最大价值为 13 。 9、设有A,B,
30、C 三部机器串联生产某种产品,由于工艺技术问题,产品常出现 次品。统计结果表明, 机器 A, B, C 产生次品的概率分别为pA=30%, PB=40%, PC=20%, 而产品必须经过三部机器顺序加工才能完成。为了降低产品的次品率,决定拨款5 万 元进行技术改造,以便最大限度地提高产品的成品率指标。现提出如下四种改进方案: 方案 1:不拨款,机器保持原状; 方案 2:加装监视设备,每部机器需款1 万元; 方案 3:加装设备,每部机器需款2 万元; 方案 4:同时加装监视及控制设备,每部机器需款3 万元; 采用各方案后,各部机器的次品率如表4-21。 表 4- 3 A B C 不拨款30% 4
31、0% 20% 拨款1 万元20% 30% 10% 拨款2 万元10% 20% 10% 拨款3 万元5% 10% 6% 问如何配置拨款才能使串联系统的可靠性最大? 解:为三台机器分配改造拨款,设拨款顺序为A, B, C,阶段序号反向编号为k,即第一 阶段计算给机器C 拨款的效果。 设 sk为第 k 阶段剩余款,则边界条件为s3=5; 设 xk为第 k 阶段的拨款额; 状态转移方程为sk-1=sk-xk; 目标函数为max R=(1-PA)(1-PB)(1-PC) 仍采用反向递推 第一阶段:对机器C 拨款的效果 R1(s1,x1)=d1(s1,x1)R0(s0,x0)= d1(s1,x1) x1
32、s1 0 1 2 3 x1* R1 (s1, x1*) 0 0.8 0 0.8 1 0.8 0.9 1 0.9 2 0.8 0.9 0.9 1, 2 0.9 3 0.8 0.9 0.9 0.94 3 0.94 4 0.8 0.9 0.9 0.94 3 0.94 5 0.8 0.9 0.9 0.94 3 0.94 第二阶段:对机器B, C 拨款的效果 由于机器A 最多只需3 万元,故s2 2 递推公式: R2(s2,x2)=d2(s2,x2)R1(s1,x1*) 例:R2(3,2)=d2(3,2)R1(1,1)=(1-0.2) 0.9=0.72 得第二阶段最优决策表 x1 s1 x1* R1 (
33、s1, x1*) 0 0 0.8 1 1 0.9 2 1, 2 0.9 3 3 0.94 4 3 0.94 5 3 0.94 x2 s2 0 1 2 3 x2* R2 (s2, x2*) 2 0.54 0.63 0.64 2 0.64 3 0.564 0.63 0.72 0.72 2,3 0.72 4 0.564 0.658 0.72 0.81 3 0.81 5 0.564 0.658 0.752 0.81 3 0.81 第三阶段:对机器A, B, C 拨款的效果 边界条件: s3 = 5 递推公式: R3(s3,x3)=d3(s3,x3)R2(s2,x2*) 例:R3(5,3)=d3(5,3
34、)R2(2,2)=(1-0.05) 0.64=0.608 得第三阶段最优决策表 x2 s2 x2* R2 (s2, x2*) 2 2 0.64 3 2,3 0.72 4 3 0.81 5 3 0.81 s3 x3 0 1 2 3 x3* R3(s3, x3*) 5 0.567 0.648 0.648 0.608 1,2 0.648 回溯 :有多组最优解。 I:x3=1, x2=3, x1=1, R3=0.8 0.9 0.9=0.648 II:x3=2, x2=2, x1=1, R3= 0.9 0.8 0.9=0.648 III : x3=2, x2=3, x1=0, R3= 0.9 0.9 0
35、.8=0.648 练习题五 1、考察多目标规划问题 其 中 2 12 2,21 ( ),( )1, 12 1,2 xx f xxfxx xx , 试 画 出 个 目 标 函 数 的 图 形 , 并 求 出 12 , abpawp RRRRR ,这里 i R是 24 min( ) i x f x 的最优解集。 解: 2、用线性加权法中的法求解下述多目标规划问题 112 212 12 12 12 min( )46 max( )33 2414 6324 ,0 fxxx fxxx xx stxx x x 。 解: 112 min( )46f xxx 最优解为 (1)T x=0 0 ; 212 max(
36、 )33fxxx 最优解为 (2)T x=3 2 ; 利用法得线性方程组: 12 12 12 *0*0 *24*15 1 解得唯一加权系数 0.3846,0.6154 T 原多目标规划加权后 12 min( )0.3846 ( )0.6154( )F xf xfx 解得加权后的最优解为: T x =4 0 ,最优值为 -1.2312 3、用线性加权求和法求解下述多目标规划问题,取 12 0.6,0.4。 1212 12 12 12 12 min( )(3,2) 326 33 22 ,0 T vF xxxxx xx xx st xx x x 解:将问题转化为一个新的单目标规划问题。 1212 m
37、in ( )0.6(3)0.4(2)v F xxxxx 约束条件同上,该问题转化为线性规划问题,可用单纯形法求解,也可用Matlab 命令求解 (求解过程略)。 解得加权后的最优解为: T x =0 1 ,最优值为 -1.4。 4、用平方和加权法求解多目标规划问题: 12 min( ),( ) T xD Vfxfx 其中 1122 ( ),( )fxxfxx, 12 12 12 4 :8 ,0 xx Dxx x x , 12 12 , 33 。 解:不难看出两个目标函数下界均为0,得平方和加权法后的新目标规划问题: 22 12 12 min( ) 33 F xxx 12 12 12 4 :8
38、,0 xx Dxx x x 利用 matlab程序求解 首先建立目标函数及其梯度函数的M 文件 function f=fun(x) f=1/3*x(1)2+2/3* x(2)*x(2); x,fval=fmincon( f ,0 0,1 -1;1 1,4;8,0 0) 解得最优解为: T x =0 0 ,最优值为 0。 5、用极小极大法和Matlab 软件求解下述多目标规划问题 1 2222 122 12 min( )(3),(2) ) 2 T vF xxxxx stxx 。 解:取评价函数为 2222 1212 ( )max(3),(2) i v F xxxxx,再求 2222 1212 m
39、in( )minmax(3),(2) Di v F xxxxx Matlab 软件求解: 编制 M 文件 function f=mnmax(x) f(1)=(x(1)-3)2+x(2)2; f(2)=x(1)2+(x(2)-2)2 设初值 x0=0;0; 调用函数 x,fval=fminimax(mnmax,x0,1 1,2) 结果: x = 1.3000 0.7000 fval = 3.3800 3.3800 可得1.3,0.7 T X;对应 12 3.38ff从而1.3,0.7 T X为原问题的解。 附习题中用过的Matlab 程序 1、bbmethod function x,y=bbme
40、thod(f,G,h,Geq,heq,lb,ub,x,id,options) %整数线性规划分支定界法,可求解纯整数规划和混合整数规划。 %y=minf*x s.t. G*x0.00005 %in order to avoid error return; end; if max(abs(x.*ID-round(x.*ID)0.00005 %in order to avoid error opt=x;upper=ftemp; return; else opt=opt;x; return; end; end; notintx=find(abs(x-round(x)=0.00005); %in or
41、der to avoid error intx=fix(x);tempvlb=vlb;tempvub=vub; if vub(notintx(1,1),1)=intx(notintx(1,1),1)+1; tempvlb(notintx(1,1),1)=intx(notintx(1,1),1)+1; ftemp=IntLP(tempvlb,vub); end; if vlb(notintx(1,1),1)epsilon)|(hdelta) if(phip=0.0) d=-g; end end if(norm(g)epsilon), break; end %检验终止条件 m=0; mk=0; w
42、hile(m20) %Armijo 搜索 if(feval(fun,x0+rhom*d)feval(fun,x0)+sigma*rhom*g*d) mk=m; break; end m=m+1; end x0=x0+rhomk*d; val=feval(fun,x0); g0=g; d0=d; k=k+1; end x=x0; val=feval(fun,x); 6、waidianfa.m close all clear all clc syms x1 x2 M; %M 为罚因子。 m(1)=1; c=8; %c 为递增系数。赋初值。 a(1)=20; b(1)=20; f=(x1-2)2+x
43、22+M*(x1-1)2; %外点罚函数 f0(1)=500; %求偏导、 Hessian元素 fx1=diff(f,x1); fx2=diff(f,x2); fx1x1=diff(fx1,x1); fx1x2=diff(fx1,x2); fx2x1=diff(fx2,x1); fx2x2=diff(fx2,x2); %外点法 M 迭代循环 for k=1:100 x1=a(k); x2=b(k); M=m(k); %牛顿法求最优值 for n=1:100 f1=subs(fx1); %求解梯度值和 Hessian矩阵 f2=subs(fx2); f11=subs(fx1x1); f12=subs(fx1x2); f21=subs(fx2x1); f22=subs(fx2x2); if(double(sqrt(f12+f22)=1e-6) %最优值收敛条件 a(k+1)=double(x1);b(k+1)=double(x2);f0(k+1)=double(subs(f); break; else X=x1 x2-inv(f11 f12;f21 f22)*f1 f2; x1=X(1,1);x2=X(2,1); end end if(double(sqrt(a(k+1)-a(k)2+(b(k+1)-b(k)2)=1e-6) else m(k+1)=c*m(k); end end
链接地址:https://www.31doc.com/p-5209230.html