1 / 34

实验七 最优化方法

一、线性规划的概 念. 二、线性规划的图解法. 三、用 MATLAB 优化工具箱解线性规划. 四、整数规划. 实验七 最优化方法. 实验 7.1 线性规划. 设计化生产甲产品 件 ,乙产品 件,满足条件. 且使 达到最大. 一、线性规划的概 念. 例 1 资源的最佳利用问题:某工厂有 A 、 B 、 C 、 D 四种机床,可生产甲、乙两种产品.一件产品需经各台机床加工的时间和利润情况如表所示,问如何安排生产才能使得到的利润最高?.

mandek
Download Presentation

实验七 最优化方法

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 一、线性规划的概 念 二、线性规划的图解法 三、用MATLAB优化工具箱解线性规划 四、整数规划 实验七 最优化方法 实验7.1 线性规划

  2. 设计化生产甲产品 件 ,乙产品 件,满足条件 且使 达到最大 一、线性规划的概 念 例1资源的最佳利用问题:某工厂有A、B、C、D四种机床,可生产甲、乙两种产品.一件产品需经各台机床加工的时间和利润情况如表所示,问如何安排生产才能使得到的利润最高?

  3. 设由砖厂Ai运往工地Bj的运量为 (单位:万块),问题的数学模型为:求 的值,要求满足条件: 且使 具有最小值。 例2运输问题:设有两个砖厂A1、A2,生产砖产量分别为23万块与27万块,将砖供应B1、B2、B3三个工地,其需要量分别为17万块、18万块和15万块,自产地到工地的运价如表所示

  4. 以上两个例子,虽然有着不同的实际内容,但它们都具有三个共同的特征:以上两个例子,虽然有着不同的实际内容,但它们都具有三个共同的特征: ① 需要确定一组变量的值,这些变量通常称为决策变量,简称变量,它们通常是非负的. ② 对于决策变量,存在着可用一组线性等式或不等式来表达的限制条件,这些条件称为约束条件. ③ 有一个可以表示为决策变量的线性函数的目标要求,这一函数称为目标函数.按问题的不同要求,可要求目标函数达到最大值或最小值. 在线性约束条件下,要求一组决策变量的值,使线性目标函数达到最大值或最小值的问题,就叫做线性规划问题,常用符号LP(Linear Programming )表示。

  5. 线性规划的一般数学模型为:求决策变量 的一组值,满足约束条件 或 使目标函数 达到所要求的最小值maxz或最小值minz. 也称非负条件,有时对某些变量没有非负要求,cj 称为价值系数,满足约束条件的决策变量的一组值,称为线性规划的可行解,使目标函数达到所要求的最大值或最小值的可行解,成为线性规划的最优解,也就是线性规划的解,其线性规划的解的过程叫做解线性规划。

  6. 标准形式 矩阵形式

  7. 例1 约束条件 目标函数 二、线性规划的图解法 解:如图可行域:OABCD 当红线移动到B(4,2)时,z 达到最大值14 注:线性规划有唯一解、无穷解或无解这三种情况.对于决策变量两个以上的线性规划就不能用图解法,最常用、最有效的算法之一是单纯形方法。

  8. 模型1 命令 x=linprog(c,A,b) 模型2 命令 x=linprog(c,A,b,Aeq,beq) 三、用MATLAB优化工具箱解线性规划 注:若没有不等式Ax≤b存在,则令A=[ ],b=[ ]

  9. 模型3 命令 x=linprog(c,A,b,Aeq,beq,VLB,VUB) x=linprog(c,A,b,Aeq,beq,VLB,VUB,X0) [x,fval=linprog(…)返回最优解x及x处的目标函数值fval 注:1.若没有等式约束Aeqx=beq,则令Aeq=[ ], beq=[ ] 2.其中X0表示初始点

  10. 例1 且使 达到最大 A=[1 1;1 2;1 0;0 1]; b=[6,8,4,3]; c=-[2,3]; A1=[]; b1=[]; v1=[0,0]; x=linprog(c,A,b,A1,b1,v1) ↙ Optimization terminated. x = 4.0000 2.0000 [x,fval]=linprog(c,A,b,A1,b1,v1) ↙ Optimization terminated. x = 4.0000 2.0000 fval = -14.0000

  11. 且使 具有最小值。 例2 x = 0 8.0000 15.0000 17.0000 10.0000 0 z = 3.6500e+003 a=[1,1,1,0,0,0;0,0,0,1,1,1;1,0,0,1,0,0;0,1,0,0,1,0;0,0,1,0,0,1]; b=[23,27,17,18,15]; c=[50,60,70,60,110,160]; v1=zeros(1,6); [x,feval]=linprog(c,[],[],a,b,v1) ↙

  12. 例3解线性规划 目标函数 a=[-2,1;1,-1]; b=[4,2]; c=-[1,1]; v1=[0,0]; x=linprog(c,a,b,[ ],[ ],v1) ↙ Exiting: One or more of the residuals, duality gap, or total relative error has stalled: the dual appears to be infeasible (and the primal unbounded). (The primal residual < TolFun=1.00e-008.) x = 1.0e+009 * 1.4007 2.8007 表明此线性规划无最优解

  13. 四、整数规划 当线性规划中要求决策变量为整数解时,称为整数规划,MATLAB中没有解整数规划的命令,但可以先解线性规划,再在它的最优解附近试探。 例4某服务部门一周中每天需要不同数目的雇员:周一到周四每天至少50人,周五和周日每天至少80人,周六至少90人.现规定应聘者需连续工作5天,试确定聘用方案,即周一到周日每天聘用多少人,使在满足需要的条件下聘用总人数最少.如果周日的需求量由80增至90人,方案怎样改变. 解:先考虑只聘用全时雇员的方案,设周一到周日每天聘用的人数为x1,x2,…,x7,由于每人连续工作5天,所以周一工作的雇员应是周四到周一聘用的,按照需要至少50人,于是

  14. Optimization terminated. x = 0.0000 10.0000 30.0000 10.0000 30.0000 10.0000 0.0000 fval = 90.0000 c=ones(1,7); a=ones(7); a1=triu(a,1);a3=triu(a,3);a5=tril(a,-5); A=-(a-a1+a3-a5); b=-[50 50 50 50 80 90 80]; v1=zeros(1,7); [x,fval]=linprog(c,A,b,[],[],v1)↙ 即周二、四、六各聘用10人,三、五各聘用30人,共聘用90人。

  15. 如果周日的需求量由80人增至90人,计算结果为如果周日的需求量由80人增至90人,计算结果为 x = 0.0000 3.3333 33.3333 10.0000 33.3333 10.0000 3.3333 fval = 93.3333 必须处理出现小数的问题,若将小数全部进位,聘用方案为(0,4,34,10,34,10,4),共96人,这不是最优的,实际上可以发现有只用94人的方案:(0,3,34,10,34,10,3)或(0,4,33,10,33,10,4).

  16. 实验任务 1.某厂用两台机床加工三种零件,情况如下表所示,问怎样安排两台机床一个生产周期的加工任务,才能使加工成本最低?

  17. 2.有四个煤产地A1,A2,A3,A4,今年产量(单位:万吨)分别为35,45,55,65;有6个销地B1~B6 ,今年销量分别为40,20,30,40,30,40,预计明年6个销地的销量各增加5万吨。计划部门为了使产销平衡,打算增加年产30万吨的采煤设备,把它分别拨给煤产地A1,A2,A3,A4使用,因此增加了生产成本(单位:万元)分别为20,30,15,25。问应将这套设备拨给哪个产地能使增加的总成本(生产成本和运输成本)最低?运价如下表:

  18. 一、非线性规划的概念 二、二次规划 三、无约束非线性规划 四、带约束非线性规划 实验7.2 非线性规划

  19. 一、非线性规划的概念 如果目标函数或约束条件中包含非线性函数,就称这种规划问题为非线性规划问题,一般来说,解非线性规划要比解线性规划问题困难得多,非线性规划目前还没有适于各种问题的一般算法,各个方法都有自己特定的适用范围。 我们先来讨论最简单的非线性规划——二次规划

  20. 二、二次规划 二次规划(Quadratic Programming ,记作QP)指目标函数是二次函数,约束条件为线性的,其一般形式为: 其中,x,A,b,Aeq,beq与线性规划相同;H为n 阶对称矩阵。

  21. 例1求解 解二次规划的命令: x=quadprog (H,c,A,b) x=quadprog (H,c,A,Aeq,beq) x=quadprog (H,c,A, Aeq,beq,VLB,VUB) x=quadprog (H,c,A, Aeq,beq,VLB,VUB,X0) [x,fval] =quadprog (H,c,A,b,…)

  22. H=[1,-1;-1,2]; c=[-2,-6]; A=[-1,2;2,1];b=[2;3]; Aeq=[1,1];beq=[2];VLB=[0,0];VUB=[]; [x,z]=quadprog(H,c,A,b,Aeq,beq,VLB,VUB)↙ Optimization terminated. x = 0.6667 1.3333 z = -8.2222

  23. 三、无约束非线性规划 无约束非线性规划的一般形式是 其中 f 可以是非线性的,这实际上就是多元函数极值问题 1.求单变量有界非线性函数在区间上的极小值 [x,fval]=fminbnd(fun,x1,x2,options) 它的返回值是极小点 x 和函数的极小值,这里fun是用M文件定义的函数或MATLAB中的单变量数学函数.

  24. 在[0,8]上的最大值与最小值. 例2求 解先编写文件“f.m”定义函数: function y=f(x) y=2*exp(-x)*sin(x); 在MATLAB命令窗口中输入: [xmin,ymin]=fminbnd('f',0,8) ↙ xmin = 3.9270 ymin = -0.0279

  25. 要求最大值,只需对 -f(x)求最小值 f1='-2*exp(-x).*sin(x)'; [xmax,ymax]=fminbnd(f1,0,8) ↙ xmax = 0.7854 ymax = -0.6448 故最大值为0.6448,最小值为-0.0279

  26. 2.求多变量函数的极小值 [x,fval]=fminunc(fun,x0,options,p1,p2,…) 它的返回值是向量x的值和函数的极小值。fun是一个M文件,x0是向量x的初始值,options是优化参数,p1,p2是可以传递给fun 的一些参数。

  27. 例3求最小值 解 编写M文件 function f=fun1(x) f=exp(x(1))*(4*x(1)^2+2*x(2)^2+4*x(1)*x(2)+2*x(2)+1); x0=[-1,1]; x=fminunc(‘fun1’,x0) ↙ x = 0.5000 -1.0000 y=fun1(x) ↙ y = 1.4644e-015

  28. 四、带约束非线性规划 带有约束条件的极值问题称为约束极值问题,也叫约束规划问题。 带约束非线性规划的一般形式为 标准型为

  29. 例4求 用MATLAB解非线性规划的一般步骤是 (1)建立M文件,定义目标函数 (2)若约束条件中有非线性约束:C(x)<=0或Ceqx=0,则建立M文件定义函数C(x)与Ceq(x) (3)建立主程序,非线性规划求解的函数是fmincon

  30. 解 先建立M文件fun1.m,定义目标函数 function f=fun1(x) f=exp(x(1))*(4*x(1)^2+2*x(2)^2+4*x(1)*x(2)+2*x(2)+1); 再建立M文件mycon.m,定义非线性约束 function [g,ceq]=mycon(x) g=[1.5+x(1)*x(2)-x(1)-x(2);-x(1)*x(2)-10]; ceq=0; 主程序为 x0=[-1,1];A=[];b=[]; Aeq=[1,1];beq=[0]; vlb=[];vub=[]; [x,fval]=fmincon('fun1',x0,A,b,Aeq,beq,vlb,vub,'mycon') ↙

  31. x = -1.2247 1.2247 fval = 1.8951

  32. 实验任务 1.求极值 2.对边长为3米的正方形铁板,在四个角剪去相等的正方形以制成无盖水槽,问如何剪法是水槽的容积最大? 3.解下列二次规划

  33. 选作:求解非线性规划

More Related