zoukankan      html  css  js  c++  java
  • 单纯形法的矩阵描述

    考虑将单纯形法的求解过程用矩阵进行描述,对于已经引入松弛变量的 LP 问题,其约束条件

    [BX_B+NX_N=b ag{1} ]

    目标函数

    [C_BX_B+C_NX_N=z ag{2} ]

    联立消去 (X_B)

    [z=C_BB^{-1}b+(C_N-C_BB^{-1}N)X_N ag{3} ]

    其中 (C_N-C_BB^{-1}N) 就是所谓的检验数 (sigma)

    因此,单纯形表可以描述为

    基变量 (X_B) 非基变量 (X_N) 右侧 RHS
    系数矩阵 (I) (B^{-1}N) (B^{-1}b)
    检验数 (0) (C_N-C_BB^{-1}N) (-C_BB^{-1}b)

    任意时刻各个部分的核心是某个已知矩阵的部分左乘一个 (B^{-1}),因此求解的核心在于快速地维护 (B^{-1})

    以下我们设 (P_k)(x_k) 对应的原始系数矩阵的那一列。

    我们有递推式

    [B_{i}^{-1}=E_iB_{i-1}^{-1} ag{4} ]

    其中 (E_i) 是把一个单位矩阵中,第 (j) 列替换为 (xi_i) 后的结果,其中 (j) 表示本次新换入的基在 (B_i) 中对应第 (j) 列,(xi_i) 由本次换入变量在换入前 (B_{i-1}^{-1}N_{i-1}) 中对应的列 ((a_1,a_2,...,a_m)) 变换得到,设 (l) 是换出变量对应的行,则

    [xi_i = (-frac {a_1} {a_l}, ...,frac 1 {a_l},...,- frac {a_m} {a_l}) ag{5} ]

    于是,

    [B_i^{-1}=(e_1,...,e_{j-1},xi_i,e_{j+1},...,e_m)B^{-1}_{i-1} ag{6} ]

    换入变量求解根据检验数

    [sigma_i = C_{N_i}-C_{B_i}B_i^{-1}N_i ag{7} ]

    中找最小值下标即可得到,换出变量根据 ( heta) 法则求

    [ heta = displaystylemin_l { frac {B_i^{-1}b} {B_i^{-1}P_k} | B_i^{-1}P_k >0} ag{8} ]

    即可得到。

  • 相关阅读:
    Nginx 部署多个 web 项目(虚拟主机)
    Nginx 配置文件
    Linux 安装 nginx
    Linux 安装 tomcat
    Linux 安装 Mysql 5.7.23
    Linux 安装 jdk8
    Linux 安装 lrzsz,使用 rz、sz 上传下载文件
    springMVC 拦截器
    spring 事务
    基于Aspectj 注解实现 spring AOP
  • 原文地址:https://www.cnblogs.com/mollnn/p/14771316.html
Copyright © 2011-2022 走看看