您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 管理学资料 > 目标规划模型与一些优化问题的Matlab求解
目标规划方法与优化问题的Matlab求解内容提要8.1线性规划与目标规划8.2目标规划的数学模型8.3目标规划模型的实例8.4数据包络分析8.1线性规划与目标规划线性规划通常考虑一个目标函数(问题简单)目标规划考虑多个目标函数(问题复杂)线性规划目标规划发展演变甲乙设备的生产能力/hA/(h/件)2212B/(h/件)4016C/(h/件)0515赢利/(元/件)200300某企业生产甲、乙两种产品,需要用到A,B,C三种设备,关于产品的盈利与使用设备的工时及限制如下表所示。例8.1生产安排问题问该企业应如何安排生产,使得在计划期内总利润最大?1.线性规划建模该例8.1是一个线性规划问题,直接考虑它的线性规划模型设甲、乙产品的产量分别为x1,x2,建立线性规划模型:;30020021xxzMax,1222..21xxts.0,,155,1642121xxxx用Lindo或Lingo软件求解,得到最优解.1500,3,3*21zxx2.目标规划建模在上例8.1中,企业的经营目标不仅要考虑利润,还需要考虑多个方面,因此增加下列因素(目标):•力求使利润指标不低于1500元•考虑到市场需求,甲、乙两种产品的产量比应尽量保持1:2•设备A为贵重设备,严格禁止超时使用•设备C可以适当加班,但要控制;设备B既要求充分利用,又尽可能不加班,在重要性上,设备B是设备C的3倍从上述问题可以看出,仅用线性规划方法是不够的,需要借助于目标规划的方法进行建模求解HIMLIPHIW费用(万元/分)足球赛中插播(万人/分)710510系列剧中插播(万人/分)3546某汽车销售公司委托一个广告公司在电视上为其做广告,汽车销售公司提出三个目标:例8.2汽车广告费问题广告公司必须决定购买两种类型的电视广告展播各多少分钟?第一个目标,至少有40万高收入的男性公民(记为HIM)看到这个广告第二个目标,至少有60万一般收入的公民(记为LIP)看到这个广告第三个目标,至少有35万高收入的女性公民(记为HIW)看到这个广告广告公司可以从电视台购买两种类型的广告展播:足球赛中插播广告和电视系列剧插播广告。广告公司最多花费60万元的电视广告费。每一类广告展播每一分钟的花费及潜在的观众人数如下表所示3.尝试线性规划建模对于例8.2考虑建立线性规划模型设x1,x2分别是足球赛和电视系列剧中插播的分钟数,按照要求,可以列出相应的线性规划模型;0021xxMin,60610..21xxts.0,,3545,60510,403721212121xxxxxxxx用Lindo或Lingo软件求解,会发现该问题不可行。(可以任意目标)4.线性规划建模局限性•线性规划要求所有求解的问题必须满足全部的约束,而实际问题中并非所有约束都需要严格的满足;•线性规划只能处理单目标的优化问题,而对一些次目标只能转化为约束处理。但在实际问题中,目标和约束好似可以相互转化的,处理时不一定要严格区分;•线性规划在处理问题时,将各个约束(也可看作目标)的地位看成同等重要,而在实际问题中,各个目标的重要性即有层次上的差别,也有在同一层次上不同权重的差别•线性规划寻求最优解,而许多实际问题只需要找到满意解就可以了。8.2目标规划的数学模型为了克服线性规划的局限性,目标规划采用如下手段:1.设置偏差变量;2.统一处理目标与约束;3.目标的优先级与权系数。目标规划的基本概念1.设置偏差变量用偏差变量(Deviationalvariables)来表示实际值与目标值之间的差异,令----超出目标的差值,称为正偏差变量----未达到目标的差值,称为负偏差变量其中与至少有一个为0约定如下:•当实际值超过目标值时,有•当实际值未达到目标值时,有•当实际值与目标值一致时,有ddddd;0,0dd;0,0dd.0,0dd2.统一处理目标与约束在目标规划中,约束可分两类,一类是对资源有严格限制的,称为刚性约束(HardConstraint);例如在用目标规划求解例8.1中设备A禁止超时使用,则有刚性约束另一类是可以不严格限制的,连同原线性规划的目标,构成柔性约束(SoftConstraint).例如在求解例8.1中,我们希望利润不低于1500元,则目标可表示为.122221xx.1500300200};min{21ddxxd求解例8.1中甲、乙两种产品的产量尽量保持1:2的比例,则目标可表示为设备C可以适当加班,但要控制,则目标可表示为.02};min{21ddxxdd.155};min{2ddxd设备B既要求充分利用,又尽可能不加班,则目标可表示为.164};min{1ddxdd从上面的分析可以看到:•如果希望不等式保持大于等于,则极小化负偏差;•如果希望不等式保持小于等于,则极小化正偏差;•如果希望保持等式,则同时极小化正、负偏差.3.目标的优先级与权系数在目标规划模型中,目标的优先分为两个层次,第一个层次是目标分成不同的优先级,在计算目标规划时,必须先优化高优先级的目标,然后再优化低优先级的目标。通常以P1,P2,...表示不同的因子,并规定PkPk+1,第二个层次是目标处于同一优先级,但两个目标的权重不一样,因此两目标同时优化,用权系数的大小来表示目标重要性的差别。解在例8.1中设备A是刚性约束,其于是柔性约束.首先,最重要的指标是企业的利润,将它的优先级列为第一级;其次,甲、乙两种产品的产量保持1:2的比例,列为第二级;再次,设备B和C的工作时间要有所控制,列为第三级,设备B的重要性是设备C的三倍,因此它们的权重不一样。由此可以得到相应的目标规划模型。目标规划模型的建立例8.3用目标规划方法求解例8.1);433()(min43332221dddPddPdPz,1222..21xxts.4,3,2,1,0,,,,155,164,02,15003002002144233122211121iddxxddxddxddxxddxxii目标规划的一般模型目标规划模型的一般数学表达式为:;)(min11ljjkjjkjqkkdwdwPz,,,2,1,),(..1mibxatsijnjij,,,2,1,0,,,,2,1,0,,,2,1,1liddnjxligddxciijiiijnjij求解目标规划的序贯式算法其算法是根据优先级的先后次序,将目标规划问题分解成一系列的单目标规划问题,然后再依次求解。算法8.1对于k=1,2,…,q,求解单目标问题;)(min1ljjkjjkjdwdwz,,,2,1,),(..1mibxatsijnjij,,,2,1,0,,,,2,1,0,1,,2,1,)(,,,2,1,*11liddnjxkszdwdwligddxciijljjsjjsjiiijnjij解因为每个单目标问题都是一个线性规划问题,因此可以采用LINDO软件进行求解。按照算法8.1和例8.3目标规划模型编写单个的线性规划求解程序。求第一级目标企业利润最大,列出LINDO程序。程序名:exam0804a.ltx例8.4用算法8.1求解例8.3MINDMINUS1SUBJECTTO2X1+2X2=12200X1+300X2-DPLUS1+DMINUS1=15002X1-X2-DPLUS2+DMINUS2=04X1-DPLUS3+DMINUS3=165X2-DPLUS4+DMINUS4=15END求解结果可见程序演示目标解因求出的目标函数的最优值为0,即第一级偏差为0.再求第二级目标,列出其LINDO程序。程序名:exam0804b.ltx例8.4用算法8.1求解例8.3MINDPLUS2+DMINUS2SUBJECTTO2X1+2X2=12200X1+300X2-DPLUS1+DMINUS1=15002X1-X2-DPLUS2+DMINUS2=04X1-DPLUS3+DMINUS3=165X2-DPLUS4+DMINUS4=15DMINUS1=0END求解结果可见程序演示修改的目标增加的约束解因求出的目标函数的最优值仍为0,即第二级偏差仍为0.继续求第三级目标,列出其LINDO程序。程序名:exam0804c.ltx例8.4用算法8.1求解例8.3MIN3DPLUS3+3DMINUS3+DPLUS4SUBJECTTO2X1+2X2=12200X1+300X2-DPLUS1+DMINUS1=15002X1-X2-DPLUS2+DMINUS2=04X1-DPLUS3+DMINUS3=165X2-DPLUS4+DMINUS4=15DMINUS1=0DPLUS2+DMINUS2=0END求解结果可见程序演示求出的目标函数的最优值为29,即第三级偏差为29,分析结果,x1为2,x2为4,DPLUS1为100,因此目标规划的最优解为x*=(2,4),最优利润为1600.修改的目标增加的约束解按照算法8.1和例8.3目标规划模型编写LINGO求解程序,列出其LINGO程序,程序名:exam0805.lg4例8.5(继例8.4)用算法8.1求解例8.3的LINGO程序程序运行说明,分三次求解:在做第一级目标计算时,P(1),P(2)和P(3)分别输入1,0和0,Goal(1)和Goal(2)输入两个较大的数,表示这两项约束不起作用;在做第二级目标计算时,P(1),P(2)和P(3)分别输入0,1和0,由于第一级的偏差为0,因此Goal(1)为0,Goal(2)输入一个较大的数;在做第三级计算时,P(1),P(2)和P(3)分别输入0,0和1,由于第一级、第二级的偏差为0,因此Goal(1)和Goal(2)的输入值也为0。结果可以参见程序演示!!!由于在例8.4中虽然给出了目标规划问题的最优解,但需要连续编几个LINDO程序,在使用时不方便,下面使用LINGO软件,编写一个通用程序。8.3目标规划模型的实例前面介绍了目标规划的求解方法,接着再介绍几个目标规划模型的实例。某音像商店有5名全职售货员和4名兼职售货员。全职售货员每月工作160小时,兼职售货员每月工作80小时。根据过去的工作记录,全职售货员每小时销售CD25张,平均每小时工资15元,加班工资每小时22.5元。兼职售货员每小时销售CD10张,平均每小时工资10元,加班工资每小时10元。现在预测下月CD销售量为27500张,商店每周开门营业6天,所以可能要加班。另每出售一张CD盈利1.5元。例8.6该商店经理认为,保持稳定的就业水平加上必要的加班,比不加班但就业水平不稳定要好。但全职售货员如果加班过多,就会因疲劳过度而造成效率下降,因此不允许每月加班超过100小时。建立相应的目标规划模型,并运用LINGO软件进行求解。解首先建立目标约束的优先级。P1:下月的CD销售量达到27500张;P2:限制全职售货员加班时间不超过100小时;P3:保持全体售货员充分就业,因为充分工作是良好劳资关系的重要因素,但对全职售货员要比兼职售货员加倍优先考虑;P4:尽量减少加班时间,但对两种售货员区别对待,优先权因子由他们对利润的贡献而定。例8.6例8.6第二,建立目标约束。(1)销售目标约束。设x1:全体全职售货员下月的工作时间;x2:全体兼职售货员下月的工作时间;:达不到销售目标的偏差;:超过销售目标的偏差。希望下月的销售量超过27500张CD片,因此销售目标为1d1d.275001025};min{11211ddxxd例8.6.320,800};2min{33222132ddxddxdd第二,建立目标约束。(2)正常工作时间约束,
本文标题:目标规划模型与一些优化问题的Matlab求解
链接地址:https://www.777doc.com/doc-644184 .html