2019年LINGO在多目标规划和最大最小化模型中的应用
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
LINGO 在多目标规划和最大最小化模型中的应用
在许多实际问题中,决策者所期望的目标往往不止一个,如电力网络管理部门在制定发电计划时即希望安全系数要大,也希望发电成本要小,这一类问题称为多目标最优化问题或多目标规划问题。
一、多目标规划的常用解法
多目标规划的解法通常是根据问题的实际背景和特征,设法将多目标规划转化为单目标规划,从而获得满意解,常用的解法有:
1.主要目标法
确定一个主要目标,把次要目标作为约束条件并设定适当的界限值。
2.线性加权求和法
对每个目标按其重要程度赋适当权重0≥i ω,且1=∑i i ω,然后把)
(x f i i
i ∑ω作为新的目标函数(其中p i x f i ,,2,1),( =是原来的p 个目标)。
3.指数加权乘积法
设p i x f i ,,2,1),( =是原来的p 个目标,令
∏==p i a i i
x f Z 1)]([
其中i a 为指数权重,把Z 作为新的目标函数。
4.理想点法
先分别求出p 个单目标规划的最优解*i f ,令
∑-=2*))(()(i i f x f x h
然后把它作为新的目标函数。
5.分层序列法
将所有p 个目标按其重要程度排序,先求出第一个最重要的目标的最优解,然后在保证前一个目标最优解的前提条件下依次求下一个目标的最优解,一直求到最后一个目标为止。
这些方法各有其优点和适用的场合,但并非总是有效,有些方法存在一些不
足之处。例如,线性加权求和法确定权重系数时有一定主观性,权重系数取值不同,结果也就不一样。线性加权求和法、指数加权乘积法和理想点法通常只能用于两个目标的单位(量纲)相同的情况,如果两个目标是不同的物理量,它们的量纲不相同,数量级相差很大,则将它们相加或比较是不合适的。
二、最大最小化模型
在一些实际问题中,决策者所期望的目标是使若干目标函数中最大的一个达到最小(或多个目标函数中最小的一个达到最大)。例如,城市规划中需确定急救中心的位置,希望该中心到服务区域内所有居民点的距离中的最大值达到最小,称为最大最小化模型,这种确定目标函数的准则称为最大最小化原则,在控制论,逼近论和决策论中也有使用。
最大最小化模型的目标函数可写成
)}(,),(),(max{min 21X f X f X f p X
或
)}(,),(),(min{max 21X f X f X f p X
式中T n x x x X ),,,(21 是决策变量。模型的约束条件可以包含线性、非线性的等式和不等式约束。这一模型的求解可视具体情况采用适当的方法。
三、用LINGO 求解多目标规划和最大最小化模型
1.解多目标规划
用LINGO 求解多目标规划的基本方法是先确定一个目标函数,求出它的最优解,然后把此最优值作为约束条件,求其他目标函数的最优解。如果将所有目标函数都改成约束条件,则此时的优化问题退化为一个含等式和不等式的方程组。LINGO 能够求解像这样没有目标函数只有约束条件的混合组的可行解。有些组合优化问题和网络优化问题,因为变量多,需要很长运算时间才能算出结果,如果设定一个期望的目标值,把目标函数改成约束条件,则几分钟就能得到一个可行解,多试几个目标值,很快就能找到最优解。对于多目标规划,同样可以把多个目标中的一部分乃至全部改成约束条件,取适当的限制值,然后用LINGO 求解,从中找出理想的最优解,这样处理的最大优势是求解速度快,节省时间。
2.解最大最小化问题
第一步,先把原来较复杂的目标函数式改写为一个简单的目标函数
C min
以及p 个约束条件:
C X f C X f C X f p ≤≤≤)(,,)(,)(21
其他原有的约束条件不变,改写后仍然是一个规划,只是增加了p 个约束条件,目标函数的形式较为简单。如果能用LINGO 求出它的解,则问题已经解决,如果求解困难,可转入下一步。
第二步,取消目标函数,保留上一步由目标函数改成的p 个约束条件和所有原来的约束条件,预设C 值为某个常数,此时原规划模型不再是规划,它仅仅包含等式和不等式,没有目标函数,是许多约束条件的组合,可以称它为“混合组”。求该混合组的解,其实质是求满足所有约束条件并且使目标函数等于给定值的一组决策变量的值,求出来的结果是可行解,它未必是最优解。在存在可行解的前提下,使目标函数值小的可行解优于使目标函数值大的可行解,使目标函数值越小的可行解越接近最优解。
第三步,对具体问题作出分析,对目标函数可能达到的最小值(即C 的最小值)作适当估计,然后在此估计值的基础上由大到小改变C 的值进行试算,使可行解越来越接近最优解。对于目标函数值离散的情况,不难找到最优解。
例:装配线平衡模型。一条装配线含有一系列的工作站,在最终产品的加工过程中每个工作站执行一种或几种特定的任务。装配线周期是指所有工作站完成分配给它们各自的任务所化费时间中的最大值。平衡装配线的目标是为每个工作站分配加工任务,尽可能使每个工作站执行相同数量的任务,其最终标准是装配线周期最短。不适当的平衡装配线将会产生瓶颈——有较少任务的工作站将被迫等待其前面分配了较多任务的工作站。
问题会因为众多任务间存在优先关系而变得更复杂,任务的分配必须服从这种优先关系。
这个模型的目标是最小化装配线周期。有2类约束:
① 要保证每件任务只能也必须分配至一个工作站来加工;
(A) (B) (C)
(F)
(G)
(K) (J)
(I) (H)
(E)
(D) ② 要保证满足任务间的所有优先关系。
例 有11件任务(A —K )分配到4个工作站(1—4),任务的优先次序如下图。每件任务所花费的时间如下表。
解:用变量ik x 表示任务),,,(K B A i i =分配给工作站)4,3,2,1(=k k 的情况,1=ik x 表示分配,0=ik x 表示不分配,i t 表示完成各项任务所需时间,则目标函数为
∑=≤≤11
141max min i ik i k x t 约束条件(1):每项任务只能且必须分配至一个工作站来做,可以表示为: 11,,2,1,141 ==∑=i x
k ik ;
约束条件(2):各项任务间如果有优先关系,则排在前面的任务i 对应的工作站(序号)应当小于(或等于)排在后面的任务j 所对应的工作站(序号),即对所有有顺序的任务j i <:0)(4
1≥-∑=k ik jk kx kx ;
约束条件(3):10或=ik x 。
这是一个非线性规划(目标函数非线性),但可以化为线性规划,增加一个变量,再增加四个约束条件:4,3,2,1,11
1=≤∑=k Z x t i ik i ,目标函数变为Z min 。
LINGO 程序为:
model :
!装配线平衡模型;
sets :