LINGO在多目标规划和最大最小化模型中的应用_第1页
LINGO在多目标规划和最大最小化模型中的应用_第2页
已阅读5页,还剩12页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、LINGO在多目标规划和最大最小化模型中的应用在许多实际问题中,决策者所期望的目标往往不止一个,如电力网络管理部门在制定发电计划时即希望安全系数要大,也希望发电成本要小,这一类问题称为多目标最优化问题或多目标规划问题。一、多目标规划的常用解法多目标规划的解法通常是根据问题的实际背景和特征,设法将多目标规划转化为单目标规划,从而获得满意解,常用的解法有:1主要目标法确定一个主要目标,把次要目标作为约束条件并设定适当的界限值。2线性加权求和法对每个目标按其重要程度赋适当权重W>0,且工®二1,然后把工®f(x)iiiiii作为新的目标函数(其中f(x),i二1,2,p是原

2、来的p个目标)。i3指数加权乘积法设f(x),i二1,2,p是原来的p个目标,令ipZf(x)aii=1其中a为指数权重,把Z作为新的目标函数。i4理想点法先分别求出p个单目标规划的最优解f*,令ih(x)=送(f(x)-f*)2ii然后把它作为新的目标函数。5分层序列法将所有p个目标按其重要程度排序,先求出第一个最重要的目标的最优解,然后在保证前一个目标最优解的前提条件下依次求下一个目标的最优解,一直求到最后一个目标为止。这些方法各有其优点和适用的场合,但并非总是有效,有些方法存在一些不足之处。例如,线性加权求和法确定权重系数时有一定主观性,权重系数取值不同,结果也就不一样。线性加权求和法、

3、指数加权乘积法和理想点法通常只能用于两个目标的单位(量纲)相同的情况,如果两个目标是不同的物理量,它们的量纲不相同,数量级相差很大,则将它们相加或比较是不合适的。二、最大最小化模型在一些实际问题中,决策者所期望的目标是使若干目标函数中最大的一个达到最小(或多个目标函数中最小的一个达到最大)。例如,城市规划中需确定急救中心的位置,希望该中心到服务区域内所有居民点的距离中的最大值达到最小,称为最大最小化模型,这种确定目标函数的准则称为最大最小化原则,在控制论,逼近论和决策论中也有使用。最大最小化模型的目标函数可写成minmaxfi(X)'f2(x):fp(X)maxminf(X),f(X)

4、,/(X)X12p式中X(x,x,,x)t是决策变量。模型的约束条件可以包含线性、非线性的12n等式和不等式约束。这一模型的求解可视具体情况采用适当的方法。三、用LINGO求解多目标规划和最大最小化模型1解多目标规划用LINGO求解多目标规划的基本方法是先确定一个目标函数,求出它的最优解,然后把此最优值作为约束条件,求其他目标函数的最优解。如果将所有目标函数都改成约束条件,则此时的优化问题退化为一个含等式和不等式的方程组。LINGO能够求解像这样没有目标函数只有约束条件的混合组的可行解。有些组合优化问题和网络优化问题,因为变量多,需要很长运算时间才能算出结果,如果设定一个期望的目标值,把目标函

5、数改成约束条件,则几分钟就能得到一个可行解,多试几个目标值,很快就能找到最优解。对于多目标规划,同样可以把多个目标中的一部分乃至全部改成约束条件,取适当的限制值,然后用LINGO求解,从中找出理想的最优解,这样处理的最大优势是求解速度快,节省时间。2解最大最小化问题第一步,先把原来较复杂的目标函数式改写为一个简单的目标函数minC以及p个约束条件:f(X)<C,f(X)<C,f(X)<C12p其他原有的约束条件不变,改写后仍然是一个规划,只是增加了p个约束条件,目标函数的形式较为简单。如果能用LINGO求出它的解,则问题已经解决,如果求解困难,可转入下一步。第二步,取消目标函

6、数,保留上一步由目标函数改成的p个约束条件和所有原来的约束条件,预设C值为某个常数,此时原规划模型不再是规划,它仅仅包含等式和不等式,没有目标函数,是许多约束条件的组合,可以称它为“混合组”。求该混合组的解,其实质是求满足所有约束条件并且使目标函数等于给定值的一组决策变量的值,求出来的结果是可行解,它未必是最优解。在存在可行解的前提下,使目标函数值小的可行解优于使目标函数值大的可行解,使目标函数值越小的可行解越接近最优解。第三步,对具体问题作出分析,对目标函数可能达到的最小值(即C的最小值)作适当估计,然后在此估计值的基础上由大到小改变C的值进行试算,使可行解越来越接近最优解。对于目标函数值离

7、散的情况,不难找到最优解。例:装配线平衡模型。一条装配线含有一系列的工作站,在最终产品的加工过程中每个工作站执行一种或几种特定的任务。装配线周期是指所有工作站完成分配给它们各自的任务所化费时间中的最大值。平衡装配线的目标是为每个工作站分配加工任务,尽可能使每个工作站执行相同数量的任务,其最终标准是装配线周期最短。不适当的平衡装配线将会产生瓶颈有较少任务的工作站将被迫等待其前面分配了较多任务的工作站。问题会因为众多任务间存在优先关系而变得更复杂,任务的分配必须服从这种优先关系。这个模型的目标是最小化装配线周期。有2类约束:要保证每件任务只能也必须分配至一个工作站来加工要保证满足任务间的所有优先关

8、系。例有11件任务(AK)分配到4个工作站(14),任务的优先次序如下图。每件任务所花费的时间如下表。解:用变量x表示任务i(i=A,B,K)分配给工作站k(k=1,2,3,4)的情况,ikx二1表示分配,x二0表示不分配,t.表示完成各项任务所需时间,则目标函ikiki数为minmaxik约束条件(1):每项任务只能且必须分配至一个工作站来做,可以表示为:工x=1,i=1,2,11;ikk=1约束条件(2):各项任务间如果有优先关系,则排在前面的任务i对应的工作站(序号)应当小于(或等于)排在后面的任务j所对应的工作站(序号),即对所有有顺序的任务i<j:为(kx-kx)>0;j

9、kikk=1约束条件(3):x=0或1。ik这是一个非线性规划(目标函数非线性),但可以化为线性规划,增加一个变量,再增加四个约束条件:兰tx<Z,k二1,2,3,4,目标函数变为minZ。iiki=1LING0程序为:model:!装配线平衡模型;sets:!任务集合,有一个完成时间属性t;task/ABCDEFGHIJK/:t;!任务之间的优先关系集合(A必须完成才能开始B,等等);pred(task,task)/A,BB,CC,FC,GF,JG,JJ,KD,EE,HE,IH,JI,J/;!工作站集合;station/1.4/;tsx(task,station):x;!x是派生集合t

10、xs的一个属性。如果x(i,k)=l,则表示第i个任务指派给第k个工作站完成;endsetsdata:!任务ABCDEFGHIJK的完成时间估计如下;T=4511950151212121289;enddata!当任务超过15个时,模型的求解将变得很慢;!每一个作业必须指派到一个工作站,即满足约束;for(task(i):sum(station(k):x(i,k)=1);!对于每一个存在优先关系的作业对来说,前者对应的工作站i必须小于后者对应的工作站j,即满足约束;for(pred(i,j):sum(station(k):k*x(j,k)-k*x(i,k)>=0);!对于每一个工作站来说,

11、其花费时间必须不大于装配线周期;for(station(k):sum(txs(i,k):t(i)*x(i,k)<=cyctime);!目标函数是最小化转配线周期;min=cyctime;!指定x(i,j)为0/1变量;for(txs:bin(x);end计算的部分结果为ValueReducedCostGlobaloptimalsolutionfoundatiteration:12550bjectivevalue:VariableCYCTIMEX(A,1)X(A,2)X(A,3)X(A,4)X(B,1)X(B,2)X(B,3)X(B,4)X(C,1)X(C,2)X(C,3)X(C,4)X(

12、D,1)X(D,2)X(D,3)X(D,4)X(E,1)X(E,2)X(E,3)X(E,4)X(F,1)X(F,2)X(F,3)X(F,4)X(G,1)X(G,2)X(G,3)X(G,4)X(H,1)X(H,2)X(H,3)X(H,4)X(I,1)X(I,2)X(I,3)X(I,4)X(J,1)X(J,2)X(J,3)X(J,4)X(K,1)X(K,2)X(K,3)X(K,4)例:工件的安装与排序问题。某设备由24个工件组成,安装时需要按工艺要求重新排序。I.设备的24个工件均匀分布在等分成六个扇形区域的一圆盘的边缘上,放在每个扇形区域的4个工件总重量与相邻区域的4个工件总重量之差不允许超过一

13、定值。II.工件的排序不仅要对重量差有一定的要求,还要满足体积的要求,即两相邻工件的体积差应尽量大,使得相邻工件体积差不小于一定值。问题1:按重量排序算法;问题2:按重量和体积排序算法;请按下表中的工件数据(重量单位:g,体积单位:cm3)进行实时计算。表工件的重量和体积数据序号12345678910重量348352347(349347330329329体积102105"1061049498序号11121314151617181920重量329347348348333330体积98991051049797序号21222324重量332体积9998*解:对问题1和2分别求解。(1)对问

14、题1,仅考虑重量进行排序。用i=1,2,24表示24个工件,W表示各工件的重量,j=1,2,6表示圆盘i上的6个扇区,D表示各扇区上4个工件的总重量,X是0-1型决策变量,表示jij工件i是否放在扇区j上,X=1表示放,X=0表示不放。ijij每个工件必须且只能放到一个位置上,每个位置放一个且仅放一个工件,每个扇区放4个工件,重量之和为D。目标函数是:相邻扇区上的D之差的(绝jj对值)最大值达到最小,建立0-1规划模型如下:minmax|D1<k<6k+1-D1k艺X=4,j=1,2,6iji=1YX=1,i=1,2,24<可j=1D=YWX,j=1,2,6,D=Djiij7

15、1i=1X=0或1ij模型中的D是虚拟的,D=D使得1-6-1扇区构成圆盘,引入D的目的只7717是使目标函数的表达式简洁。该0-1规划模型的目标函数是相邻扇区上的D之差j(绝对值)的最大值达到最小,属于最大最小化模型。按照前面所述把规划模型转化为混合组的步骤,去掉目标函数,增加约束条件:IDDl<C,j=1,2,6j+1j保留原来的约束条件,并令C为某个常数,原规划就转化成了一个包含150个变量,36个等式约束,6个不等式约束的非线性混合组。由于24个工件的重量数据多数为整数,部分有小数,小数的最小计数单位为,所以相邻扇区重量之差的基本计数单位是,即|DD|的可能取值是离散的。j+1j

16、令C取0,1,2,中的具体值(C值越小越好)。用LING0编程求解,不难求得当C二时有可行解,因C=0时无可行解,故C=时的可行解就是最优解。用第一组工件的重量数据,编写LINGO程序如下:model:sets:gj/1.24/:w;shq/1.6/:d;bl(gj,shq):x;endsetsdata:w=348352347349347330329329329347348348333330332;enddatafor(bl:bin(x);c=;!常数C可以设定不同的值试一试;for(gj(i):sum(shq(j):x(i,j)=1);for(shq(j):sum(gj(i):x(i,j)=

17、4);&for(shq(j):d(j)=sum(gj(i):w(i)*x(i,j);for(shq(j)|j#lt#6:d(j+1)-d(j)<=c);for(shq(j)|j#lt#6:d(j+1)-d(j)>=-c);d(1)-d(6)<=c;d(1)-d(6)>=-c;end运行结果如下:Feasiblesolutionfoundatiteration:15994ValueVariable】CW(1)W(2)W(3)W(4)W(5)W(6)W(7)W(8)W(9)W(10)W(11)W(12)W(13)W(14)W(15)W(16)W(17)W(18)W(

18、19)W(20)W(21)W(22)W(23)W(24)D(1)D(2)D(3)D(4)D(5)D(6)X(1,1)X(1,2)X(1,3)X(1,4)X(1,5)X(1,6)X(2,1)X(2,2)X(2,3)X(2,4)X(2,5)X(2,6)X(3,1)X(3,2)X(3,3)X(3,4)X(3,5)X(3,6)X(4,1)X(4,2)X(4,3)X(4,4)X(4,5)X(4,6)|X(5,1)X(5,2)X(5,3)X(5,4)X(5,5)X(5,6)X(6,1)X(6,2)X(6,3)X(6,4)X(6,5)¥X(6,6)X(7,1)X(7,2)X(7,3)X(7,4)X

19、(7,5)X(7,6)X(8,1)X(8,2)X(8,3)X(8,4)(X(8,5)X(8,6)X(9,1)X(9,2)X(9,3)X(9,4)X(9,5)X(9,6)X(10,1)X(10,2)X(10,3)X(10,4)X(10,5)X(10,6)X(11,1)X(11,2)X(11,3)X(11,4)X(11,5)X(11,6)X(12,1)X(12,2)X(12,3)X(12,4)X(12,5)X(12,6)X(13,1)X(13,2)X(13,3)X(13,4)X(13,5)X(13,6)X(14,1)X(14,2)X(14,3)X(14,4)X(14,5)X(14,6)X(15,1

20、)X(15,2)X(15,3)X(15,4)X(15,5)X(15,6)X(16,1)X(16,2)X(16,3)X(16,4)X(16,5)X(16,6)X(17,1)X(17,2)X(17,3)X(17,4)X(17,5)X(17,6)X(18,1)X(18,2)X(18,3)X(18,4)X(18,5)X(18,6)X(19,1)X(19,2)X(19,3)X(19,4)X(19,5)X(19,6)X(20,1)X(20,2)X(20,3)X(20,4)X(20,5)X(20,6)X(21,1)X(21,2)X(21,3)X(21,4)X(21,5)X(21,6)X(22,1)X(22,2)X(22,3)X(22,4)X(22,5)X(22,6)X(23,1)X(23,2)X(23,3)X(23,4)X(23,5)X(23,6)X(24,1)X(24,2)X(24,3)X(24,4)X(24,5)X(24,6)由此求出一种放置方案(答案不唯一),见下表:扇区四五六工件9,13,1T64,52?103,1114,1517,247,128,2318,2016,1921,22总重量135713571357(2)对问题2,既考虑重

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论