当前位置:文档之家› lingo求解多目标规划例题

lingo求解多目标规划例题

lingo求解多目标规划例题
lingo求解多目标规划例题

实验二:目标规划

一、实验目的

目标规划是由线性规划发展演变而来的,线性规划考虑的是只有一个目标函数的问题,而实际问题中往往需要考虑多个目标函数,这些目标不仅有主次关系,而且有的还相互矛盾。这些问题用线性规划求解就比较困难,因而提出了目标规划。熟悉目标规划模型的建立,求解过程及结果分析。

二、目标规划的一般模型

设是目标规划的决策变量,共有个约束是国内刚性约束,可能是等式约束,也可能是不等式约束。设有个柔性目标约束,其目标规划约束的偏差是。设有个优先级别,分别为。在同一个优先级中,有不同的权重,分别记为。因此目标规划模型的一般数学表达式为:min

s.t.

三、实验设备及分组

实验在计算机中心机房进行,使用微型电子计算机,每人一机(一组)。

四、实验内容及步骤

1、打开LINGO,并利用系统菜单和向导在E盘创建一个项目。目录和项目名推荐使用学生自己的学号。

2、以此题为例,建立数学模型,并用说明语句进行说明,增强程序的可读性。

例2.1:

某工厂生产Ⅰ、Ⅱ两种产品,需要用到A,B,C三种设备,已知有关数据见下表。企业的经营目标不仅仅是利润,还需要考虑多个方面:

(1)力求使利润不低于1500元;

(2)考虑到市场需求,Ⅰ、Ⅱ两种产品的产量比应尽量保持1:2;

(3)设备A为贵重设备,严格禁止超时使用;

(4)设备C可以适当加班,但要控制;设备B即要求充分利用,又尽可能不加班。

在重要性上,设备C是设备B的3倍。

ⅠⅡ设备的生产能力/h A(h/件) 2 2 12

B(h/件) 4 0 16

C(h/件)0 5 15

利润元/件200 300

此题中只有设备A是刚性约束,其余都是柔性约束。首先,最重要的指标是企业的利润,将它的优先级列为第一级;其次是Ⅰ、Ⅱ两种产品的产量保持1:2的比例,列为第二级;再次,设备B、C的工作时间要有所控制,列为第三级。在第三级中,设备B的重要性是设备C的3倍,因此它们的权重不一样,设备B的系数是设备C的3倍。

该计划问题可用数学模型表示为:

目标函数min

满足约束条件

LINGO程序为:

model:

sets:

!集合定义部分(从“sets:”开始,到“endsets”结束):定义集合变量及其元素(含义类似数组的下标)和属性(含义类似于数组)。

level/1..3/:p,z,goal;

!level说明的是目标规划的优先级,有三个变量p,z,和goal。其中p表示优先级,goal表示相应优先级时的最优目标值。

!“1 ..3”的意思是从1到3的所有整数。

!基本集合的定义格式为:setname[/member_ list/][:attribute_list];其中setname为定义的集合名,member_list为元素列表,attribute_list为属性列表。在“[]”中的内容,表示是可选的项,即该项可以有也可以没有。

variable/1..2/:x;

!x为决策变量向量。

h_con_num/1..1/:b;

!在目标规划中,约束有两类。一类是对资源有严格限制的,同线性规划的处理相同,用严格的等式或者不等式约束来处理,称此约束为刚性约束(hard constraint)。b表示的是刚性约束的资源向量。

s_con_num/1..4/:g,dplus,dminus;

!另一类约束是可以不严格限制的,连同原线性规划的目标,构成柔性约束(soft constraint)。g表示的是柔性约束的资源向量,dplus,dminus是偏差变量。在目标规划中,用偏差变量(deviational variables)来表示实际值与目标值之间的差异,dplus为超出目标的差值,称为正偏差变量,dminus为未达到目标的差值,称为负偏差变量。

h_cons(h_con_num,variable):A;

!刚性约束的价值向量。

s_cons(s_con_num,variable):c;

!柔性约束的价值向量。

obj(level,s_con_num):wplus,wminus;

!柔性约束在不同优先级下的权重。

endsets

data:

!数据输入部分(从“data:”开始,到“enddata”结束):作用在于对集合的属性(数组)输入必要的常数数据。

p=? ? ?;

!常数列表中的数据之间可以用“,”或者“空格”或者“回车”分开。如果想在运行时才对参数赋值,可以在数据段使用输入语句,但这仅用于对单个变量赋值,而不能用于属性变量(数值)。输入语句格式为“变量名=?;”。

goal=? ? 0;

b=12;

g=1500 0 16 15;

a=2 2;

c=200 300 2 -1 4 0 0 5;

!LINGO中的数据是按列赋值的,而不是按行赋值的。

wplus=0 0 0 0

多目标优化实例和matlab程序教学教材

多目标优化实例和m a t l a b程序

精品文档 收集于网络,如有侵权请联系管理员删除 NSGA-II 算法实例 目前的多目标优化算法有很多, Kalyanmoy Deb 的带精英策略的快速非支配排序遗传算法(NSGA-II) 无疑是其中应用最为广泛也是最为成功的一种。本文用的算法是MATLAB 自带的函数gamultiobj ,该函数是基于NSGA-II 改进的一种多目标优化算法。 一、 数值例子 多目标优化问题 424221********* 4224212212112 12min (,)10min (,)55..55 f x x x x x x x x x f x x x x x x x x x s t x =-++-=-++-≤≤??-≤≤? 二、 Matlab 文件 1. 适应值函数m 文件: function y=f(x) y(1)=x(1)^4-10*x(1)^2+x(1)*x(2)+x(2)^4-x(1)^2*x(2)^2; y(2)=x(2)^4-x(1)^2*x(2)^2+x(1)^4+x(1)*x(2); 2. 调用gamultiobj 函数,及参数设置: clear clc fitnessfcn=@f; %适应度函数句柄 nvars=2; %变量个数 lb=[-5,-5]; %下限 ub=[5,5]; %上限 A=[];b=[]; %线性不等式约束 Aeq=[];beq=[]; %线性等式约束 options=gaoptimset('paretoFraction',0.3,'populationsize',100,'generations' ,200,'stallGenLimit',200,'TolFun',1e-100,'PlotFcns',@gaplotpareto); % 最优个体系数paretoFraction 为0.3;种群大小populationsize 为 100,最大进化代数generations 为200, % 停止代数stallGenLimit 为200, 适应度函数偏差TolFun 设为1e- 100,函数gaplotpareto :绘制Pareto 前端 [x,fval]=gamultiobj(fitnessfcn,nvars,A,b,Aeq,beq,lb,ub,options)

运筹学实例分析及lingo求解

运筹学实例分析及lingo 求解 一、线性规划 某公司有6个仓库,库存货物总数分别为60、55、51、43、41、52,现有8个客户各要一批货,数量分别为35,37,22,32,41,32,43,38。各供货仓库到8个客户处的单位货物运输价见表 试确定各仓库到各客户处的货物调运数量,使总的运输费用最小。 解:设 ij x 表示从第i 个仓库到第j 个客户的货物运量。ij c 表示从第i 个仓库到第 j 个客户的单位货物运价,i a 表示第i 个仓库的最大供货量,j d 表示第j 个客户的订货量。 目标函数是使总运输费用最少,约束条件有三个:1、各仓库运出的货物总量不超过其库存数2、各客户收到的货物总量等于其订货数量3、非负约束 数学模型为: ∑∑===6 18 1)(min i j ij ij x c x f ????? ??????≥===≤∑∑==08,,2,1,6,2,1,,. .6 1 8 1ij j i ij i j ij x j d x i a x t s 编程如下: model : Sets : Wh/w1..w6/:ai;

Vd/v1..v8/:dj; links(wh,vd):c,x; endsets Data: ai=60,55,51,43,41,52; dj=35,37,22,32,41,32,43,38; c=6,2,6,7,4,2,5,9 4,9,5,3,8,5,8,2 5,2,1,9,7,4,3,3 7,6,7,3,9,2,7,1 2,3,9,5,7,2,6,5 5,5,2,2,8,1,4,3; Enddata Min=@sum(links(i,j):c(i,j)*x(i,j)); @for(wh(i):@sum(vd(j):x(i,j))<=ai(i)); @for(vd(j):@sum(wh(i):x(i,j))=dj(j)); end Global optimal solution found. Objective value: Total solver iterations: 0 Variable Value Reduced Cost AI( W1) AI( W2) AI( W3) AI( W4) AI( W5) AI( W6) DJ( V1) DJ( V2) DJ( V3) DJ( V4) DJ( V5) DJ( V6) DJ( V7) DJ( V8) C( W1, V1) C( W1, V2) C( W1, V3) C( W1, V4) C( W1, V5) C( W1, V6)

多目标优化实例和matlab程序

NSGA-II 算法实例 目前的多目标优化算法有很多, Kalyanmoy Deb 的带精英策略的快速非支配排序遗传算法(NSGA-II) 无疑是其中应用最为广泛也是最为成功的一种。本文用的算法是MATLAB 自带的函数gamultiobj ,该函数是基于NSGA-II 改进的一种多目标优化算法。 一、 数值例子 多目标优化问题 424221********* 4224212212112 12min (,)10min (,)55..55 f x x x x x x x x x f x x x x x x x x x s t x =-++-=-++-≤≤??-≤≤? 二、 Matlab 文件 1. 适应值函数m 文件: function y=f(x) y(1)=x(1)^4-10*x(1)^2+x(1)*x(2)+x(2)^4-x(1)^2*x(2)^2; y(2)=x(2)^4-x(1)^2*x(2)^2+x(1)^4+x(1)*x(2); 2. 调用gamultiobj 函数,及参数设置: clear clc fitnessfcn=@f; %适应度函数句柄 nvars=2; %变量个数 lb=[-5,-5]; %下限 ub=[5,5]; %上限 A=[];b=[]; %线性不等式约束 Aeq=[];beq=[]; %线性等式约束 options=gaoptimset('paretoFraction',0.3,'populationsize',100,'generations', 200,'stallGenLimit',200,'TolFun',1e-100,'PlotFcns',@gaplotpareto); % 最优个体系数paretoFraction 为0.3;种群大小populationsize 为100,最大进化代数generations 为200, % 停止代数stallGenLimit 为200, 适应度函数偏差TolFun 设为1e-100,函数gaplotpareto :绘制Pareto 前端 [x,fval]=gamultiobj(fitnessfcn,nvars,A,b,Aeq,beq,lb,ub,options)

一个使用Lingo求解多目标0-1整数规划问题答案

AK是一家空调制造商,其面临的需求增长很快。预计2001年,其全国的需求在南部将为180,000单位,在中部为120,000单位,在东部为110,000单位,在西部为100,000单位。DryIce在设计物流网络时,有四个备选的地点:New York, Atlanta, Chicago和San Diego。在这四个地点建厂,工厂的生产能力将要么为200,000单位,要么为400,000单位。工厂的年固定运营成本及从工厂所在地生产出产品并运往四个销售区域的生产和运输的单位成本如表所示。请为该设施网络的设计建立模型,并请对模型作简要说明。 设定变量如下表所示:其中M11 M12等一系列值为0.1变量,即可得到如下式子: m12+9200000*m22+232*x12+212*x22+230*x32+280*x42+5600000*m13+9300000*m 23+238*x13+230*x23+215*x33+270*x43+6100000*m14+10200000*m24+299*x14+2 80*x24+270*x34+225*x44; m11*200000+m21*400000>=x11+x21+x31+x41; m12*200000+m22*400000>=x12+x22+x32+x42; m13*200000+m23*400000>=x13+x23+x33+x43; m14*200000+m24*400000>=x14+x24+x34+x44; x11+x12+x13+x14>=110000; x21+x22+x23+x24>=180000; x31+x32+x33+x34>=120000; x41+x42+x43+x44>=100000; @bin(m11);@bin(m21);@bin(m12);@bin(m22);@bin(m13);@bin(m23);@bin(m14) ;@bin(m24); 通过运行LINGO得到如下结果:

Lingo超经典案例大全

Lingo超经典案例大全 LINGO是Linear Interactive and General Optimizer的缩写,即“交互式的线性和通用优化求解器”。Lingo超强的优化计算能力在很多方面(线性规划、非线性规划、线性整数规划、非线性整数规划、非线性混合规划、二次规划等)比matlab、maple等强得多,Lingo编程简洁明了,数学模型不用做大的改动(或者不用改动)便可以直接采用Lingo语言编程,十分直观。 Lingo模型由4个段构成: (1)集合段(sets endsets);(2)数据段(data enddata); (3)初始段(init endinit);(4)目标与约束段。 Lingo的五大优点: 1. 对大规模数学规划,LINGO语言所建模型较简洁,语句不多; 2. 模型易于扩展,因为@FOR、@SUM等语句并没有指定循环或求和的上下限,如果在集合定义部分增加集合成员的个数,则循环或求和自然扩展,不需要改动目标函数和约束条件; 3. 数据初始化部分与其它部分语句分开,对同一模型用不同数据来计算时,只需改动数据部分即可,其它语句不变; 4. “集合”是LINGO有特色的概念,它把实际问题中的事物与数学变量及常量联系起来,是实际问题到数学量的抽象,它比C语言中的数组用途更为广泛。 5. 使用了集合以及@FOR、@SUM等集合操作函数以后可以用简洁的语句表达出常见的规划模型中的目标函数和约束条件,即使模型有大量决策变量和大量数据,组成模型的语句并不随之增加. 一、求解线性整数规划、非线性整数规划问题: 1.线性整数规划: model: max=x1+x2; x1+9/14*x2<=51/14; -2*x1+x2<=1/3; @gin(x1);@gin(x2); end

lingo求解多目标规划__例题

实验二:目标规划 一、实验目的 目标规划是由线性规划发展演变而来的,线性规划考虑的是只有一个目标函数的问题,而实际问题中往往需要考虑多个目标函数,这些目标不仅有主次关系,而且有的还相互矛盾。这些问题用线性规划求解就比较困难,因而提出了目标规划。熟悉目标规划模型的建立,求解过程及结果分析。 二、目标规划的一般模型 设)...2,1(n j x j =是目标规划的决策变量,共有m 个约束是国刚性约束,可能是等式约束,也可能是不等式约束。设有l 个柔性目标约束,其目标规划约束的偏差是 ),...,2,1(,l i d d i i =-+。设有q 个优先级别,分别为q p p p ,...,21。在同一个优先级k p 中,有 不同的权重,分别记为),...,2,1(,l j w w kj kj =- + 。因此目标规划模型的一般数学表达式为: min ∑∑=+ +-- =+= l j j kj j kj q k k d w d w p z 1 1 );( s.t. ,,...2,1,),(1m i b x a n j i j ij =≥=≤∑= . ,...2,1,0,, ,...,2,1,, ,...2,1,1 l i d d n x o x l i g d d x c i i j i n j i i j ij =≥=≥==-++-=+-∑ 三、实验设备及分组 实验在计算机中心机房进行,使用微型电子计算机,每人一机(一组)。

四、实验容及步骤 1、打开LINGO ,并利用系统菜单和向导在E 盘创建一个项目。目录和项目名推荐使用学生自己的学号。 2、以此题为例,建立数学模型,并用说明语句进行说明,增强程序的可读性。 例2.1: 某工厂生产Ⅰ、Ⅱ两种产品,需要用到A ,B ,C 三种设备,已知有关数据见下表。企业的经营目标不仅仅是利润,还需要考虑多个方面: (1) 力求使利润不低于1500元; (2) 考虑到市场需求,Ⅰ、Ⅱ两种产品的产量比应尽量保持1:2; (3) 设备A 为贵重设备,严格禁止超时使用; (4) 设备C 可以适当加班,但要控制;设备B 即要求充分利用,又尽可能不加班。 在重要性上,设备C 是设备B 的3倍。 此题中只有设备A 是刚性约束,其余都是柔性约束。首先,最重要的指标是企业的利润,将它的优先级列为第一级;其次是Ⅰ、Ⅱ两种产品的产量保持1:2的比例,列为第二级;再次,设备B 、C 的工作时间要有所控制,列为第三级。在第三级中,设备B 的重要性是设备C 的3倍,因此它们的权重不一样,设备B 的系数是设备C 的3倍。 该计划问题可用数学模型表示为: 目标函数 min )33()(433322211+ +-+--+++++=d d d p d d p d p z 满足约束条件 2122x x + 12≤ 15003002001121=-+++-d d x x 022221=-+-+ - d d x x 14x 1633=-++ -d d

lingo求解多目标规划__例题

实验二:目标规划 一、实验目的 目标规划是由线性规划发展演变而来的,线性规划考虑的是只有一个目标函数的问题,而实际问题中往往需要考虑多个目标函数,这些目标不仅有主次关系,而且有的还相互矛盾。这些问题用线性规划求解就比较困难,因而提出了目标规划。熟悉目标规划模型的建立,求解过程及结果分析。 二、目标规划的一般模型 设)...2,1(n j x j =是目标规划的决策变量,共有m 个约束是国刚性约束,可能是等式约束,也可能是不等式约束。设有l 个柔性目标约束,其目标规划约束的偏差是 ),...,2,1(,l i d d i i =-+。设有q 个优先级别,分别为q p p p ,...,21。在同一个优先级k p 中,有 不同的权重,分别记为),...,2,1(,l j w w kj kj =- +。因此目标规划模型的一般数学表达式为: min ∑∑=+ +--=+= l j j kj j kj q k k d w d w p z 1 1 );( s.t. ,,...2,1,),(1m i b x a n j i j ij =≥=≤∑= . ,...2,1,0,, ,...,2,1,, ,...2,1,1 l i d d n x o x l i g d d x c i i j i n j i i j ij =≥=≥==-++-=+-∑ 三、实验设备及分组 实验在计算机中心机房进行,使用微型电子计算机,每人一机(一组)。

四、实验容及步骤 1、打开LINGO ,并利用系统菜单和向导在E 盘创建一个项目。目录和项目名推荐使用学生自己的学号。 2、以此题为例,建立数学模型,并用说明语句进行说明,增强程序的可读性。 例2.1: 某工厂生产Ⅰ、Ⅱ两种产品,需要用到A ,B ,C 三种设备,已知有关数据见下表。企业的经营目标不仅仅是利润,还需要考虑多个方面: (1) 力求使利润不低于1500元; (2) 考虑到市场需求,Ⅰ、Ⅱ两种产品的产量比应尽量保持1:2; (3) 设备A 为贵重设备,严格禁止超时使用; (4) 设备C 可以适当加班,但要控制;设备B 即要求充分利用,又尽可能不加班。在重要性上,设备C 是设备B 的3倍。 此题中只有设备A 是刚性约束,其余都是柔性约束。首先,最重要的指标是企业的利润,将它的优先级列为第一级;其次是Ⅰ、Ⅱ两种产品的产量保持1:2的比例,列为第二级;再次,设备B 、C 的工作时间要有所控制,列为第三级。在第三级中,设备B 的重要性是设备C 的3倍,因此它们的权重不一样,设备B 的系数是设备C 的3倍。 该计划问题可用数学模型表示为: 目标函数 min )33()(433322211+ +-+--+++++=d d d p d d p d p z 满足约束条件 2122x x + 12≤ 15003002001121=-+++-d d x x 022221=-+-+ -d d x x 14x 1633=-++ -d d 155442=-++ -d d x 3,2,1,0,,,21=≥+ -i d d x x i i

2019年LINGO在多目标规划和最大最小化模型中的应用

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.解最大最小化问题

生产规划问题及LINGO求解

生产规划问题及LINGO求解 摘要:本文根据生产规划问题的特点,建立了满足生产规划的线性规划模型,并且利用lingo软件进行求解,提出了一种可以合理解决此类问题的数学方法,效果比较令人满意。 关键词:线性规划模型 lingo软件 中图分类号:tb114 文献标识码:a 文章编号: 1007-9416(2012)01-0073-01 1、问题的提出 某工厂是生产某种电子仪器的专业厂家,该厂是以销量来确定产量的1~6月份各个月生产能力、合同销量和单台仪器平均生产费用如表1所示。 又知上年末积压库存103台该仪器没售出.如果生产出的仪器当月不交货,则需要运到分厂库房,每台仪器需增加运输成本0.1万元,每台仪器每月的平均仓储费、维护留出库存80台.加班生产仪器每台增加成本1万元。试问应该如何安排1~6月份的生产,使总的生产成本(包括运输、仓储和维护)费用最少? 2、模型分析与假设 本模型的目标是使总的生产成本最小,其中总的生产成本包括正常生产仪器的费用、加班生产仪器的费用、当月不交货的运输费用及库存的仓储费、维护费.为此,我们作如下假设: (1)设第个月正常生产台。(2)设第个月加班生产台。(3)设第个

月不交货台。(4)设第个月售出上月库存台。(5)设第个月库存台。 (6)记第个月销量。(7)设第个月单台生产的费用。(8)记第个月正常生产能力。(9)记第个月加班生产能力。 3、模型的建立与求解 根据以上假设可知,第个月正常生产的成本为,第个月加班生产的成本为,第个月对不交货仪器的运输费为,第个月库存的仓储费及维护费为。 模型的目标函数为. 下面考虑本模型的限定条件 第个月销量的约束为 第个月正常生产能力的约束为: 第个月加班生产能力的约束为: 1~6月库存的约束为 于是问题的数学模型为 运行lingo软件求解模型,程序如下: model: sets: num_i/1..6/:b,c,d,e,x,y,z,w,h; endsets data: b=104,75,115,160,103,70;c=15,14,13.5,13,13,13.5;

lingo建模入门--例题一

对于例题一: 某工厂在计划期内要安排生产Ⅰ、Ⅱ两种产品,已知生产单位产品所需的设备台时及A、B两种原材料的消耗,如表1-1所示: ⅠⅡ 设备128台时 原材料A4016kg 原材料B0412kg 利润2元3元 我们建立模型: 利用lingo求解时,可直接将模型输入,如在lingo中输入如下内容:!A sample linear program: MAX= 2 * x1 + 3 * x2; 4 * x1<= 16 ; 4 * x2<= 12 ; x1+ 2 * x2<= 8 ; 然后单机lingo菜单中的solve进行求解即可。 Lingo是一个设计用于建立和求解各种各样优化问题的数学建模语言,我们来看一下上面的模型: 第一行以惊叹号开始,以分号结束,是对模型的注释。 第二行给出了目标函数,显示了他是最大化的(注意:没有包含z变量),乘法用星号来表示,目标函数以分号结束。 下面的三行是约束函数,标点符号同一般的计算机语言,以分号结束。Lingo默认所有的变量为非负,若没有非负约束,需要用@free注明。

Lingo大小写不敏感,变量可以用大写或小写来表示。 Lingo窗口顶部的菜单条是一个标准的windows方式。一旦模型建立,即可从菜单或工具的solve按钮进行求解。在求解之前,lingo首先检查模型是否有语法错误,如果有,则提示错误位置。否则,求解工具开始求解,求解工具将在屏幕上出现一个求解状态窗口,当求解完成,求解报告将出现在屏幕上。 求解报告中,value列给出了决策变量的最优质。Slack or Surplus列的第一个输入显示了目标函数的响应值,下两个输入显示了每个约束函数两边之间的不同(对应于每个约束函数的剩余变量或松弛变量的值)。Reduced Cost和Dual Price列给出了问题的敏感性分析的信息。 这个模型足够小,能够一项一项写出,但这是单调乏味的。在一些相似的应用中,可能会有成千上万的决策变量和约束函数,一次以一项一项的方式写出模型是不现实的,lingo提供了一个有效地、紧凑的书写方式,即lingo建模语言。 LP模型一般具有重复的性质,所有的决策变量和约束函数都是同种类型的,lingo使用集合来描述这些重复的性质。 这个例子中的相关集合: 产品集合:P01,P02 资源集合:M01,M02,M03;(机器和原材料都可以看作是一种资源) 集合的属性: 1、每种产品的产量,每单位产品的利润 2、每周资源的供应量(包括原材料的供应量和设备的台时限制) 3、每单位每种产品分别需要资源的数量(产品和资源的组合的集合 成员的属性,这个集合源于两个简单的集合,称为导出集) 一个典型的lingo建立模型有三个部分: 1. 集合部分 2. 数据部分 3. 提供数学模型的部分 我们建立此模型的集合及数据部分: !lingo11 sets: !产品集合及其属性,/../之间的部分罗列了该集合的成员,每种属性会对应于集合的每个成员有一个值,相当于一个向量;

lingo求解多目标规划--例题

实验二:目标规划 一、实验目得 目标规划就是由线性规划发展演变而来得,线性规划考虑得就是只有一个目标函数得问题,而实际问题中往往需要考虑多个目标函数,这些目标不仅有主次关系,而且有得还相互矛盾。这些问题用线性规划求解就比较困难,因而提出了目标规划。熟悉目标规划模型得建立,求解过程及结果分析。 二、目标规划得一般模型 设)...2,1(n j x j =就是目标规划得决策变量,共有m 个约束就是国内刚性约束,可能就是等式约束,也可能就是不等式约束。设有l 个柔性目标约束,其目标规划约束得偏差就是),...,2,1(,l i d d i i =-+。设有q 个优先级别,分别为q p p p ,...,21。在同一个优先级k p 中,有不同得权重,分别记为),...,2,1(,l j w w kj kj =-+。因此目标规划模型得一般数学表达式为: min ∑∑=++--=+=l j j kj j kj q k k d w d w p z 11);( s 、t 、 ,,...2,1,),(1 m i b x a n j i j ij =≥=≤∑= . ,...2,1,0,, ,...,2,1,, ,...2,1,1l i d d n x o x l i g d d x c i i j i n j i i j ij =≥=≥==-++-=+-∑ 三、实验设备及分组 实验在计算机中心机房进行,使用微型电子计算机,每人一机(一组)。

四、实验内容及步骤 1、打开LINGO ,并利用系统菜单与向导在E 盘创建一个项目。目录与项目名推荐使用学生自己得学号。 2、以此题为例,建立数学模型,并用说明语句进行说明,增强程序得可读性。 例2、1: 某工厂生产Ⅰ、Ⅱ两种产品,需要用到A ,B ,C 三种设备,已知有关数据见下表。企业得经营目标不仅仅就是利润,还需要考虑多个方面: (1) 力求使利润不低于1500元; (2) 考虑到市场需求,Ⅰ、Ⅱ两种产品得产量比应尽量保持1:2; (3) 设备A 为贵重设备,严格禁止超时使用; (4) 设备C 可以适当加班,但要控制;设备B 即要求充分利用,又尽可能不加班。 在重要性上,设备C 就是设备B 得3倍。 此题中只有设备A 就是刚性约束,其余都就是柔性约束。首先,最重要得指标就是企业得利润,将它得优先级列为第一级;其次就是Ⅰ、Ⅱ两种产品得产量保持1:2得比例,列为第二级;再次,设备B 、C 得工作时间要有所控制,列为第三级。在第三级中,设备B 得重要性就是设备C 得3倍,因此它们得权重不一样,设备B 得系数就是设备C 得3倍。 该计划问题可用数学模型表示为: 目标函数 min )33()(433322211++-+--+++++=d d d p d d p d p z 满足约束条件 2122x x + 12≤ 15003002001121=-+++-d d x x 022221=-+-+ -d d x x 14x 1633=-++-d d 155442=-++-d d x 3,2,1,0,,,21=≥+-i d d x x i i LINGO 程序为:

运筹学实例分析及lingo求解

. 运筹学实例分析及lingo 求解 一、线性规划 某公司有6个仓库,库存货物总数分别为60、55、51、43、41、52,现有8个客户各要一批货,数量分别为35,37,22,32,41,32,43,38。各供货仓库到8个客户处的单位货物运输价见表 试确定各仓库到各客户处的货物调运数量,使总的运输费用最小。 解:设 ij x 表示从第i 个仓库到第j 个客户的货物运量。ij c 表示从第i 个仓库到第 j 个客户的单位货物运价,i a 表示第i 个仓库的最大供货量,j d 表示第j 个客户的订货量。 目标函数是使总运输费用最少,约束条件有三个:1、各仓库运出的货物总量不超过其库存数2、各客户收到的货物总量等于其订货数量3、非负约束 数学模型为: ∑∑===6 18 1)(min i j ij ij x c x f ????? ??????≥===≤∑∑==08,,2,1,6,2,1,,. .6 1 8 1ij j i ij i j ij x j d x i a x t s ΛΛ

. 编程如下: model: Sets: Wh/w1..w6/:ai; Vd/v1..v8/:dj; links(wh,vd):c,x; endsets Data: ai=60,55,51,43,41,52; dj=35,37,22,32,41,32,43,38; c=6,2,6,7,4,2,5,9 4,9,5,3,8,5,8,2 5,2,1,9,7,4,3,3 7,6,7,3,9,2,7,1 2,3,9,5,7,2,6,5 5,5,2,2,8,1,4,3; Enddata Min=@sum(links(i,j):c(i,j)*x(i,j)); @for(wh(i):@sum(vd(j):x(i,j))<=ai(i)); @for(vd(j):@sum(wh(i):x(i,j))=dj(j)); end Global optimal solution found.

lingo解决线性规划问题的程序(经典)要点

Lingo12软件培训教案 Lingo 主要用于求解线性规划,整数规划,非线性规划,V10以上版本可编程。 例1 一个简单的线性规划问题 0 , 600 2 100 350 st. 3 2max >=<=+=<<=++=y x y x x y x y x z !exam_1.lg4 源程序 max = 2*x+3*y; [st_1] x+y<350; [st_2] x<100; 2*x+y<600; !决策变量黙认为非负; <相当于<=; 大小写不区分 当规划问题的规模很大时,需要定义数组(或称为矩阵),以及下标集(set) 下面定义下标集和对应数组的三种方法,效果相同::r1 = r2 = r3, a = b = c. sets : r1/1..3/:a; r2 : b; r3 : c; link2(r1,r2): x; link3(r1,r2,r3): y; endsets data : ALPHA = 0.7; a=11 12 13 ; r2 = 1..3; b = 11 12 13; c = 11 12 13; enddata

例2 运输问题 解: 设决策变量ij x = 第i 个发点到第j 个售点的运货量,i =1,2,…m; j =1,2,…n; 记为ij c =第i 个发点到第j 个售点的运输单价,i =1,2,…m; j =1,2,…n 记i s =第i 个发点的产量, i =1,2,…m; 记j d =第j 个售点的需求量, j =1,2,…n. 其中,m = 6; n = 8. 设目标函数为总成本,约束条件为(1)产量约束;(2)需求约束。 于是形成如下规划问题: n j m i x n j d x m i s x x c ij j n i ij i m j ij m i n j ij ij ,...,2,1,,...,2,1,0 ,...,2,1, ,...,2,1, st. z min 1 111 ==>=<==<==∑∑∑∑==== 把上述程序翻译成LINGO 语言,编制程序如下: !exam_2.lg4 源程序 model : !6发点8收点运输问题; sets :

利用Lingo解一个具体的运输问题例子

实验三:利用Lingo 解一个具体的运输问题例子 1、 实验目的和任务 1.1. 进一步掌握Lingo 编程操作; 1.2通过实验进一步掌握运筹学运输问题的建模以及求解过程,提高学生分析问题和解决问题能力。 2、 实验仪器、设备及材料 计算机、Lingo 3、 实验内容 运输问题 问题P271 设有某种物资需要从m 个产地12,,...,m A A A 运到n 个销地12,,...,n B B B ,其中每个产地的生产量为 12,,...,m a a a ,每个销地的需求量为 12,,...,n b b b 。设从产地 i A 到销地 j B 的运费单价为 (1,2,...,, 1,2,..ij c i m j n ==,问如何调运可使总运费最少? 3个产地4个销地的运输问题 建模 决策变量:决策变量就是产地i A 到销地j B 的运量ij x 目标函数: 1 1 m in m n ij ij i j z c x === ∑∑, 约束条件:第i 个产地的运出量应小于或等于该地的生产量,即 1 ,1,2,...,.n ij i j x a i m =≤=∑ 第j 个销地的运入量应等于该地的需求量,即

1 ,1,2,....m ij j i x b j n ===∑ 求解过程 编写模型程序: model : ! 3 Warehouse,4 Customer Transportation Problem; sets : Warehouse/1..3/:a; Customer/1..4/:b; Routes(warehouse,customer):c,x; endsets !here are the parameters; data : a=30,25,21; b=15,17,22,12; c=6,2,6,7, 4,9,5,3, 8,8,1,5; enddata ! The objective; [obj] min =@sum (routes:c*x); !The supply constraints; @for (warehouse(i):[sup]@sum (customer(j):x(i,j))<=a(i)); !The demand constraints; @for (customer(j):[dem] @sum (warehouse(i):x(i,j))=b(j)); end 计算结果: Global optimal solution found. Objective value: 161.0000 Total solver iterations: 6 Variable Value Reduced Cost A( 1) 30.00000 0.000000 A( 2) 25.00000 0.000000 A( 3) 21.00000 0.000000 B( 1) 15.00000 0.000000 B( 2) 17.00000 0.000000 B( 3) 22.00000 0.000000

多目标优化实例和matlab程序

NSGA -II 算法实例 目前的多目标优化算法有很多, Kalyanmoy Deb 的带精英策略的快速非支配排序遗传算法(NSGA-II) 无疑是其中应用最为广泛也是最为成功的一种。本文用的算法是MATLAB 自带的函数gamultiobj ,该函数是基于NSGA-II 改进的一种多目标优化算法。 一、 数值例子 多目标优化问题 424221********* 4224212212112 12min (,)10min (,)55..55 f x x x x x x x x x f x x x x x x x x x s t x =-++-=-++-≤≤??-≤≤? 二、 Matlab 文件 1.适应值函数m 文件: function y=f(x) y(1)=x(1)^4-10*x(1)^2+x(1)*x(2)+x(2)^4-x(1)^2*x(2)^2; y(2)=x(2)^4-x(1)^2*x(2)^2+x(1)^4+x(1)*x(2); 2.调用gamultiobj 函数,及参数设置: clear clc fitnessfcn=@f; %适应度函数句柄 nvars=2; %变量个数 lb=[-5,-5]; %下限 ub=[5,5]; %上限 A=[];b=[]; %线性不等式约束

Aeq=[];beq=[]; %线性等式约束 options=gaoptimset('paretoFraction',0.3,'populationsize',100, 'generations',200,'stallGenLimit',200,'TolFun',1e-100,'Plo tFcns',@gaplotpareto); % 最优个体系数paretoFraction 为0.3;种群大小populationsize 为100,最大进化代数generations 为200, % 停止代数stallGenLimit 为200, 适应度函数偏差TolFun 设为1e-100,函数gaplotpareto :绘制Pareto 前端 [x,fval]=gamultiobj(fitnessfcn,nvars,A,b,Aeq,beq,lb,ub,option s) 3. 计算结果 图1. 实例1对应的Pareto 前沿图 -40-35-30-25-20 -15-10-5-50 5 10 15 202530 35 Objective 1O b j e c t i v e 2 Pareto front

lingo求解多目标规划--例题教学教材

l i n g o求解多目标规 划--例题

实验二:目标规划 一、实验目的 目标规划是由线性规划发展演变而来的,线性规划考虑的是只有一个目标函数的问题,而实际问题中往往需要考虑多个目标函数,这些目标不仅有主次关系,而且有的还相互矛盾。这些问题用线性规划求解就比较困难,因而提出了目标规划。熟悉目标规划模型的建立,求解过程及结果分析。 二、目标规划的一般模型 设)...2,1(n j x j =是目标规划的决策变量,共有m 个约束是国内刚性约束,可能是等式约束,也可能是不等式约束。设有l 个柔性目标约束,其目标规划约束的偏差是),...,2,1(,l i d d i i =-+。设有q 个优先级别,分别为q p p p ,...,21。在同一 个优先级k p 中,有不同的权重,分别记为),...,2,1(,l j w w kj kj =-+。因此目标规划模 型的一般数学表达式为: min ∑∑=++--=+=l j j kj j kj q k k d w d w p z 11);( s.t. ,,...2,1,),(1m i b x a n j i j ij =≥=≤∑= . ,...2,1,0,, ,...,2,1,, ,...2,1,1l i d d n x o x l i g d d x c i i j i n j i i j ij =≥=≥==-++-=+-∑

三、实验设备及分组 实验在计算机中心机房进行,使用微型电子计算机,每人一机(一组)。 四、实验内容及步骤 1、打开LINGO,并利用系统菜单和向导在E盘创建一个项目。目录和项目名推荐使用学生自己的学号。 2、以此题为例,建立数学模型,并用说明语句进行说明,增强程序的可读性。 例2.1: 某工厂生产Ⅰ、Ⅱ两种产品,需要用到A,B,C三种设备,已知有关数据见下表。企业的经营目标不仅仅是利润,还需要考虑多个方面:(1)力求使利润不低于1500元; (2)考虑到市场需求,Ⅰ、Ⅱ两种产品的产量比应尽量保持1:2; (3)设备A为贵重设备,严格禁止超时使用; (4)设备C可以适当加班,但要控制;设备B即要求充分利用,又尽可能不加班。在重要性上,设备C是设备B的3倍。 此题中只有设备A是刚性约束,其余都是柔性约束。首先,最重要的指标是企业的利润,将它的优先级列为第一级;其次是Ⅰ、Ⅱ两种产品的产量保持1:2的比例,列为第二级;再次,设备B、C的工作时间要有所控制,列为第

Lingo求解多目标规划[新]

例:某工厂生产Ⅰ、Ⅱ两种产品,需要用到A ,B ,C 三种设备,已知有关数据见下表。企业的经营目标不仅仅是利润,还需要考虑多个方面: (1) 力求使利润不低于1500元; (2) 考虑到市场需求,Ⅰ、Ⅱ两种产品的产量比应尽量保持1: 2; (3) 设备A 为贵重设备,严格禁止超时使用; (4) 设备C 可以适当加班,但要控制;设备B 即要求充分利用, 又尽可能不加班。在重要性上,设备C 是设备B 的3倍。 Ⅰ Ⅱ 设备的生产能 力/h A (h/件) 2 2 12 B (h/件) 4 0 16 C (h/件) 0 5 15 利润 元/件 200 300 解:此题中只有设备A 是刚性约束,其余都是柔性约束。首先,最重要的指标是企业的利润,将它的优先级列为第一级;其次是Ⅰ、Ⅱ两种产品的产量保持1:2的比例,列为第二级;再次,设备B 、C 的工作时间要有所控制,列为第三级。在第三级中,设备B 的重要性是设备C 的3倍,因此它们的权重不一样,设备B 的系数是设备C 的3倍。 该计划问题可用数学模型表示为: 目 标 函 数 min )33()(433322211++-+--+++++=d d d p d d p d p z 满足约束条件 2122x x + 12≤

15003002001121=-+++-d d x x 022221=-+-+-d d x x 14x 1633=-++-d d 155442=-++ -d d x 3,2,1,0,,,21=≥+-i d d x x i i LINGO 程序为: 求第一级目标。LINGO 程序如下: model: sets: variable/1..2/:x; S_Con_Num/1..4/:g,dplus,dminus; S_con(S_Con_Num,Variable):c; endsets data: g=1500 0 16 15; c=200 300 2 -1 4 0 0 5; enddata min=dminus(1); 2*x(1)+2*x(2)<12; @for(S_Con_Num(i):@sum(Variable(j):c(i,j)*x(j))+dminus(i)-dplus(i )=g(i)); end 求得dminus(1)=0,即目标函数的最优值为0,第一级偏差为0。

相关主题
文本预览
相关文档 最新文档