目标规划模型的实例 | 您所在的位置:网站首页 › 产品生产决策例题解析怎么写 › 目标规划模型的实例 |
目标规划模型的介绍: 目标规划模型:求解思路、序贯式算法 : https://blog.csdn.net/qq_29831163/article/details/89488932 前面介绍了目标规划的求解方法,这里再介绍几个目标规划模型的模型,帮助我 们进一步了解目标规划模型的建立和求解过程。 目录 例 6 三种型号电脑的生产计划安排问题 例7 运费最小的调配方案 例8 根据某产品在各地的供需量安排调运方案 数据包络分析 2.1 数据包络分析的基本概念 (1)相对有效评价问题 例9 多指标评价问题 (2)数据包络分析的 什么是 DEA有效? (3) 解 建立目标约束。 (1)装配线正常生产 (2)销售目标 (3)加班限制 写出目标规划的数学模型 写出相应的LINGO程序如下: model: sets: level/1..5/:p,z,goal; variable/1..3/:x; s_con_num/1..8/:g,dplus,dminus; s_con(s_con_num,variable):c; obj(level,s_con_num)/1 1,2 2,2 3,2 4,3 8,4 5,4 6,4 7,5 1/:wplus,wminus; endsets data: ctr=?; goal=? ? ? ? 0; g=1700 50 50 80 100 120 100 1900; c=5 8 12 1 0 0 0 1 0 0 0 1 1 0 0 0 1 0 0 0 1 5 8 12; wplus=0 0 0 0 1 0 0 0 1; wminus=1 20 18 21 0 20 18 21 0; enddata min=@sum(level:p*z); p(ctr)=1; @for(level(i)|i#ne#ctr:p(i)=0); @for(level(i):z(i)=@sum(obj(i,j):wplus(i,j)*dplus(j)+wminus(i,j)* dminus(j))); @for(s_con_num(i):@sum(variable(j):c(i,j)*x(j))+dminus(i)-dplus(i)=g(i)); @for(level(i)|i #lt# @size(level):@bnd(0,z(i),goal)); End已知三个工厂生产的产品供应给四个客户,各工厂生产量、用户需求量及从 各工厂到用户的单位产品的运输费用如下表所示,其中总生产量小于总需求量。 (1)求总运费最小的运输问题的调度方案。 (2)上级部门经研究后,制定了调配方案的8项指标,并规定了重要性的次序。 第一目标:用户4为重要部门,需求量必须全部满足; 第二目标:供应用户1的产品中,工厂3的产品不少于100个单位; 第三目标:每个用户的满足率不低于80%; 第四目标:应尽量满足各用户的需求; 第五目标:新方案的总运费不超过原运输问题的调度方案的10%; 第六目标:因道路限制,工厂2到用户4的路线应尽量避免运输任务; 第七目标:用户1和用户3的满足率应尽量保持平衡; 第八目标:力求减少总运费。 请列出相应的目标规划模型,并用LINGO程序求解。 解 (1)求解原运输问题 由于总生产量小于总需求量,虚设工厂4,生产量为100个单位,到各个用户间的运 费单价为0。用LINGO软件求解,得到总运费是2950元,运输方案如下表所示。 (2)下面按照目标的重要性的等级列出目标规划的约束和目标函数。 编写LINGO程序如下: model: sets: level/1..8/:p,z,goal; s_con_num/1..13/:g,dplus,dminus; plant/1..3/:a; customer/1..4/:b; routes(plant,customer):c,x; obj(level,s_con_num)/1 9,2 1,3 2,3 3,3 4,3 5,4 6,4 7,4 8,4 9,5 10,6 11,7 12,8 13/:wplus,wminus; endsets data: ctr=?; goal=? ? ? ? ? ? ? 0; a=300 200 400; b=200 100 450 250; c=5 2 6 7 3 5 4 6 4 5 2 3; wplus=0 0 0 0 0 0 0 0 0 0 1 1 1 1; wminus=1 1 1 1 1 1 1 1 1 1 0 0 1 0; enddata min=@sum(level:p*z); p(ctr)=1; @for(level(i)|i#ne#ctr:p(i)=0); @for(level(i):z(i)=@sum(obj(i,j):wplus(i,j)*dplus(j)+wminus(i,j)* dminus(j))); @for(plant(i):@sum(customer(j):x(i,j)) |
CopyRight 2018-2019 实验室设备网 版权所有 |