LINGO在多目标规划和最大最小化模型中的应用(共14页).doc
《LINGO在多目标规划和最大最小化模型中的应用(共14页).doc》由会员分享,可在线阅读,更多相关《LINGO在多目标规划和最大最小化模型中的应用(共14页).doc(14页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、精选优质文档-倾情为你奉上LINGO在多目标规划和最大最小化模型中的应用在许多实际问题中,决策者所期望的目标往往不止一个,如电力网络管理部门在制定发电计划时即希望安全系数要大,也希望发电成本要小,这一类问题称为多目标最优化问题或多目标规划问题。一、多目标规划的常用解法多目标规划的解法通常是根据问题的实际背景和特征,设法将多目标规划转化为单目标规划,从而获得满意解,常用的解法有:1主要目标法确定一个主要目标,把次要目标作为约束条件并设定适当的界限值。2线性加权求和法对每个目标按其重要程度赋适当权重,且,然后把作为新的目标函数(其中是原来的个目标)。3指数加权乘积法设是原来的个目标,令其中为指数权
2、重,把作为新的目标函数。4理想点法先分别求出个单目标规划的最优解,令然后把它作为新的目标函数。5分层序列法将所有个目标按其重要程度排序,先求出第一个最重要的目标的最优解,然后在保证前一个目标最优解的前提条件下依次求下一个目标的最优解,一直求到最后一个目标为止。这些方法各有其优点和适用的场合,但并非总是有效,有些方法存在一些不足之处。例如,线性加权求和法确定权重系数时有一定主观性,权重系数取值不同,结果也就不一样。线性加权求和法、指数加权乘积法和理想点法通常只能用于两个目标的单位(量纲)相同的情况,如果两个目标是不同的物理量,它们的量纲不相同,数量级相差很大,则将它们相加或比较是不合适的。二、最
3、大最小化模型在一些实际问题中,决策者所期望的目标是使若干目标函数中最大的一个达到最小(或多个目标函数中最小的一个达到最大)。例如,城市规划中需确定急救中心的位置,希望该中心到服务区域内所有居民点的距离中的最大值达到最小,称为最大最小化模型,这种确定目标函数的准则称为最大最小化原则,在控制论,逼近论和决策论中也有使用。最大最小化模型的目标函数可写成或 式中是决策变量。模型的约束条件可以包含线性、非线性的等式和不等式约束。这一模型的求解可视具体情况采用适当的方法。三、用LINGO求解多目标规划和最大最小化模型1解多目标规划用LINGO求解多目标规划的基本方法是先确定一个目标函数,求出它的最优解,然
4、后把此最优值作为约束条件,求其他目标函数的最优解。如果将所有目标函数都改成约束条件,则此时的优化问题退化为一个含等式和不等式的方程组。LINGO能够求解像这样没有目标函数只有约束条件的混合组的可行解。有些组合优化问题和网络优化问题,因为变量多,需要很长运算时间才能算出结果,如果设定一个期望的目标值,把目标函数改成约束条件,则几分钟就能得到一个可行解,多试几个目标值,很快就能找到最优解。对于多目标规划,同样可以把多个目标中的一部分乃至全部改成约束条件,取适当的限制值,然后用LINGO求解,从中找出理想的最优解,这样处理的最大优势是求解速度快,节省时间。2解最大最小化问题第一步,先把原来较复杂的目
5、标函数式改写为一个简单的目标函数 以及个约束条件: 其他原有的约束条件不变,改写后仍然是一个规划,只是增加了个约束条件,目标函数的形式较为简单。如果能用LINGO求出它的解,则问题已经解决,如果求解困难,可转入下一步。第二步,取消目标函数,保留上一步由目标函数改成的个约束条件和所有原来的约束条件,预设值为某个常数,此时原规划模型不再是规划,它仅仅包含等式和不等式,没有目标函数,是许多约束条件的组合,可以称它为“混合组”。求该混合组的解,其实质是求满足所有约束条件并且使目标函数等于给定值的一组决策变量的值,求出来的结果是可行解,它未必是最优解。在存在可行解的前提下,使目标函数值小的可行解优于使目
6、标函数值大的可行解,使目标函数值越小的可行解越接近最优解。第三步,对具体问题作出分析,对目标函数可能达到的最小值(即C的最小值)作适当估计,然后在此估计值的基础上由大到小改变C的值进行试算,使可行解越来越接近最优解。对于目标函数值离散的情况,不难找到最优解。例:装配线平衡模型。一条装配线含有一系列的工作站,在最终产品的加工过程中每个工作站执行一种或几种特定的任务。装配线周期是指所有工作站完成分配给它们各自的任务所化费时间中的最大值。平衡装配线的目标是为每个工作站分配加工任务,尽可能使每个工作站执行相同数量的任务,其最终标准是装配线周期最短。不适当的平衡装配线将会产生瓶颈有较少任务的工作站将被迫
7、等待其前面分配了较多任务的工作站。问题会因为众多任务间存在优先关系而变得更复杂,任务的分配必须服从这种优先关系。这个模型的目标是最小化装配线周期。有2类约束: 要保证每件任务只能也必须分配至一个工作站来加工; 要保证满足任务间的所有优先关系。例 有11件任务(AK)分配到4个工作站(14),任务的优先次序如下图。每件任务所花费的时间如下表。(A)(B)(C)(F)(G)(K)(J)(I)(H)(E)(D)任务ABCDEFGHIJK时间4511950151212121289解:用变量表示任务分配给工作站的情况,表示分配,表示不分配,表示完成各项任务所需时间,则目标函数为约束条件(1):每项任务只
8、能且必须分配至一个工作站来做,可以表示为:;约束条件(2):各项任务间如果有优先关系,则排在前面的任务对应的工作站(序号)应当小于(或等于)排在后面的任务所对应的工作站(序号),即对所有有顺序的任务:;约束条件(3):。这是一个非线性规划(目标函数非线性),但可以化为线性规划,增加一个变量,再增加四个约束条件:,目标函数变为。LINGO程序为:model: !装配线平衡模型;sets: !任务集合,有一个完成时间属性t; task/ A B C D E F G H I J K/:t; !任务之间的优先关系集合(A 必须完成才能开始B,等等); pred(task,task)/ A,B B,C
9、C,F C,G F,J G,J J,K D,E E,H E,I H,J I,J /; ! 工作站集合; station/1.4/; tsx(task, station):x; ! x是派生集合txs的一个属性。如果x(i,k)1,则表示第i个任务 指派给第k个工作站完成;endsetsdata: !任务A B C D E F G H I J K的完成时间估计如下; T = 45 11 9 50 15 12 12 12 12 8 9;enddata ! 当任务超过15个时,模型的求解将变得很慢; !每一个作业必须指派到一个工作站,即满足约束; for(task(i): sum(station(k
10、):x(i,k) = 1); !对于每一个存在优先关系的作业对来说,前者对应的工作站i必须小于后 者对应的工作站j,即满足约束; for(pred(i,j): sum(station(k):k*x(j,k)-k*x(i,k)= 0); !对于每一个工作站来说,其花费时间必须不大于装配线周期; 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计算的部分结果为 Global optimal solution fou
11、nd at iteration: 1255 Objective value: 50.00000 Variable Value Reduced Cost CYCTIME 50.00000 0. X( A, 1) 1. 0. X( A, 2) 0. 0. X( A, 3) 0. 45.00000 X( A, 4) 0. 0. X( B, 1) 0. 0. X( B, 2) 0. 0. X( B, 3) 1. 11.00000 X( B, 4) 0. 0. X( C, 1) 0. 0. X( C, 2) 0. 0. X( C, 3) 0. 9. X( C, 4) 1. 0. X( D, 1) 0.
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- LINGO 多目标 规划 最大 最小化 模型 中的 应用 14
限制150内