1.1、线性规划问题
在人们的生产实践中,经常会遇到如何利用现有资源来安排生产,以取得最大经济效益的问题。此类问题构成了运筹学的一个重要分支—数学规划,而线性规划(Linear Programming 简记LP)则是数学规划的一个重要分支。自从1947年G.B.Dantzig提出求解线性规划的单纯形方法以来,线性规划在理论上趋向成熟,在实用中日益广泛与深入。特别是在计算机能处理成千上万个约束条件和决策变量的线性规划问题之后,线性规划的适用领域更为广泛了,已成为现代管理中经常采用的基本方法之一。
1.1.1 线性规划的实例与定义
例1.1 某机床厂生产甲、乙两种机床,每台销售后的利润分别为4千元与3千元。生产甲机床需用A、B机器加工,加工时间分别为每台2小时和1小时;生产乙机床需用A、B、C三种机器加工,加工时间为每台各一小时。若每天
可用于加工的机器时数分别为A机器10小时、B机器8小时和C机器7小时,问该厂应生产甲、乙机床各几台,才能使总利润最大?
上述问题的数学模型:设该厂生产x1台甲机床和x2台乙机床时总利润z最大,则x1 ,x2应满足:
变量x1,x2称之为决策变量,(1.1) 式被称为问题的目标函数,(1.2)中的几个不等式是问题的约束条件,记为s.t.(即subject to)。
目标函数及约束条件均为线性函数,故被称为线性规划问题。线性规划问题是在-一组线性约束条件的限制下,求一线性目标函数最大或最小的问题。在解决实际问题时,把问题归结成-一个线性规划数学模型是很重要的一步,往往也是很困难的一步,模型建立得是否恰当,直接影响到求解。而选适当的决策变量,是我们建立有效模型的关键之一。
1.1.2 线性规划问题的解的概念
其中c和x为n维列向量,A、Aeq为适当维数的矩阵,b、beq为适当维数的列向量。【注意:matlab是求的min】
可行解满足约束条件(1.4) 的解x= [x,L,x,I,称为线性规划问题的可行解,而使目标函数(1.3) 达到最大值的可行解叫最优解。
可行域所有可行解构成的集合称为问题的可行域,记为R。
1.1.3 线性规划的Matlab标准形式及软件求解
其中c和x为n维列向量,A、Aeq 为适当维数的矩阵,b、beq 为适当维数的列向量。
Matlab中求解线性规划的命令为
[x,fval] = linprog(c,A,b)
[x,fval] = linprog(c,A,b,Aeq,beq)
[x,fval] = linprog(c,A,b,Aeq,beq,lb,ub)
【注意:这是三种不同的写法,对于标准形式,有哪个参数,就写哪个】
其中x返回的是决策向量的取值,fval返回的是目标函数的最优值,c为价值向量,A,b对应的是线性不等式约束,Aeq,beq对应的是线性等式约束,lb和ub分别对应的是决策向量的下界向量和上界向量。
例1.2 求解下列线性规划问题
求解的matlab程序如下。
f=[-2;-3;5];
a=[-2,5,-1;1,3,1]; b=[-10;12]; .
aeq=[1,1,1];
beq=7;
[x,yl=linprog(f,a,b,aeq,beq,zeros(3,1));
x, y=-y
1.1.4 可以转化为线性规划的问题
1.2 投资的收益和风险
1.2.1 问题提出
1.2.2 符号规定和基本假设
符号规定
si表示第i种投资项目,如股票,债券等,i= 0,1,L ,n,其中s0指存入银行;
ri,Pi,qi分别表示si的平均收益率,交易费率,风险损失率,i= 0,L ,n,其中p0= 0, q0= 0;
ui表示si的交易定额,i= 1,L ,n;
xi表示投资项目si的资金,i= 0,1,L ,n;
a表示投资风险度;
Q表示总体收益;
基本假设
(1) 投资数额M相当大,为了便于计算,假设M= 1;
(2)投资越分散,总的风险越小;
(3)总体风险用投资项目s;中最大的一一个风险来度量;
(4) n+ 1种资产s;之间是相互独立的;
(5)在投资的这一时期内,r;,P;,q;为定值, 不受意外因素影响;
(6)净收益和总体风险只受r;,P;,9;影响,不受其它因素干扰。
1.2.3 模型的分析与建立
模型一:固定风险水平, 优化收益
也就是风险的水平不超过a
模型二:固定盈利水平,极小化风险
也就是最小受益为k
c)投资者在权衡资产风险和预期收益两方面时,希望选择一个令自己满意的投资组合。因此对风险、收益分别赋予权重s (0<s≤1 )和(1-s),s称为投资偏好系数。
1.2.4 模型一的求解
clc,clear
a=0;hold on
while a<0.05
c=[-0.05,-0.27,-0.19,-0.185,-0.185];
A=[zeros(4,1 ),diag([0.025,0.015,0.055,0.026])];
b=a*ones(4,1);
Aeq=[1,1.01,1.02,1 .045,1.065];
beq=1; LB=zeros(5,1);,
[x,Ql=linprog(c,A,b,Aeq,beq,LB);
Q=-Q; plot(a,Q,'*k'); .
a=a+0.001;
end
xlabel('a'),ylabel('Q')
1.2.5 结果分析
可以看出
(1) 风险大,收益也大
(2)当投资越分散时,投资者承担的风险越小,这与题意一致。冒险的投资者会出现集中投资的情况,保守的投资者则尽量分散投资
(3)在a= 0.006附近有- -个转折点,在这一点左边,风险增加很少时,利润增长很快。在这- -点右边,风险增加很大时,利润增长很缓慢,所以对于风险和收益没有特殊偏好的投资者来说,应该选择曲线的转折点作为最优投资组合,大约是a= 0.6%,Q=20%,所对应投资方案为风险度a= 0.006,收益Q= 0.2019 ,x,= 0,x= 0.24,x,=0.4, X3= 0.1091, x4 = 0.2212.
学习来源: