ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

备战建模——线性规划问题

2022-01-29 16:03:14  阅读:214  来源: 互联网

标签:begin end 线性规划 建模 备战 bmatrix x2 x3 x1


问题引入

某机床厂生产甲、乙两种机床,每台销售后的利润分别为 4000 元与 3000 元。生产甲机床需用A、B机器加工,加工时间分别为每合 2h 和1h;生产乙机床需用 A、B、C三种机器加工,加工时间为每台各1h。 若每天可用于加工的机器时数分别为A机器10h B机器8h 和C机器7h,问该厂应生产甲、己机床各儿台,才能便总利润最大?

上述问题的数学模型:设该厂生产x1台甲机床和x2台机床时总利润最大
max ⁡ z = 4 x 1 + 3 x 2 \max z=4x1+3x2 maxz=4x1+3x2
s . t { 2 x 1 + x 2 ≤ 10 x 1 + x 2 ≤ 8 x 2 ≤ 7 x 1 , x 2 ≥ 0 s.t\left\{ \begin{aligned} 2x1+x2≤10 \\ x1+x2≤8 \\ x2≤7\\x1,x2≥0 \end{aligned} \right. s.t⎩⎪⎪⎪⎪⎨⎪⎪⎪⎪⎧​2x1+x2≤10x1+x2≤8x2≤7x1,x2≥0​
线性规划问题是在一组线性约束条件的限制下,求线性目标函数的最大或者最小问题
min ⁡ x f T x \min_xf^Tx minx​fTx

s . t { A ⋅ x ≤ b A e q ⋅ x ≤ b e q l b ≤ x ≤ u b s.t\left\{ \begin{aligned} A·x≤b \\ Aeq·x≤beq \\ lb≤x≤ub \end{aligned} \right. s.t⎩⎪⎨⎪⎧​A⋅x≤bAeq⋅x≤beqlb≤x≤ub​
式中:f,x,b,beq,lb,ub为列向量,f为价值向量,b为资源向量;A,Aeq为矩阵
MATLAB中对应的命令为:
[ x , f v a l ] = l i n p r o g ( f , A , b ) [x,fval]=linprog(f,A,b) [x,fval]=linprog(f,A,b)
[ x , f v a l ] = l i n p r o g ( f , A , b , A e q ) [x,fval]=linprog(f,A,b,Aeq) [x,fval]=linprog(f,A,b,Aeq)
[ x , f v a l ] = l i n p r o g ( f , A , b , A e q , l b , u b ) [x,fval]=linprog(f,A,b,Aeq,lb,ub) [x,fval]=linprog(f,A,b,Aeq,lb,ub)
式中:x返回决策向量的取值;fval返回目标函数的最优值;f为价值向量;A
和b对应线性不等式约束;Aeq和 beg对应线性等式约束;lb和ub分别对应决策向量的下界向量和上界向量。
注:max和≥应该转换成min和≤
以下例子为例:
max ⁡ z = 2 x 1 + 3 x 2 − 5 x 3 \max z=2x1+3x2-5x3 maxz=2x1+3x2−5x3
x 1 + x 2 + x 3 = 7 x1+x2+x3=7 x1+x2+x3=7
s . t { 2 x 1 − 5 x 2 + x 3 ≥ 10 x 1 + 3 x 2 + x 3 ≤ 12 x 1 , x 2 , x 3 ≥ 0 s.t\left\{ \begin{aligned} 2x1-5x2+x3≥10 \\x1+3x2+x3≤12 \\ x1,x2,x3≥0 \end{aligned} \right. s.t⎩⎪⎨⎪⎧​2x1−5x2+x3≥10x1+3x2+x3≤12x1,x2,x3≥0​

化为标准型,即
min ⁡ w = − 2 x 1 − 3 x 2 + 5 x 3 \min w=-2x1-3x2+5x3 minw=−2x1−3x2+5x3

s . t { [ − 2 5 − 1 1 3 1 ] [ x 1 x 2 x 3 ] ≤ [ − 10 12 ] [ 1 1 1 ] [ x 1 x 2 x 3 ] T = 7 [ x 1 x 2 x 3 ] T ≥ [ 0 0 0 ] T s.t\left\{ \begin{aligned} \begin{bmatrix} -2&5&-1\\ 1&3&1\end{bmatrix}\begin{bmatrix} x1\\ x2\\x3\end{bmatrix}≤\begin{bmatrix} -10\\ 12\end{bmatrix} \\ \begin{bmatrix} 1&1&1\end{bmatrix}\begin{bmatrix} x1&x2&x3\end{bmatrix}^T=7 \\ \begin{bmatrix} x1&x2&x3\end{bmatrix}^T≥\begin{bmatrix} 0&0&0\end{bmatrix}^T \end{aligned}\right. s.t⎩⎪⎪⎪⎪⎪⎪⎨⎪⎪⎪⎪⎪⎪⎧​[−21​53​−11​]⎣⎡​x1x2x3​⎦⎤​≤[−1012​][1​1​1​][x1​x2​x3​]T=7[x1​x2​x3​]T≥[0​0​0​]T​
对应的MATLAB代码为:
f = [ 2 ; − 3 ; 5 ] ; a = [ − 2 , 5 , − 1 ; 1 , 3 , 1 ] ; b = [ − 10 , 12 ] ; a e q = [ 1 , 1 , 1 ] ; b e q = 7 ; [ x , y ] = l i n p r o g ( f , a , b , b e q , z e r o s ( 3 , 1 ) ) x , y = − y f=[2;-3;5];\\ a=[-2,5,-1;1,3,1];\\b=[-10,12]; aeq=[1,1,1];\\ beq=7;\\ [x,y]=linprog(f,a,b,beq,zeros(3,1))\\ x,y=-y f=[2;−3;5];a=[−2,5,−1;1,3,1];b=[−10,12];aeq=[1,1,1];beq=7;[x,y]=linprog(f,a,b,beq,zeros(3,1))x,y=−y

标签:begin,end,线性规划,建模,备战,bmatrix,x2,x3,x1
来源: https://blog.csdn.net/u014439531/article/details/122743656

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有