- 线性规划问题
-
- 线性规划问题的模型建立
- 线性规划问题的模型求解
-
- 1.Lingo求解
- 2.MATLAB求解
线性规划问题
线性规划问题是在一组线性约束条件的限制下,求一线性目标函数最大或最小的问题,一般用于求解最优化问题。因为其目标函数及约束条件均为线性函数,所以被称为线性规划问题。线性规划所研究的对象属于最优化的范畴,本质上是一个极值问题。
基本要素:1.决策变量:线性规划问题中要确定的未知量,可有决策者决定和控制。
2.目标函数:是决策变量的函数,反应决策者对于线性规划问题结果的要求。
3.约束条件:指决策变量取值时受到的各种资源条件的限制,通常表达为含决策变量的等式或不等式。
特征:目标函数和约束条件中的函数都是决策变量的线性函数,并且约束条件是必不可少的。
线性规划问题的模型建立
数学模型的一般形式:1.列出约束条件及目标函数;
2.画出约束条件所表示的可行域;
3.在可行域内求目标函数的最优解及最优值。
数学模型的建立:从实际问题中建立数学模型一般有以下三个步骤:
1.根据影响所要达到目的的因素找到决策变量;
2.由决策变量和所在达到目的之间的函数关系确定目标函数;
3.由决策变量所受的限制条件确定决策变量所要满足的约束条件。
标准形式:
线性规划问题的模型求解
1.Lingo求解
Lingo是Linear Interactive and General Optimizer的缩写,即“交互式的线性和通用优化求解器”,可以用于求解非线性规划,也可以用于一些线性和非线性方程组的求解等,功能十分强大,是求解优化模型的最佳选择。Lingo 是使建立和求解线性、非线性和整数最佳化模型更快更简单更有效率的综合工具,它提供强大的语言和快速的求解引擎来阐述和求解最佳化模型。
一般地,使用Lingo求解运筹学问题可以分为以下两个步骤来完成:
1)根据实际问题,建立数学模型,即使用数学建模的方法建立优化模型;
2)根据优化模型,利用Lingo 来求解模型。主要是根据Lingo软件,把数学模型转译成计算机语言,借助于计算机来求解。
例如:求解下列线性规划问题 应用Lingo来求解该模型,只需要在Lingo窗口中输入以下信息:
m a x = 5 ∗ x 1 + 3 ∗ x 2 + 6 ∗ x 3 ; max=5*x1 +3*x2 +6*x3; max=5∗x1+3∗x2+6∗x3;
x 1 + 2 ∗ x 2 + x 3 < = 18 ; x1 +2*x2 + x3 <=18 ; x1+2∗x2+x3<=18;
2 ∗ x 1 + x 2 + 3 ∗ x 3 = 16 ; 2*x1 + x2+3*x3 =16 ; 2∗x1+x2+3∗x3=16;
x 1 + x 2 + x 3 = 10 ; x1 + x2 + x3 =10 ; x1+x2+x3=10;
@ f r e e ( x 3 ) ; @free(x3); @free(x3);
然后按运行按钮,得到模型最优解,具体如下:
O b j e c t i v e v a l u e : 46.00000 Objective\ _{}\ _{}value: 46.00000 Objective value:46.00000
V a r i a b l e V a l u e R e d u c e d C o s t Variable\ _{}\ _{}\ _{}\ _{}\ _{}\ _{}Value\ _{}\ _{}\ _{}\ _{}\ _{}\ _{}\ _{}\ _{}\ _{}\ _{}\ _{}\ _{}\ _{}Reduced\ _{}\ _{}Cost Variable Value Reduced Cost
x 1 14.00000 0.000000 \ _{}x1\ _{}\ _{}\ _{}\ _{}\ _{}\ _{}\ _{}\ _{}\ _{}\ _{}\ _{}\ _{}\ _{}\ _{}\ _{}14.00000\ _{}\ _{}\ _{}\ _{}\ _{}\ _{}\ _{}\ _{}\ _{}\ _{}0.000000 x1 14.00000 0.000000
x 2 0.000000 1.000000 \ _{}x2\ _{}\ _{}\ _{}\ _{}\ _{}\ _{}\ _{}\ _{}\ _{}\ _{}\ _{}\ _{}\ _{}\ _{}\ _{}0.000000\ _{}\ _{}\ _{}\ _{}\ _{}\ _{}\ _{}\ _{}\ _{}\ _{}1.000000 x2 0.000000 1.000000
x 3 − 4.000000 0.000000 \ _{}x3\ _{}\ _{}\ _{}\ _{}\ _{}\ _{}\ _{}\ _{}\ _{}\ _{}\ _{} -4 .000000\ _{}\ _{}\ _{}\ _{}\ _{}\ _{}\ _{}\ _{}\ _{}\ _{}0.000000 x3 −4.000000 0.000000
由此可知,当 x 1 = 14 , x 2 = 0 , x 3 = − 4 x1 =14,x2 =0,x3 =-4 x1=14,x2=0,x3=−4 时,模型得到最优值,最优值为 46 46 46。
2.MATLAB求解
使用Matlab进行模型求解时需调用linporg()函数,linprog函数是用来求解线性规划问题的。
在 MATLAB中线性规划问题的标准格式:若是目标函数是求解最大值的话,则取-C形式: MATLAB语句: [ X , f v a l 1 ] = l i n p r o g ( f , A , b , A e q , b e q ) ; [X,fval1] = linprog(f,A,b,Aeq,beq); [X,fval1]=linprog(f,A,b,Aeq,beq);则可以得到最优解 f v a l 1 = f ′ ∗ X fval1 = f ‘*X fval1=f′∗X。
例如:求解下列线性规划问题 程序: c = [ 2 ; 3 ; − 5 ] ; c = [2;3;-5]; c=[2;3;−5];
a = [ − 2 , 5 , − 1 ; 1 , 3 , 1 ] ; a = [-2,5,-1;1,3,1]; a=[−2,5,−1;1,3,1];
b = [ − 10 , 12 ] ; b = [-10,12]; b=[−10,12];
a e q = [ 1 , 1 , 1 ] ; aeq = [1,1,1]; aeq=[1,1,1];
b e q = 7 ; beq = 7; beq=7;
[ x , f v a l 1 ] = l i n p r o g ( − c , a , b , a e q , b e q , z e r o s ( 3 , 1 ) ) [x,fval1 ]= linprog(-c,a,b,aeq,beq,zeros(3,1)) [x,fval1]=linprog(−c,a,b,aeq,beq,zeros(3,1))
结果: x = x = x=
6.428571428255824 6.428571428255824 6.428571428255824
0.571428570655132 0.571428570655132 0.571428570655132
0.000000001089048 0.000000001089048 0.000000001089048
f v a l 1 = fval1 = fval1=
− 14.571428563031805 -14.571428563031805 −14.571428563031805
由此可知,当 x 1 = 6.428571428255824 , x 2 = 0.571428570655132 , x 3 = 0.000000001089048 x1 =6.428571428255824,x2 =0.571428570655132,x3 =0.000000001089048 x1=6.428571428255824,x2=0.571428570655132,x3=0.000000001089048 时,模型得到最优值,最优值为 − 14.571428563031805 -14.571428563031805 −14.571428563031805。
今天的文章线性规划四个步骤_一般线性规划问题的数学模型分享到此就结束了,感谢您的阅读,如果确实帮到您,您可以动动手指转发给其他人。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/58512.html