5-2单目标函数最优化
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
单目标函数最优化
1基本概念
(1) 设计变量(决策变量):在设计过程中进行选择并最终必须确定的各项独立参数。
(2) 最优化设计的维数:决策变量的数目称为最优化设计的维数,比如:1维、2维、3维设计问题。 (3) 设计空间:在最优化设计中由各决策变量的坐标轴所描述的空间称为设计空间。
当决策变量数目大于3时,n 维空间又称为超越空间。
注意:设计空间中的一个点(一组决策变量的值)就是一种设计方案。
(4) 目标函数:用决策变量表示的、反应所设计问题性能的函数表达式。
注意:最优化设计的过程就是选择合理的决策变量,使目标函数达到最优或找出目标函数的最小值(或最
大值)的过程。
(5) 单目标函数最优化问题:目标函数只有一个。
(6) 多目标函数最优化问题:目标函数(性能指标)有多个。 (7) 无约束优化、约束优化
(8) 线性规划(Linear Programming ,简记为LP ):目标函数和约束条件都是自变量(包括决策变量和
非决策变量)的线性函数。
非线性规划(Nonlinear Programming ,简记为NP ):如果目标函数和约束函数中至少有一个是自变量的非线性函数,这种规划问题就称为非线性规划问题。
2单目标函数最优化问题
exa: (生产计划问题)某企业计划生产甲、乙两种产品,这两种产品均需在A 、B 、C 三种不同设备上加工。每单位产品所耗用的设备工时、单位产品利润及各设备在某计划期内的工时限额如表1。试问应如何安排生产计划,才能使企业获得最大利润。
决策变量:计划期内甲、乙两种产品的产量,分别用1x 、2x 表示,其取值均为非负; 目标函数:计划期内两种产品的总利润,用z 表示,即
2143x x z +=
问题:总利润最大,即
2143m ax x x z +=
约束条件:1x 、2x 受到工时限额的约束,即
621≤+x x 8221≤+x x
622≤x
同时,甲、乙产品的产量为非负的,应有
01≥x ,02≥x
综上,该问题的数学模型(优化模型)为
⎪⎪⎩⎪⎪⎨
⎧≥≤≤+≤++=0
,62826
..43max 212212121x x x x x x x t s x x z (1) 其中,“..t s ”为“subject to ”(受约束于)的缩写。
(2) 模型求解
方法:线性规划的图解法
图解法适用条件:2维优化问题(几何含义:XOY 二维坐标系),即只有两个决策变量。 解 ①可行域图形的确定
LP 模型所有约束条件构成的公共部分。称为可行域图形。
因为0,21≥x x ,可行域在第一象限。第一个约束条件621≤+x x 表示半平面,此半平面是以直线
621≤+x x 为边界的在其左下方第一象限部分。类似地,可求出其余约束条件表示的半平面部分(见
图1)。图中的凸多边形OABCD 即为该例的可行域图形。
图1
凸多边形(包括其边界)上的每一点,都是本例LP 模型的一个可行解。因此凸多边形区域OABCD 是该LP 模型的可行解的集合,称为可行域,可行域中使目标函数达到最大(或最小)的点为最优点,最优点对应的坐标即为LP 的最优解,相应的函数值称为最优值。 ②目标函数的等值线与最优点的确定
考虑本例的目标函数
2143x x z +=
它代表以z 为参数,-3/4为斜率的一簇平行线。
由小到大给z 赋值,如令12,4,0=z 等可得到一组平行线(见图1),而位于同一直线上的点,具有相同的目标函数值,因而称其为等值线。垂直于这组平行线画一直线,取z 值沿此直线递增的方向,即为直线簇 2143x x z +=的法线方向(如图1),其为z 值增加最快的方向。
沿法线方向平行移动直线2143x x z +=,当移动到B 点时,z 值在可行域上达到最大,从而B 为最优点。求出B 点坐标,解
⎩⎨
⎧=+=+6
8
22121x x x x 得4*
1=x ,2*
2=x ,最优值为20max =z 。
故本例的最优生产方案为:日产甲产品4件,乙产品2件,每天可得最大利润20千元。 (3) 图解法求解工具:AutoCAD; MATLAB AutoCAD 步骤:
1) 设置极限(limits ):(-10,-10),(10,10) 2) 设置栅格间距:0.5 3) 打开栅格;
4) 绘制可行域图形(由各个约束条件对应直线构成的闭合凸多边形); 5) 绘制目标函数对应直线(等值线);
6) 沿目标函数法线方向平移目标函数等值线(offset );
7) 确定最优解,利用目标捕捉工具获取最优解对应点坐标(id )。 MATLAB :
函数:linprog 函数(具体参见该函数语法手册) 求解问题:最小化问题minf(x),约束条件为A*x<=b
格式:x=linprog(f,A,b,[],[],lb),lb 为向量X (x1,x2)的下限 实例中目标函数(1)需转换为等效的最小化形式:
2143m in x x z --=
首先输入下列系数: f=[-3;-4];
A=[1 1;1 2;0 2]; b=[6;8;6] lb=[0;0]
然后调用linprog 函数: x=linprog(f,A,b,[],[],lb)