当前位置:文档之家› 整数规划和多目标规划模型

整数规划和多目标规划模型

整数规划和多目标规划模型
整数规划和多目标规划模型

1 整数规划的MATLAB 求解方法

(一) 用MATLAB 求解一般混合整数规划问题

由于MATLAB 优化工具箱中并未提供求解纯整数规划和混合整数规划的函数,因而需要自行根据需要和设定相关的算法来实现。现在有许多用户发布的工具箱可以解决该类问题。这里我们给出开罗大学的Sherif 和Tawfik 在MATLAB Central 上发布的一个用于求解一般混合整数规划的程序,在此命名为intprog ,在原程序的基础上做了简单的修改,将其选择分枝变量的算法由自然序改造成分枝变量选择原则中的一种,即:选择与整数值相差最大的非整数变量首先进行分枝。intprog 函数的调用格式如下:

[x,fval,exitflag]=intprog(c,A,b,Aeq,beq,lb,ub,M,TolXInteger) 该函数解决的整数规划问题为:

?????

??????∈=≥≤≤=≤=)

取整数(M j x n i x ub x lb b x A b Ax t s x c f j i eq eq T )

,,2,1(0

..min

在上述标准问题中,假设x 为n 维设计变量,且问题具有不等式约束1m 个,等式约束2m 个,那么:c 、x 均为n 维列向量,b 为1m 维列向量,eq b 为2m 维列向量,A 为n m ?1维矩阵,eq A 为n m ?2维矩阵。

在该函数中,输入参数有c,A,b,A eq ,b eq ,lb,ub,M 和TolXInteger 。其中c 为目标函数所对应设计变量的系数,A 为不等式约束条件方程组构成的系数矩阵,b 为不等式约束条件方程组右边的值构成的向量。Aeq 为等式约束方程组构成的系数矩阵,b eq 为等式约束条件方程组右边的值构成的向量。lb 和ub 为设计变量对应的上界和下界。M 为具有整数约束条件限制的设计变量的序号,例如问题中设计变量为621,,,x x x ,要求32,x x 和6x 为整数,则M=[2;3;6];若要求全为整数,则M=1:6,或者M=[1;2;3;4;5;6]。TolXInteger 为判定整数的误差限,即若某数x 和最邻近整数相差小于该误差限,则认为x 即为该整数。

在该函数中,输出参数有x, fval 和exitflag 。其中x 为整数规划问题的最优解向量,fval 为整数规划问题的目标函数在最优解向量x 处的函数值,exitflag 为函数计算终止时的状态指示变量。 例1 求解整数规划问题:

?????

??

??≥≥≤+≥-+=

0,

12 1124 124 ..max

212

212121,且取整数值x x x x x x x t s x x f 算法:

c=[-1;-1]; A=[-4 2;4 2;0 -2]; b=[-1;11;-1]; lb=[0;0]; M=[1;2]; %均要求为整数变量 Tol=1e-8;

%判断是否整数的误差限

[x,fval]=linprog(c,A,b,[],[],lb,[])

%求解原问题松弛线性规划

[x1,fval1]=intprog(c,A,b,[],[],lb,[],M,Tol) %求最优解整数解 结果:

x =

%松弛线性规划问题的最优解

1.5000

2.5000 fval = -4.0000 x1 =

%整数规划的最优解

2 1 fval2 = -3.0000

(二) 用MATLAB 求解0-1规划问题

在MATLAB 优化工具箱中,提供了专门用于求解0-1规划问题的函数bintprog ,其算法基础即为分枝界定法,在MATLAB 中调用bintprog 函数求解0-1规划时,需要遵循MATLAB 中对0-1规划标准性的要求。 0-1规划问题的MATLAB 标准型

???

????==≤=1

,0..min x b x A b Ax t s x c f eq eq T

在上述模型中,目标函数f 需要极小化,以及需要满足的约束条件,不等式约束一定要化为形式为“≤”。

假设x 为n 维设计变量,且问题具有不等式约束1m 个,等式约束2m 个,那么:

c 、x 均为n 维列向量,b 为1m 维列向量,eq b 为2m 维列向量,A 为n m ?1维矩阵,

eq A 为n m ?2维矩阵。

如果不满足标准型的要求,则需要对原问题进行转化,化为标准型之后才能使用相关函数,标准化的方法和线性规划中的类似。 0-1规划问题的MATLAB 求解函数

MATLAB 优化工具箱中求解0-1规划问题的命令为bintprog bintprog 的调用格式

x = bintprog(f) x = bintprog(f,A,b) x = bintprog(f,A,b,Aeq,beq) x = bintprog(f,A,b,Aeq,beq,x0) x = bintprog(f,A,b,Aeq,Beq,x0,options) [x,fval] = bintprog(...) [x,fval,exitflag] = bintprog(...) [x,fval,exitflag,output] = bintprog(...)

命令详解

1)x = bintprog(f)

该函数调用格式求解如下形式的0-1规划问题

???==1

,0.

.min x t s x c f T

2)x = bintprog(c,A,b)

该函数调用格式求解如下形式的0-1规划问题

??

???=≤=1

,0..min x b Ax t s x c f T

3)x = bintprog (c,A,b,Aeq,beq)

该函数调用格式求解如下形式的0-1规划问题:

???

????==≤=1

,0..min x b x A b Ax t s x c f eq eq T

4)x = bintprog (c,A,b,Aeq,beq,x0)

该函数调用格式求解如下形式的0-1规划问题

???

????==≤=1

,0..min x b x A b Ax t s x c f eq eq T

在前一个调用格式的基础上同时设置求解算法的初始解为x0,如果初始解x0不在0-1规划问题的可行域中,算法将采用默认的初始解 5)x = bintprog (c,A,b,Aeq,beq,x0,options)

用options 指定的优化参数进行最小化。可以使用optimset 来设置这些参数

上面的函数调用格式仅设置了最优解这一输出参数,如果需要更多的输出参数,则可以参照下面的调用格式:

[x,fval] = bintprog(...)

在优化计算结束之时返回整数规划问题在解x 处的目标函数值fval

[x,fval,exitflag] = bintprog(...)

在优化计算结束之时返回exitflag 值,描述函数计算的退出条件。

[x,fval,exitflag,output] = bintprog(...) 在优化计算结束之时返回结构变量output 例2:求解0-1规划问题

()()()?????

?????

?

========∑∑∑∑==== 21;21 4,3,21 10 21 1 21 1 ..max

1

111

,n ,,j ,n ,,i x ,n ,,j x ,n ,,i x t s x E f ij n

i ij n j ij n i n

j ij

ij ),(或?

?

???

?

??????=23321622

243113212329152226331220E 为了程序的可读性,我们用一维下标来表示设计变量,即用41~x x 表示1411~x x ,用85~x x 表示2421~x x ,用129~x x 表示3431~x x ,用1613~x x 表示4441~x x ,于是约束条件和目标函数分别为:

???

?????

??

?????===+++=+++=+++=+++=+++=+++=+++=+++)

16,,2,1( 1,0111

1111

1

16128415117314

1062

139511615141312111098765

4321 i x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x i 1644622521414313212111x E x E x E x E x E x E x E f +++++++=

算法:

c=[20;12;33;26;22;15;29;23;21;13;31;24;22;16;32;23]; Aeq=[1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0; 0 0 0 0 1 1 1 1 0 0 0 0 0 0 0 0; 0 0 0 0 0 0 0 0 1 1 1 1 0 0 0 0; 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1; 1 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0;

0 1 0 0 0 1 0 0 0 1 0 0 0 1 0 0;

0 0 1 0 0 0 1 0 0 0 1 0 0 0 1 0;

0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 1;

];

beq=ones(1,8);

[x,fval]=bintprog(c,[],[],Aeq,beq);

B=reshape(x,4,4); %由于x是一列元素,为了使结果更加直观,故排成与效率矩阵E相

对应的形式

B'

fval

结果:

Optimization terminated.

ans =

0 1 0 0

0 0 1 0

1 0 0 0

0 0 0 1

fval =

85

整数规划的应用——组件配套问题

某机械产品需要由三个工厂开工一起生产后组装完成。每件机械需要4个组件1和3个组件2。生产这两种组件需要消耗两种原材料A和B。已知这两种原材料的供应量分别为400kg和600kg。

由于三个工厂的生产条件和拥有设备工艺条件不同,每个工厂生产组件的能力和原材料的消耗也不尽相同,且每个工厂开工一次都是配套生产一定数量的组件1和组件2,其具体的数据如表所示。

表11-2 各工厂生产能力和消耗原材料的数据表

现在的最优化问题是,这三个工厂应当如何安排生产,才能使该产品的配套数达到最大?

(Ⅰ)组件配套问题的建模

设21x x 、和3x 是三个工厂分别开工的次数,将其作为该问题的设计变量。由于每个工厂开工一次都是配套生产,故每次开工消耗的原材料一定,且生产的组件数也是一定的。在这个假设的前提之下,我们可以得出该问题的目标函数和约束条件。

因为原材料的总量是有限的,根据工厂的开工次数,可得工厂1将消耗A 材料19x ,工厂2将消耗A 材料26x ,工厂3将消耗A 材料34x ,故有约束条件:

400469321≤++x x x

同理,对于材料B 的总量约束条件可以表达为:6009107321≤++x x x 然后再来分析三个工厂零件生产的情况,三个工厂生产的组件1的数量分别为2178x x 、和39x ,故组件1的总数为:3211978x x x Q ++=

同理,组件2的总数为:3212596x x x Q ++=

下一步是分析目标函数,该问题要求的不是生产的各种组件总数最多,而是要求产品的配套数量最大,即能组成的机械数目最多。问题中已经给出了该种机械中两种组件的配比为4:3,故组件1所能成套的数目1T 满足约束条件:

4

97843

2111x x x Q T ++=

同理,组件2所能成套的数目2T 满足约束条件:3

59633

2122x x x Q T ++=

因而,所能组成的成品机械的数目f 应该为1T 和2T 中的较小值,即:

),min(21T T f =

那么,我们求解的目标即是使得f 能够尽可能大,可以看出,这种形式并不是有关设计变量的线性函数,我们需要对其进行转化,此时我们可以令一个人工设计变量等于目标函数值,则有:),min(214T T x =

在该假设下,一定满足关系式:41x T ≥且42x T ≥ 结合约束关系,对1T 的约束可以表示为:4

97843

21114x x x Q T x ++=

≤ 同理,对2T 的约束可以表示为:3

59633

21224x x x Q T x ++=

≤ 对1T 的上述关系进行整理,可以得到关系:049784321≤+---x x x x 同理对2T 也可以得到不等式关系为:035964321≤+---x x x x

上面两个式子即为由组件的配比数得到的关于组件数目的约束条件,此时问题的目标就是如何使得4x 取到最大值,由于开工的次数一定是一个非负整数,故也是一个约束条件,决定了该问题是一个纯整数规划问题。结合前面给出的原材料约束,可以得到如下的数学模型:

()

????????

??

?=≥≤+---≤+---≤++≤++=4,3,2,10 03596 04978 600

9107 400

469 max i 432143213213214

i x x x x x x x x x x x x x x x s.t.x f 且取整数值 (Ⅱ)组件配套问题的求解

利用§8.1节中给出的MATLAB函数对此问题求解,代码和运行结果如下:

算法:

%目标函数所对应的设计变量的系数,为转化为极小,故取原目标函数的相反数 f=[0;0;0;-1]; %不等式约束 A=[ 9 6 4 0;

7 10 9 0;

-8 -7 -9 4;

-6 -9 -5 3];

b=[400;600;0;0];

%边界约束,由于无上界,故设置ub=[Inf;Inf;Inf;Inf];

lb=[0;0;0;0];

ub=[Inf;Inf;Inf;Inf];

%所有变量均为整数变量,故将所有序号组成向量M

M=[1;2;3;4];

%判定为整数的误差限

Tol=1e-8;

%求最优解x和目标函数值fval,并返回状态指示

[x,fval,exitflag]=intprog(f,A,b,[],[],lb,ub,M,Tol)

结果:

x =%最优解向量x

18

15

36

141

fval = %在最优解向量x处,原目标函数值的相反数

-141.000

exitflag= %算法终止指示变量,说明问题收敛到了最优解x 1

由运行结果可知,工厂1、2和3需要分别开工18、15和36次,这样所能生产出来的成套的机械为141件。

2 多目标规划的MATLAB求解方法

(一)多目标规划的MATLAB求解

由于多目标规划中的求解涉及到的方法非常多,故在MATLAB中可以利用

不同的函数进行求解,例如在评价函数法中我们所得最后的评价函数为一线性函数,且约束条件也为线性函数,则我们可以利用MATLAB 优化工具箱中提供的linprog 函数进行求解,如果我们得到的评价函数为非线性函数,则可以利用MATLAB 优化工具箱中提供的fmincon 函数进行求解,如果我们采用最大最小法进行求解,则可以利用MATLAB 优化工具箱中提供的fminimax 函数进行求解。下面我们就结合理论求解的几种方法,讲解一下典型多目标规划问题的MATLAB 求解方法。 例1 利用理想点法求解

?????

????≥≤+≤+--=-=0

, 8

1223 35)( min 32)( min 212

121212211x x x x x x s.t.x

x x f x x x f 我们首先根据评价函数法中的理想点法的理论基础,按照理想点法的求解思路分别对两个单目标规划问题()()21,P P 进行求解:

()()??????

?≥≤+≤+--=???????≥≤+≤+-=0

, 8 1223 35)( min ,0, 8 1223 32)( min 21212

12

1222121212111x x x x x x s.t.x x x f P x x x x x x s.t.x x x f P 求解()1P 的MATLAB 的代码和相应的运行结果为:

算法:

c=[2;-3]; A=[3 2;1 1]; b=[12;8] lb=[0;0]

[x,fval]=linprog(c,A,b,[],[],lb,[]) 结果:

x = 0.0000 6.0000

-18.0000

于是可知。当()T

x 6,01=时,单目标线性规划()1P 的最优函数值为18*

1-=f 。

求解()2P 的MATLAB 的代码和相应的运行结果为:

算法:

c=[-5;-3]; A=[3 2;1 1]; b=[12;8] lb=[0;0]

[x,fval]=linprog(c,A,b,[],[],lb,[]) 结果:

Optimization terminated. x = 4.0000 0.0000 fval = -20.0000

于是可知,当()T

x 0,42=时,单目标线性规划()2P 的最优函数值为20*2-=f 。

由上述两个单目标线性规划的求解结果可知22x x ≠,因而

()

()20,18,*2*1

--=f f

是一个不可能达到的理想点,因而我们构造如下评价函数:

()()()()()2

12212

2212035183220)(18)()(min -+++-=

+++=

∈x x x x x f x f x f h R

x

构造描述该评价函数的M-函数文件objfun.m 如下: function f=objfun(x)

f=sqrt((2*x(1)-3*x(2)+18)^2+(5*x(1)+3*x(2)-20)^2); 然后用非线性规划的方式求解上述问题:

算法:

A=[3 2;1 1]; b=[12;8];

x0=[0;0];

[x,fval,exitflag]=fmincon(@objfun,x0,A,b,[],[],lb,[]) 结果:

Active inequalities (to within options.TolCon = 1e-006): lower upper ineqlin ineqnonlin 1

x = 0.0235 5.9647

fval = 1.9941

exitflag = 5

由运行结果可知在该评价函数标准之下,问题的最优解为:

()T

x 9647.5,0235.0*=此时,各目标函数的取值为:0118.18,8471.17*2*1-=-=f f 。

它与理想点()()20,18,*2*1--=f f 在评价函数标准下的最小距离为1.9941。 例2 利用评价函数中的线性加权和法求解如下多目标规划问题:

???

???

?≥=++++=++=0

,, 3 32)( min )( min 32132123

222122

322211x x x x x x s.t.x x x x f x x x x f 其中权系数为2.0,8.021==λλ。 建立线性加权和法的评价函数为:

()()()

2

322212232221132)(min x x x x x x x f h +++++=λλ

将相应的权系数代入上式即整理出目标函数)(x f 为:

2322214.12.1)(x x x x f ++=

于是建立目标函数的M-函数文件objfun.m :

function f=objfun(x)

f=x(1)^2+1.2*x(2)^2+1.4*x(3)^2;

由于目标函数非线性函数且具有线性等式约束和边界约束,因而我们调用MATLAB 中求解非线性规划的fmincon 函数对此问题进行求解,同时注意如果只考虑第一个目标函数,由这种特殊形式,即在设计变量的和为一定值,需要求其平方和的最小值时,最优解必然是当这几个设计变量的值相等时取得,于是我们可以将这个解设为问题的初始点,开始迭代。

算法:

Aeq=[1 1 1]; beq=[3]; lb=[0;0;0]; x0=[1;1;1];

[x,fval]=fmincon(@objfun,x0,[],[],Aeq,beq,lb,[]) 结果:

No active inequalities. x = 1.1776 0.9812 0.8412 fval = 3.5327

结果说明,问题的最优解为:5327.3)(,8412.09812.01776.1**3*2*1*=?

?????????=??????????=x f x x x x 我们在求解多目标规划问题时,可以采用评价函数法中的最大最小法,而MATLAB 也为这种方法提供了专门的求解函数fminimax ,在讲解这方面的例题之前,我们首先介绍一下MATLAB 优化工具箱中所提供的最大最小法的求解函数fminimax 。

最大最小法问题的MATLAB 标准形式为:

??????????

?≤≤=≤=≤ub

x lb b

x A b Ax (x)c c(x)s.t.x f eq

eq eq

i i

x

0 0 )

( max min 函数fminimax 的调用方式和其他的最优化函数类似,其中所涉及的输入参数和输出参数的含义与非线性规划的求解函数fmincon 类似,使用方法也基本相同,细节问题读者可以参考MATLAB 的帮助文件。 例3 求解最大最小问题:

???

???????

?-+=--=-+=--=+--+=8

)( )( 183)( 3)( 30440482)( )( max min 21521421322

212212

2211x x x f x x x f x x x f x x x f x x x x x f s.t.x f i i

x

首先建立描述目标函数的M-函数文件objfun.m ,注意到一共有五个目标函数,所求目标为这五个函数最大值中的最小值,代码如下:

function f = objfun(x)

f(1)= 2*x(1)^2+x(2)^2-48*x(1)-40*x(2)+304; f(2)= -x(1)^2 - 3*x(2)^2; f(3)= x(1) + 3*x(2) -18; f(4)= -x(1)- x(2); f(5)= x(1) + x(2) - 8;

然后设置求解的初始点为x0=[0;0],调用fminimax 求解该问题。

算法:

x0 = [0; 0];

[x,fval,maxfval] = fminimax(@objfun,x0) 结果:

Local minimum possible. Constraints satisfied.

fminimax stopped because the predicted change in the objective function

is less than the default value of the function tolerance and constraints were satisfied to within the default value of the constraint tolerance.

Active inequalities (to within options.TolCon = 1e-006): lower upper ineqlin ineqnonlin 1 5 x = 4.0000 4.0000 fval =

0.0000 -64.0006 -1.9999 -8.0000 -0.0000 maxfval = 2.6897e-008

上述结果说明当4,421==x x 时,目标函数5,,2,1 )( =i x f i 的最大值达到最小,这一组的函数值为0.0000,-64.0006,-1.9999,-8.0000,-0.0000,于是最大值为0。

多目标规划的应用——投资问题(全国大学生数学建模竞赛试题)

假设市场上有n 种资产,比如股票、债券等可以供投资者选择,某公司有数额为M 的一笔相当大的资金可用作一个时间的投资。通过财务人员对i S 种资产进行评估,大概可以估算出在这一时期内购买资产i S 的平均收益率为i r ,并预测出购买i S 的损失率为i q 。考虑到投资越分散,总的风险越小,公司决定当用这笔资金购买若干种资产时,总体风险可用所投资的i S 中的最大一个风险来度量。

购买i S 要付交易费,费率为i p ,并且当购买额不超过给定值i u 时,交易费按购买i u 计算(不买当然无须付费)。另外,假定同期银行存款利率是0r ,且既无交易费又无风险(0r =5%)。已知4=n 时的相关数据如下表所示:

表1 投资各种资产的参数值

试给该公司设计一种投资组合方案,即用给定的资金M ,有选择地购买若干种资产或存银行生息,使净收益尽可能大,而总体风险尽可能小。 (Ⅰ)投资问题的建模

为了建立数学模型,首先对模型进行一些必要的假设及符号说明: (1) 模型的假设

① 在一个时期内所给出的i r ,i q ,i p 保持不变。

②在一个时间内所购买的各种资产(如股票、证券等)不进行买卖交易,即在买入后不再卖出。

③ 每种投资是否收益是相互独立的。

④ 在投资过程中,无论盈利与否必须先付交易费。 (2)符号说明

M (元):公司现有投资总金额;

()n i S i ,,1,0, =:欲购买的第i 种资产种类(其中0=i 表示存入银行): ()n i x i ,,1,0, =:公司购买i S 的金额; ()n i r i ,,1,0, =:公司购买i S 的平均收益率; ()n i q i ,,1,0, =:公司购买i S 的平均损失率;

()n i p i ,,1,0, =:公司购买i S 超过i u 时所付交易费率。

下面来建立模型。设购买i S 的金额为i x ,所付的交易费)(i i x c ,则

??????

?=≥=<<==0

)( ),,2,1(0 0

0)(00x c u x x p n i u x u p x x c i i i i i

i i i i i i 由于投资额M 相当大,所以总可以假定对每个i S 的投资i i u x ≥。这时上面的大括号公式可简化为:),,2,1( )(n i x p x c i i i i ==

对i S 投资的净收益为:() )()(i i i i i i i i i x p r x c x r x R -=-= 对i S 的风险为:i i i i x q x Q =)(

对i S 投资所需资金为投资金额i x 与所需的手续费)(i i x c 之和,即:

()i i i i i i i x p x c x x f +=+=1)()(

当购买i S 的金额为),,2,1,0( n i x i =,投资组合),,,(10n x x x x =的净收益总额为:

∑==n

i i i x R x R 0)()(

整体风险为:)(max )(max )(11i i n

i i i n

i x q x Q x Q ≤≤≤≤==

资金约束为:M x f n

i i i =∑=0

)(

根据题目要求,以净收益总额)(x R 最大,而整体风险)(x Q 最小为目标建立模型如下:

()()()????

?

?

??

???=≥=+???

??--∑∑==n i x M

x p s.t. x q x p r i n i i i i i n i i i i ,,2,1,0 1 max min 00 很显然,这是一个多目标规划问题。 (Ⅱ)投资问题的求解

在此我们采用主要目标法对该问题进行求解,即根据问题的实际情况,确

定一个目标为主要目标,而把其余目标作为次要目标,并且根据经验,选取一定的界限值。这样就可以把次要目标作为约束来处理,于是就将原来的多目标问题转化为一个在新的约束下的单目标最优化问题。

在上述例子中如果以收益为主要目标,则可以固定风险水平,给定风险一个界限a ,讲问题转化称为求最大风险不超过a 时的最大收益,即下面的线性规划模型:

()()

()?

?????

???

=≥=+=≤-∑∑==n

i x M

x p n i Ma x q s.t. x p r i n

i i

i i i n

i i

i i ,,2,1,0 1 ,,2,1 max 00

(1)

若投资者希望总盈利至少达到水平K 以上,则可以在风险最小的情况下寻找相应的投资组合,从而将原模型转化成为下列的线性规划模型进行求解:

()()

()()????

????

???=≥=+≥-∑∑==n

i x M

x p K x p r s.t. x q i n

i i i n

i i i i i i i ,,2,1,0 1 max min 0

x

(2)

根据上面的分析,我们利用主要目标法建立了该问题的多目标规划模型,进而转化成为了线性规划模型,下面我们利用MATLAB 对此问题进行求解并进行投资分析。将4=n 时的数据代入模型(1)中,我们可以得到MATLAB 的标准型为:

?

??

???

??

???=≥≤≤≤≤=++++-----=4

,3,2,1,0 0.026 0.055 0.015 0.025 1

065.1045.102.101.1 ..185.0185.019.027.005.0 min 43

21432104

3210i x a x a

x a

x a x x x x x x t s x x x x x f i

由于a是任意给定的风险度,因而实际上没有一个选择的准则,不同的投资者可能有自身不同的判断,因而使得a的取值不同。我们在求解的过程中不妨用试探的方法,从0

=

.0

?a进行搜索,通过实验来分析和总a开始,以步长001

=

结风险度a和收益Q之间的数量关系。利用MATLAB编程求解。

算法:

clear

i=1;

a(i)=0;

x=cell(1,101);

while(1.1-a(i))>1

i=i+1;

a(i)=a(i-1)+0.001;

f=[-0.05 -0.27 -0.19 -0.185 -0.185];

Aeq=[1 1.01 1.02 1.045 1.065];

beq=[1];

A=[0 0.025 0 0 0;

0 0 0.015 0 0;

0 0 0 0.055 0;

0 0 0 0 0.026];

b=[a(i);a(i);a(i);a(i)];

lb=[0;0;0;0;0];

[y,fval(i)]=linprog(f,A,b,Aeq,beq,lb,[]);

x{i}=y;

Q(i)=-fval(i);

end

plot(a,Q,'.');

xlabel('a');

ylabel('Q');

结果:

Q

a

风险度与收益关系图

模型(1)的结果图分析:

(1) 由上图可知,收益随风险增大而增大,就是说,风险越大,收益也越大。

(2) 由数据表可以看出,投资越分散,投资者承担的风险越小。这与实际情况相符,就是说,冒险的投资者会出现集中投资的情况,保守的投资者则尽量分散投资。

(3) 曲线上的任一点都表示该风险水平的最大可能收益和该收益要求的最小风险。投资者应根据对不同风险的承受能力,选择该风险水平下的最优投资组合。

(4) 由局部放大上图可以看出,在0060

a附近有一个转折点。在这一

)7(=

.0

点左边,风险增加很少时,利润增长很快;在这一点右边,风险增加很大时,利润增长很缓慢。所以对于风险和收益没有特殊偏好的投资者来说,应该选择曲线的该转折点作为最优投资组合,大约是2019

=

=Q

)7(*=

a,

Q

)7(

.0

.0

,

0060

所对应投资方案为:

T

.0,

2400

.0,0[

4000

=

2212

x]

.0,

1091

.0,

目标规划模型

目标规划模型 Company Document number:WUUT-WUUY-WBBGB-BWYTT-1982GT

§ 目标规划模型 1. 目标规划模型概述 1)引例 目标规划模型是有别于线性规划模型的一类多目标决策问题模型,通过下面的例子,我们可看出这两者的区别。 例1 某工厂的日生产能力为每天500小时,该厂生产A 、B 两种产品,每生产一件A 产品或B 产品均需一小时,由于市场需求有限,每天只有300件A 产品或400件B 产品可卖出去,每出售一件A 产品可获利10元,每出售一件B 产品可获利5元,厂长按重要性大小的顺序列出了下列目标,并要求按这样的目标进行相应的生产。 (1)尽量避免生产能力闲置; (2)尽可能多地卖出产品,但对于能否多卖出A 产品更感兴趣; (3)尽量减少加班时间。 显然,这样的多目标决策问题,是单目标决策的线性规划模型所难胜任的,对这类问题,须采用新的方法和手段来建立对应的模型。 2)相关的几个概念 (1)正、负偏差变量+ d 、- d 正偏差变量+ d 表示决策值) ,,2,1(n i x i =超过目标值的部分;负偏差变量- d 表示 决策值 ) ,,2,1(n i x i =未达到目标值的部分;一般而言,正负偏差变量+d 、-d 的相互 关系如下: 当决策值 ) ,,2,1(n i x i =超过规定的目标值时, 0 ,0=>- +d d ;当决策值) ,,2,1(n i x i =未超过规定的目标值时, 0 ,0>=- +d d ;当决策值),,2,1(n i x i =正好等于规定的目标值时, 0 ,0==- +d d 。

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

整数规划和多目标规划模型

1 整数规划的MATLAB 求解方法 (一) 用MATLAB 求解一般混合整数规划问题 由于MATLAB 优化工具箱中并未提供求解纯整数规划和混合整数规划的函数,因而需要自行根据需要和设定相关的算法来实现。现在有许多用户发布的工具箱可以解决该类问题。这里我们给出开罗大学的Sherif 和Tawfik 在MATLAB Central 上发布的一个用于求解一般混合整数规划的程序,在此命名为intprog ,在原程序的基础上做了简单的修改,将其选择分枝变量的算法由自然序改造成分枝变量选择原则中的一种,即:选择与整数值相差最大的非整数变量首先进行分枝。intprog 函数的调用格式如下: [x,fval,exitflag]=intprog(c,A,b,Aeq,beq,lb,ub,M,TolXInteger) 该函数解决的整数规划问题为: ????? ??????∈=≥≤≤=≤=) 取整数(M j x n i x ub x lb b x A b Ax t s x c f j i eq eq T ),,2,1(0..min Λ 在上述标准问题中,假设x 为n 维设计变量,且问题具有不等式约束1m 个,等式约束2m 个,那么:c 、x 均为n 维列向量,b 为1m 维列向量,eq b 为2m 维列向量,A 为n m ?1维矩阵,eq A 为n m ?2维矩阵。 在该函数中,输入参数有c,A,b,A eq ,b eq ,lb,ub,M 和TolXInteger 。其中c 为目标函数所对应设计变量的系数,A 为不等式约束条件方程组构成的系数矩阵,b 为不等式约束条件方程组右边的值构成的向量。Aeq 为等式约束方程组构成的系数矩阵,b eq 为等式约束条件方程组右边的值构成的向量。lb 和ub 为设计变量对应的上界和下界。M 为具有整数约束条件限制的设计变量的序号,例如问题中设计变量为621,,,x x x Λ,要求32,x x 和6x 为整数,则M=[2;3;6];若要求全为整数,则M=1:6,或者M=[1;2;3;4;5;6]。TolXInteger 为判定整数的误差限,即若某数x 和最邻近整数相差小于该误差限,则认为x 即为该整数。

整数规划和多目标规划模型知识分享

整数规划和多目标规 划模型

1 整数规划的MATLAB 求解方法 (一) 用MATLAB 求解一般混合整数规划问题 由于MATLAB 优化工具箱中并未提供求解纯整数规划和混合整数规划的函数,因而需要自行根据需要和设定相关的算法来实现。现在有许多用户发布的工具箱可以解决该类问题。这里我们给出开罗大学的Sherif 和Tawfik 在MATLAB Central 上发布的一个用于求解一般混合整数规划的程序,在此命名为intprog ,在原程序的基础上做了简单的修改,将其选择分枝变量的算法由自然序改造成分枝变量选择原则中的一种,即:选择与整数值相差最大的非整数变量首先进行分枝。intprog 函数的调用格式如下: [x,fval,exitflag]=intprog(c,A,b,Aeq,beq,lb,ub,M,TolXInteger) 该函数解决的整数规划问题为: ????? ??????∈=≥≤≤=≤=) 取整数(M j x n i x ub x lb b x A b Ax t s x c f j i eq eq T ),,2,1(0..min 在上述标准问题中,假设x 为n 维设计变量,且问题具有不等式约束1m 个,等式约束2m 个,那么:c 、x 均为n 维列向量,b 为1m 维列向量,eq b 为2m 维列向量,A 为n m ?1维矩阵,eq A 为n m ?2维矩阵。 在该函数中,输入参数有c,A,b,A eq ,b eq ,lb,ub,M 和TolXInteger 。其中c 为目标函数所对应设计变量的系数,A 为不等式约束条件方程组构成的系数矩阵,b 为不等式约束条件方程组右边的值构成的向量。Aeq 为等式约束方程组构成的系数矩阵,b eq 为等式约束条件方程组右边的值构成的向量。lb 和ub 为

数学规划模型

课程设计 2015年 7 月 5 日

东北石油大学课程设计任务书 课程《数学模型》课程设计 题目应用数学规划模型求解实际数学问题 专业姓名学号 主要内容、基本要求、主要参考资料等 主要内容 简单介绍数学规划模型基本理论及本文所用的规划模型和相关软件LINGO,并通过实例来掌握如何应用数学规划模型求解实际数学问题。并利用本文所介绍的方法来分析林区汽车修理网的布局 课程设计的要求: 1.独立完成建模,并提交一篇建模论文。 2.论文的主要内容包括:摘要,问题的提出,问题的分析,模型假设,模型设计,模型解法与结果,模型结果的分析和检验,包括误差分析、稳定性分析等。模型的优缺点及改进方向。必要的计算机程序。 3.文档格式:参照《东北石油大学课程设计撰写规范》和《数学模型课程设计教学大纲》。 4.课程设计结束时参加答辩。 主要参考资料: [1] 唐焕文,贺明峰,数学模型(第三版),北京:高等教育出版社,2005.3 [2]杨云峰等,数学建模与数学软件,哈尔滨:哈尔滨工程大学出版社,2012.6 [3]陈东彦,李冬梅,王树忠,数学建模,北京:科学出版社,2007 [4] 吴建国等,数学建模案例精编,北京:中国水利水电出版社,2005 [5]胡运权,吴中启,李树青等,运筹学,北京:清华出版社,2003 [6] 焦永兰,管理运筹学,北京:中国铁道出版社,2002 完成期限 2016年6月27日-7月8日 指导教师 专业负责人 2016年7月5日

摘要 人们需要了解各种不确定现象中隐含的必然规律性,并用数学方法研究各种结果。在研究过程中需要处理大量数据,而统计学正是对社会经济数据进行定量分析的重要工具,应用统计方法来整理这些数据,就可以省去不必要的过程。 本文简要介绍了了数学规划模型的概念、特点,以及LINGO软件的发展及用途。本文在求解的过程中主要借助了这个软件。必要的求解过程是利用MATLAB和LINGO来求解的。本文在详细介绍了数学规划模型的几个基本模型的过程中,并且每种模型都举了实例,并且通过LINGO操作,对每种方法所举实例归纳总结了较为简便的求解方法,并且给出了具体答案。最后,本文着重的探讨了典型数学模型应用规划模型方法结合LINGO 求解,在解决林区汽车修理网的布局问题中,很好的体现了规划模型方法在解决典型数学模型问题时应用的广泛性和有效性。 林区的汽车往往需要定期送往不同的修理厂进行大修,不同的汽车分配方案往往需要消耗不同的修理成本. 本文主要利用图论和运筹学理论建立了一套线性规划数学模型,用于求解不同的修理厂规模的条件下最优的汽车分配方案,以及所对应的总费用,并对其进行分析评估。但为寻求最佳的修理厂规模调整方案,本文模拟实际情况中的市场机理,把市场作为资源分配的主要手段,国家(此处为方案制定制者)对市场进行必要的宏观调控。在此方案下得到了相当满意的结果,这也是本文的独到之处。本模型对实际情况中汽车修理分配方案的制定有很大的指导作用.且本模型的处理思想,对市场体制下的很多类似问题都有借鉴作用. 本模型对实际情况中汽车修理分配方案的制定有很大的指导作用.且本模型的处理思想,对市场体制下的很多类似问题都有借鉴作用. 应用规划模型结合实际数学问题可以简化求解步骤,省去繁琐的过程。为实际问题的研究提供了较为简便的方法。 关键词:LINGO;汽车修理网布局;图论;布局规划模型

目标规划模型

§ 目标规划模型 1. 目标规划模型概述 1)引例 目标规划模型是有别于线性规划模型的一类多目标决策问题模型,通过下面的例子,我们可看出这两者的区别。 例1 某工厂的日生产能力为每天500小时,该厂生产A 、B 两种产品,每生产一件A 产品或B 产品均需一小时,由于市场需求有限,每天只有300件A 产品或400件B 产品可卖出去,每出售一件A 产品可获利10元,每出售一件B 产品可获利5元,厂长按重要性大小的顺序列出了下列目标,并要求按这样的目标进行相应的生产。 (1)尽量避免生产能力闲置; (2)尽可能多地卖出产品,但对于能否多卖出A 产品更感兴趣; (3)尽量减少加班时间。 显然,这样的多目标决策问题,是单目标决策的线性规划模型所难胜任的,对这类问题,须采用新的方法和手段来建立对应的模型。 2)相关的几个概念 (1)正、负偏差变量+ d 、- d 正偏差变量+ d 表示决策值) ,,2,1(n i x i ΛΛ=超过目标值的部分;负偏差变量- d 表示 决策值 ) ,,2,1(n i x i ΛΛ=未达到目标值的部分;一般而言,正负偏差变量+ d 、- d 的相互 关系如下: 当决策值 ) ,,2,1(n i x i ΛΛ=超过规定的目标值时, 0 ,0=>- +d d ;当决策值) ,,2,1(n i x i ΛΛ=未超过规定的目标值时, 0 ,0>=- +d d ;当决策值),,2,1(n i x i ΛΛ=正好等于规定的目标值时, 0 ,0==- +d d 。 (2)绝对约束和目标约束 绝对约束是必须严格满足的等式约束或不等式约束,前述线性规划中的约束条件一般都是绝对约束;而目标约束是目标规划所特有的,在约束条件中允许目标值发生一定 的正偏差或负偏差的一类约束,它通过在约束条件中引入正、负偏差变量+d 、- d 来实现。

数学建模多目标规划函数fgoalattain

MATLAB 中文论坛讲义 多目标规划优化问题 Matlab 中常用于求解多目标达到问题的函数为fgoalattain.假设多目标函数问题的数学模型为: ub x lb beq x Aeq b x A x ceq x c goal weight x F t s y x ≤≤=≤=≤≤-**0 )(0 )(*)(..min ,γγ weight 为权值系数向量,用于控制对应的目标函数与用户定义的目标函数值的接近程度; goal 为用户设计的与目标函数相应的目标函数值向量; γ为一个松弛因子标量; F(x)为多目标规划中的目标函数向量。 综上,fgoalattain 的优化过程就是使得F 逼近goal; 工程应用中fgoalattain 函数调用格式如下: [x,fval]=fgoalattain (fun,x0,goal,weight,A,b,Aeq,beq,lb,ub,nonlcon) x0表示初值; fun 表示要优化的目标函数; goal 表示函数fun 要逼近的目标值,是一个向量,它的维数大小等于目标函数fun 返回向量F 的维数大小; weight 表示给定的权值向量,用于控制目标逼近过程的步长; 例1. 程序(利用fgoalattain 函数求解) 23222 12 3222132min )3()2()1(min x x x x x x ++-+-+- 0,,6 ..321321≥=++x x x x x x t s ①建立M 文件. function f=myfun(x) f(1)= x(1)-1)^2+(x(2)-2)^2+(x(3)-3)^2; f(2)= x(1)^2+2*x(2)^2+3*x(3)^2; ②在命令窗口中输入. goal=[1,1]; weight=[1,1];

线性规划模型在企业生产计划中的应用

诚信声明 我声明,所呈交的毕业论文是本人在老师指导下进行的研究工作及取得的研究成果。据我查证,除了文中特别加以标注和致谢的地方外,论文中不包含其他人已经发表或撰写过的研究成果,我承诺,论文中的所有内容均真实、可信。 毕业论文作者签名:签名日期:年月日

摘要:在企业生产过程中,生产资源的分配直接影响到企业的经济效益。因此,企业在制定生产计划时,人力物力和时间等资源的优化配制是首要面对的关键问题,而建立线性规划模型则是目前解决该问题的有效方法之一。本文旨在针对上述有限资源条件的约束下,通过建立相应的线性规划模型来制定生产计划以实现企业资源最优化、利益最大化,同时利用LINGO 11.0软件求解线性规划模型并分析在某些资源变动时对该模型所产生的影响并寻求最优生产方案。 关键词:企业生产计划;线性规划;数学模型;LINGO 11.0

Abstract:In the enterprise production process, the allocation of production resources directly affects the economic efficiency of enterprises. Therefore, enterprises in the development of production plan, formulated to optimize the resources of manpower and time is the key problem of face. And to establish the linear programming model is one of the effective ways to solve the problem. This paper aimed at the limited resource constraints, by establishing linear programming model corresponding to make production plan in order to realize the maximization of enterprise resource optimization, interest, and using LINGO11.0 software to solve the linear programming model and analysis the influence on the model in some resource changes and seek the optimal production plan. Key words:Production plan;Linear programming;Mathematical model; LINGO 11.0 目录

目标规划模型

§5.3 目标规划模型 1. 目标规划模型概述 1)引例 目标规划模型是有别于线性规划模型的一类多目标决策问题模型,通过下面的例子,我们可看出这两者的区别。 例1 某工厂的日生产能力为每天500小时,该厂生产A 、B 两种产品,每生产一件A 产品或B 产品均需一小时,由于市场需求有限,每天只有300件A 产品或400件B 产品可卖出去,每出售一件A 产品可获利10元,每出售一件B 产品可获利5元,厂长按重要性大小的顺序列出了下列目标,并要求按这样的目标进行相应的生产。 (1)尽量避免生产能力闲置; (2)尽可能多地卖出产品,但对于能否多卖出A 产品更感兴趣; (3)尽量减少加班时间。 显然,这样的多目标决策问题,是单目标决策的线性规划模型所难胜任的,对这类问题,须采用新的方法和手段来建立对应的模型。 2)相关的几个概念 (1)正、负偏差变量+ d 、- d 正偏差变量+ d 表示决策值 ) ,,2,1(n i x i =超过目标值的部分;负偏差变量 - d 表示决策值 ) ,,2,1(n i x i =未达到目标值的部分;一般而言,正负偏差变量 + d 、- d 的相互关系如下: 当决策值 ) ,,2,1(n i x i =超过规定的目标值时, ,0=>- + d d ;当决策值 ),,2,1(n i x i =未超过规定的目标值时,0 ,0>=- + d d ;当决策值 ) ,,2,1(n i x i =正好等于规定的目标值时, ,0==- + d d 。 (2)绝对约束和目标约束 绝对约束是必须严格满足的等式约束或不等式约束,前述线性规划中的约束

条件一般都是绝对约束;而目标约束是目标规划所特有的,在约束条件中允许目标值发生一定的正偏差或负偏差的一类约束,它通过在约束条件中引入正、负偏差变量+ d 、- d 来实现。 (3)优先因子(优先级)与权系数 目标规划问题常要求许多目标,在这些诸多目标中,凡决策者要求第一位达到的目标赋予优先因子1P ,要求第二位达到的目标赋予优先因子2P ,……,并规定1+>>k k P P ,即1+k P 级目标的讨论是在k P 级目标得以实现后才进行的(这里 n k ,,2,1 =)。若要考虑两个优先因子相同的目标的区别,则可通过赋予它们 不同的权系数 j w 来完成。 3)目标规划模型的目标函数 目标规划的目标函数是根据各目标约束的正、负偏差变量+ d 、- d 和其优先因子来构造的,一般而言,当每一目标值确定后,我们总要求尽可能地缩小与目标值的偏差,故目标规划的目标函数只能是 ) ,( min - +=d d f z 的形式。我们 可将其分为以下三种情形: (1)当决策值) ,,2,1(n i x i =要求恰好等于规定的目标值时,这时正、负 偏差变量+ d 、- d 都要尽可能小,即对应的目标函数为: ) ( min - + +=d d f z ; (2)当决策值) ,,2,1(n i x i =要求不超过规定的目标值时,这时正偏差变 量+ d 要尽可能小,即对应的目标函数为: ) ( min + =d f z ; (3)当决策值 ) ,,2,1(n i x i =要求超过规定的目标值时,这时负偏差变量 - d 要尽可能小,即对应的目标函数为: ) ( min - =d f z 。 目标规划数学模型的一般形式为: ∑∑=+ +-- =+= K k k lk k lk L l l d w d w P z 1 1 ) ( min

目标规划模型

1线性规划的局限性 在我们解题过程中,大量运用线性规划建模,但是在很多情况下,线性规划具有不可避免的局限性: (1)线性规划要求所解决的问题必须满足全部的约束,而实际问题中并非所有约束都需要严格的满足; (2)线性规划只能处理单目标的优化问题,而对一些次目标只能转化为约束处理,而在实际问题中,目标和约束是可以相互转化的,处理时不一定要严格区分; (3)线性规划在处理问题时,将各个约束(也可看做目标)的地位看成同等重要,而在实际问题中,各目标的重要性即有层次上的差别,也有在同一层次上不同权重的差别; (4)线性规划寻找最优解,而许多实际问题只需要找到满意解就可以了。 2目标规划的基本概念 为了克服线性规划的局限性,目标规划采用如下手段。 1). 设置偏差变量 用偏差变量来表示实际值与目标值之间的差异,令d+为超出目标的差值,称为正偏差变量;d- 为未达到目标的差值,称为负偏差变量。其中d+ 与d- 至少有一个为0。当实际值超过目标值时,有d- =0,d+>0;当实际值未达到目标值时,有d+ =0,d- >0;当实际值与目标值一致时,有d+ =d- =0。 2)统一处理目标与约束 在目标规划中,约束有两类,一类是对资源有严格限制的,同线性规划的处理相同,用严格的等式或不等式约束来处理,成为刚性约束; 另一类约束是可以不严格控制的,连同原线性规划的目标,构成柔性约束。如果希望不等式保持大于等于,则极小化负偏差;如果希望不等式保持小于等于,则极小化正偏差;如果希望保持等式,则同时极小化正、负偏差。 3)目标的优先级与权系数 在目标规划模型中,目标的优先分为两个层次。第一个层次是目标分成不同的优先级,在计算目标规划时,必须先优化高优先级的目标,然后再优化低优先级的目标。通常以P1,P2,……表示不同的因子,并规定了优先等级。第二个层次是目标处于同一优先级,但两个目标的权重不一样,因此两目标同时优化,但用权系数的大小来表示目标重要性的差别。 3目标规划模型的建立 总的来讲,目标规划在建模中,除刚性约束必须严格满足外,对所有目标约束均允许有偏差。其求解过程要从高到低逐层优化,在不增加高层次目标的偏差值的情况下,逐次使低层次的偏差达到极小。 3.1例题:(生产安排问题)某企业生产甲、乙两种产品,需要用到A、B、C三种设备,关于产品的盈利与使用设备的工时及限制如表1-1所示。问:该企业应如何安排生产,使得在计划期内总利润最大?

运筹学-线性规划模型在实际生活中的应用

线性规划模型在实际生活中的应用 【摘要】线性规划在实际生活中扮演着很重要的角色,研究对象是计划管理工作中有关安排和估值的问题,其广泛应用于经济等领域,是实际生活中进行管理决策的最有效的方法之一。解决的主要问题是在给定条件下,按某一衡量指标来寻找安排的最优方案。本文通过对例题利用线性规划分析,如何合理的分配利用,最终找到最优解使企业利润最大,说明了线性规划在实际生活中的应用,而且对线性规划问题模型的建立,模型的解进行了分析,运用图解法和单纯形法解决问题。 【关键词】线性规划、建模、实际生活、图解法、单纯形法 前言:线性规划(Linear programming,简称LP)是运筹学中研究较早、发展较快、应用广泛、方法较成熟的一个重要分支,它是辅助人们进行科学管理的一种数学方法。研究线性约束条件下线性目标函数的极值问题的数学理论和方法。英文缩写LP。它是运筹学的一个重要分支,广泛应用于军事作战、经济分析、经营管理和工程技术等方面。为合理地利用有限的人力、物力、财力等资源作出的最优决策,提供科学的依据。 在实际生活中,经常会遇到一定的人力、物力、财力等资源条件下,如何精打细算巧安排,用最少的资源取得最大的效益的问题,而这正是线性规划研究的基本内容,它在实际生活中有着非常广泛的应用.任何一个组织的管理者都必须对如何向不同的活动分配资源的问题做出决策,即如何有效地利用人力、物力完成更多的任务,或在预定的任务目标下如何耗用最少的人力、物力去实现目标。在许多情况下,大量不同的资源必须同时进行分配,需要这些资源的活动可以是不同的生产活动,营销活动,金融活动或者其他一些活动。随着计算技术的不断发展,使成千上万个约束条件和决策变量的线性规划问题能迅速地求解,更为线性规划在经济等各领域的广泛应用创造了极其有利的条件。线性规划已经成为现代化管理的一种重要的手段。本文运用常用的图解法和单纯形法解决利润最大化决

目标规划模型

§5.3 目标规划模型 1. 目标规划模型概述 1)引例 目标规划模型是有别于线性规划模型的一类多目标决策问题模型,通过下面的例子,我们可看出这两者的区别。 例1 某工厂的日生产能力为每天500小时,该厂生产A 、B 两种产品,每生产一件A 产品或B 产品均需一小时,由于市场需求有限,每天只有300件A 产品或400件B 产品可卖出去,每出售一件A 产品可获利10元,每出售一件B 产品可获利5元,厂长按重要性大小的顺序列出了下列目标,并要求按这样的目标进行相应的生产。 (1)尽量避免生产能力闲置; (2)尽可能多地卖出产品,但对于能否多卖出A 产品更感兴趣; (3)尽量减少加班时间。 显然,这样的多目标决策问题,是单目标决策的线性规划模型所难胜任的,对这类问题,须采用新的方法和手段来建立对应的模型。 2)相关的几个概念 (1)正、负偏差变量+d 、- d 正偏差变量+ d 表示决策值 ) ,,2,1(n i x i ΛΛ=超过目标值的部分;负偏差变量 -d 表示决策值),,2,1(n i x i ΛΛ=未达到目标值的部分;一般而言,正负偏差变量+d 、-d 的相互关系如下: 当决策值 ) ,,2,1(n i x i ΛΛ=超过规定的目标值时, 0 ,0=>- +d d ;当决策值),,2,1(n i x i ΛΛ=未超过规定的目标值时, 0 ,0>=-+d d ;当决策值) ,,2,1(n i x i ΛΛ=正好等于规定的目标值时, 0 ,0==- +d d 。 (2)绝对约束和目标约束 绝对约束是必须严格满足的等式约束或不等式约束,前述线性规划中的约束条件一般都是绝对约束;而目标约束是目标规划所特有的,在约束条件中允许目

Matlab学习系列27. 多目标规划

27. 多目标规划 一、线性规划的局限性 1. 线性规划要求所求解问题必须满足全部的约束,而实际问题中并非所有约束都需要严格的满足; 2. 线性规划只能处理单目标的优化问题,从而对一些次目标只能转化为约束处理,而实际问题中,目标和约束是可以相互转化的,处理时不一定要严格区分; 3. 线性规划在处理问题时,将各个约束(也可看成目标)的地位看成同等重要,实际问题中,各个目标的重要性有层次上的差别,在同一层次也可能有不同权重; 4. 线性规划寻找最优解,而许多实际问题只要找到满意解就可以了。 例1 (线性规划——生产安排问题) 某企业生产甲、乙两种产品,需要用到A,B,C三种设备,每天产品盈利与设备使用工时及限制如下表: 问:该企业应如何安排生产,能使总利润最大?

解:设甲乙产品的产量分别为x 1, x 2,建立线性规划模型: 12 121212max 200300 s. t. 2212 416 515 ,0z x x x x x x x x =++≤≤≤≥ 用Lingo 可求得最优解:x 1=3, x 2=3, z *=1500. 但实际上,企业的经营目标不仅仅是利润,还需要考虑多个方面,比如:增加下列因素(目标) (1) 力求使利润不低于1500元; (2) 考虑市场需求,甲乙两种产品的产量比应尽量保持1:2; (3) 设备A 位贵重设备,严格禁止超时使用; (4)设备C 可以适当加班,但要控制,设备B 既要求充分利用,又尽可能不加班,在重要性上,设备B 是设备C 的3倍。 这就需要用目标规划。 二、目标规划的基本概念 1. 设置偏差变量 偏差变量——表示实际值与目标值之间的差异; d +——表示超出目标的差值,称为正偏差变量;当实际值超过目标值时,有d - = 0,d +> 0; d -——表示未达到目标的差值,称为负偏差变量;当实际值未达到目标值时,有d + = 0,d ->0. 注:若实际值与目标值一致,有d - = d += 0.

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