【运筹学】线性规划数学模型 ( 线性规划求解 | 根据非基变量的解得到基变量解 | 基解 | 基可行解 | 可行基 )

举报
韩曙亮 发表于 2022/01/10 23:13:51 2022/01/10
【摘要】 文章目录 一、线性规划求解二、根据非基变量的解得到基变量解三、基解四、基可行解五、可行基 一、线性规划求解 在上一篇博客 【运筹学】线性规划数学模型 ( 求解基矩阵...





一、线性规划求解



在上一篇博客 【运筹学】线性规划数学模型 ( 求解基矩阵示例 | 矩阵的可逆性 | 线性规划表示为 基矩阵 基向量 非基矩阵 非基向量 形式 ) 中 , 将线性规划的等式表示为以下形式 :

B X B + N X N = b BX_B + NX_N = b BXB​+NXN​=b


写成上述形式之后 , 就可以表示出上述等式的解 , 如果上述等式解满足线性规划约束变量的要求 , 即所有的变量都大于等于 0 , 那么该解就是线性规划的解 ;


上述式子中 , X N X_N XN​ 非基变量 , 是可以随意取值的变量 ;

只要非基变量 X N X_N XN​ 取定一组解 , 基变量 X B X_B XB​ 就可以被唯一确定 ;

( X B X N )

(XBXN) ( X B X N )
(XB​XN​​) 方程组完整的解 ;





二、根据非基变量的解得到基变量解



如何根据非基变量 X N X_N XN​ 的解 , 确定基变量 X B X_B XB​ 的解 ?


基矩阵 B B B 是可逆的 , 那么 B B B 的逆矩阵 B − 1 B^{-1} B−1 是存在的 , 上述方程 B X B + N X N = b BX_B + NX_N = b BXB​+NXN​=b 左右两端 , 都乘以 B − 1 B^{-1} B−1 , 如下计算 :


B X B + N X N = b ( B X B + N X N ) × B − 1 = B − 1 b I × X B + B − 1 N X N = B − 1 b X B = B − 1 b − B − 1 N X N

BXB+NXN(BXB+NXN)×B−1I×XB+B−1NXNXB====bB−1bB−1bB−1b−B−1NXN B X B + N X N = b ( B X B + N X N ) × B − 1 = B − 1 b I × X B + B − 1 N X N = B − 1 b X B = B − 1 b − B − 1 N X N
BXB​+NXN​(BXB​+NXN​)×B−1I×XB​+B−1NXN​XB​​====​bB−1bB−1bB−1b−B−1NXN​​


其中 I I I 是单位阵 , 单位阵乘以矩阵 X B X_B XB​ 其结果还是 X B X_B XB​ ;

关于单位阵 , 参考 单位矩阵 - 百度百科


上述式子最终得到 X B = B − 1 b − B − 1 N X N X_B = B^{-1}b - B^{-1}NX_N XB​=B−1b−B−1NXN​ , 此时 如果非基变量的值 X N X_N XN​ 已经解出来 , 那么 基变量 X B X_B XB​ 可以通过上述表达式表示出来 ;





三、基解



给定一个基矩阵 B B B , 约束方程可以转化成 X B = B − 1 b − B − 1 N X N X_B = B^{-1}b - B^{-1}NX_N XB​=B−1b−B−1NXN​ 形式 , 只要给定一组 X N X_N XN​ 的解 , 就可以 得到一组 X B X_B XB​ 的解 ;


非基变量 O O O 解 : 找到 X N X_N XN​ 的一组最简单的解 , 这里随意找一组 X N X_N XN​ 的解都可以 , 最简单的一组解就是 X N X_N XN​ 的所有值都是 0 0 0 , 即让所有的非基变量等于 0 0 0 , 此时 X N X_N XN​ 为零矩阵 , 使用 O O O 表示 ;


对应基变量的解 : 将所有的非基变量等于 0 0 0 , 即 X N = O X_N = O XN​=O 的条件代入 X B = B − 1 b − B − 1 N X N X_B = B^{-1}b - B^{-1}NX_N XB​=B−1b−B−1NXN​ 中 , 有 :

X B = B − 1 b X_B = B^{-1}b XB​=B−1b


此时线性规划的解为 : ( B − 1 b O )

(B−1bO) ( B − 1 b O )
(B−1bO​) 其中 O O O 是零矩阵 该解就是线性规划的基解 ;


基矩阵 B B B -> 非基变量解 O O O -> 基变量解 B − 1 b B^{-1}b B−1b : 基解最根本是先确定基矩阵 B B B , 确定 基矩阵 B B B 之后 , 就可以将变量分为基变量 和 非基变量 , 此时将非基变量取值为零矩阵 O O O , 得到基变量的解 B − 1 b B^{-1}b B−1b ;


基解 X B X_B XB​ 是由基矩阵 B B B 唯一确定的 ; 只要给定基矩阵 , 就可以唯一确定基解 ;


基解个数 : 一个线性规划中的基解个数 , 就是基矩阵可数 , 就是可逆矩阵个数 ;


通常情况下的基解个数 : 系数矩阵 A A A , 是 m × n m \times n m×n 维的矩阵 , m m m 行等式 , n n n 个变量 , 其任意 m m m 列向量 , 组成的 m m m 阶方阵 , 都是可逆矩阵 , 其有 C ( n , m ) C(n,m) C(n,m) 个基矩阵 , 也有 C ( n , m ) C(n,m) C(n,m) 组基解 ;


基解定义 : 确定一个 m × n m \times n m×n 阶系数矩阵的基矩阵 B B B , 令非基变量 X N X_N XN​ 等于 0 0 0 , 有约束条件 X B = B − 1 b − B − 1 N X N X_B = B^{-1}b - B^{-1}NX_N XB​=B−1b−B−1NXN​ 可以解出其基变量 X B X_B XB​ , 这组 ( B − 1 b O )

(B−1bO) ( B − 1 b O )
(B−1bO​) 基解中的变量取非 0 0 0 值的个数 , 不超过等式个数 m m m 基解总数不超过 C ( n , m ) C(n,m) C(n,m)





四、基可行解



完整的线性规划标准形式如下 :

m a x Z = ∑ j = 1 n c j x j s . t { ∑ j = 1 n a i j x j = b i i = 1 , 2 , ⋯   , m x j ≥ 0 j = 1 , 2 , ⋯   , n

maxZ=∑nj=1cjxjs.t⎧⎩⎨⎪⎪∑nj=1aijxj=bixj≥0i=1,2,⋯,mj=1,2,⋯,n m a x Z = ∑ j = 1 n c j x j s . t { ∑ j = 1 n a i j x j = b i i = 1 , 2 , ⋯ , m x j ≥ 0 j = 1 , 2 , ⋯ , n
maxZ=∑j=1n​cj​xj​s.t⎩⎪⎨⎪⎧​∑j=1n​aij​xj​=bi​xj​≥0​i=1,2,⋯,mj=1,2,⋯,n​​


上述的基解 , 只是根据 ∑ j = 1 n a i j x j = b i ( i = 1 , 2 , ⋯   , m ) \sum_{j = 1}^{n} a_{ij} x_j = b_i \quad ( i = 1,2,\cdots,m) ∑j=1n​aij​xj​=bi​(i=1,2,⋯,m) 约束条件等式解出的 ;

还需要满足 x j ≥ 0 ( j = 1 , 2 , ⋯   , n ) x_j \geq 0 \quad ( j= 1, 2,\cdots,n) xj​≥0(j=1,2,⋯,n) 条件 ;


基可行解定义 : 满足线性规划中的 x j ≥ 0 ( j = 1 , 2 , ⋯   , n ) x_j \geq 0 \quad ( j= 1, 2,\cdots,n) xj​≥0(j=1,2,⋯,n) 约束条件的 基解 , 称为 基可行解 ;


给定线性规划系数矩阵 m × n m \times n m×n 阶 :

  • 其可行解个数是无限的 , 因为其非基变量 X N X_N XN​ 可以有无限种取值 , 对应的基变量 X B X_B XB​ 也有无限种取值 ;
  • 其基解个数是有限的 , 因为非基变量只能取 O O O 零矩阵 , 对应的基变量也是有限的 , 不超过 C n m C_n^m Cnm​ 个 ;

可行解有无穷多个 , 基解是有限个 , 如果一个解既是基解 , 又是可行解 , 那么称该解是基可行解 ;

基解个数是有限的 , 基可行解 是 基解 与 可行解 的交集 , 基可行解的个数必然也是有限的 ;


迭代思想 : 在解里面找到一个解 , 看该解是否是最优的 , 如果不是 , 就迭代到下一个解 , 继续重复查看该解是否是最优 ; 如果迭代的集合是有限的 , 其肯定要比无限的集合简单很多 ;

因此线性规划中 , 在有限个基可行解中 , 迭代查找最优解 , 将搜索范围从无限个可行解 , 变成了有限个基可行解 ;

在这里插入图片描述





五、可行基



可行基 : 基可行解 对应的 基矩阵 B B B , 就是 可行基 ;


使用 X B = B − 1 b − B − 1 N X N X_B = B^{-1}b - B^{-1}NX_N XB​=B−1b−B−1NXN​ , 代入 X N = O X_N = O XN​=O , 解出其基变量 X B X_B XB​ , 这组 ( B − 1 b O )

(B−1bO) ( B − 1 b O )
(B−1bO​) X N X_N XN​ 0 0 0 B − 1 b B^{-1}b B−1b X B X_B XB​

文章来源: hanshuliang.blog.csdn.net,作者:韩曙亮,版权归原作者所有,如需转载,请联系作者。

原文链接:hanshuliang.blog.csdn.net/article/details/107305467

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0)

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。