• 线性规划学习


    线性规划

    一般形式:
    max ⁡ c T x  s.t.  A x ≤ b x ≥ 0

    maxcTx s.t. Axbx0" role="presentation" style="position: relative;">maxcTx s.t. Axbx0
    maxcTx s.t. Axbx0
    其中 A ∈ R m × n , b ∈ R m , x ∈ R n \mathbf{A}\in\mathbb{R}^{m\times n},\mathbf{b}\in\mathbb{R}^m,\mathbf{x}\in\mathbb{R}^n ARm×n,bRm,xRn

    标准形式:
    max ⁡ c T x  s.t.  A x = b x ≥ 0

    maxcTx s.t. Ax=bx0" role="presentation" style="position: relative;">maxcTx s.t. Ax=bx0
    maxcTx s.t. Ax=bx0
    其中 A ∈ R m × n , b ∈ R m , x ∈ R n \mathbf{A}\in\mathbb{R}^{m\times n},\mathbf{b}\in\mathbb{R}^m,\mathbf{x}\in\mathbb{R}^n ARm×n,bRm,xRn

    极点

    C ⊆ R n C\subseteq \mathbb{R}^n CRn是一个非空闭凸集, x ˉ ∈ C \bar{\mathbf{x}}\in C xˉC
    如果不存在 x 1 , x 2 ∈ C , λ ∈ ( 0 , 1 ) \mathbf{x}_1,\mathbf{x}_2\in C,\lambda \in \left(0,1\right) x1,x2C,λ(0,1),使得 x ˉ = λ x 1 + ( 1 − λ ) x 2 \bar{\mathbf{x}}=\lambda \mathbf{x}_1+(1-\lambda)\mathbf{x}_2 xˉ=λx1+(1λ)x2
    x ˉ \bar{\mathbf{x}} xˉ C C C的一个极点(extreme point)

    存在性

    C ⊆ R n C\subseteq \mathbb{R}^n CRn是一个非空闭凸集,则 C C C有极点当且仅当 C C C不包含直线

    证明:
    ⇒ \Rightarrow C ∈ R n C\in\mathbb{R}^n CRn是一个非空闭凸集, x ˉ \bar{\mathbf{x}} xˉ C C C的一个极点

    假设 C C C包含直线,即 ∃ x ∈ C ,   s . t . { x + α d ∣ α ∈ R , d ∈ R n } ⊆ C \exists \mathbf{x}\in C,\ s.t.\left\{\mathbf{x}+\alpha \mathbf{d}|\alpha \in\mathbb{R},\mathbf{d}\in\mathbb{R}^n\right\}\subseteq C xC, s.t.{x+αdαR,dRn}C

    x ( n ) = ( 1 − 1 n ) x ˉ + 1 n ( x + n d ) \mathbf{x}^{(n)}=\left(1-\frac{1}{n}\right)\bar{\mathbf{x}}+\frac{1}{n}\left(\mathbf{x}+n\mathbf{d}\right) x(n)=(1n1)xˉ+n1(x+nd)
    因为 C C C是凸的,所以 x ( n ) ∈ C \mathbf{x}^{(n)}\in C x(n)C
    因为 C C C是闭的,所以 { x ( i ) } i = 1 ∞ ∈ C \left\{\mathbf{x}^{(i)}\right\}_{i=1}^{\infty}\in C {x(i)}i=1C
    于是
    lim ⁡ n → ∞ x ( n ) = x ˉ + d ∈ C \lim\limits_{n\to \infty}\mathbf{x}^{(n)}=\bar{\mathbf{x}}+\mathbf{d}\in C nlimx(n)=xˉ+dC
    同理 x ˉ − d ∈ C \bar{\mathbf{x}}-\mathbf{d}\in C xˉdC

    但是
    1 2 ( x ˉ + d ) + 1 2 ( x ˉ − d ) = x ˉ ∈ C \frac{1}{2}\left(\bar{\mathbf{x}}+\mathbf{d}\right)+\frac{1}{2}\left(\bar{\mathbf{x}}-\mathbf{d}\right)=\bar{\mathbf{x}}\in C 21(xˉ+d)+21(xˉd)=xˉC
    x ˉ \bar{\mathbf{x}} xˉ是极点矛盾
    所以 C C C不包含直线
    ⇐ \Leftarrow C ∈ R n C\in\mathbb{R}^n CRn是一个非空闭凸集,且不包含直线
    考虑对维度进行数学归纳法

    C ⊆ R C\subseteq \mathbb{R} CR时, C C C是一个线段,极点就是两个端点
    假设 C ⊆ R n − 1 C\subseteq \mathbb{R}^{n-1} CRn1时成立
    C ⊆ R n C\subseteq \mathbb{R}^n CRn时,
    因为不包含直线,所以存在边界点 x \mathbb{x} x (感觉时对的,但是不知道怎么严格证明)
    由支撑超平面定理,存在超平面 H x = { z ∣ a T x = a T z } H_{\mathbf{x}}=\left\{\mathbf{z}|\mathbf{a}^T\mathbf{x}=\mathbf{a}^T\mathbf{z}\right\} Hx={zaTx=aTz},其中 a ∈ R n \mathbf{a}\in\mathbb{R}^n aRn
    于是 ∀ y ∈ C , a T y ≤ a T x \forall \mathbf{y}\in C,\mathbf{a}^T\mathbf{y}\le \mathbf{a}^T\mathbf{x} yC,aTyaTx
    因此 C ∩ H x ⊆ R n − 1 C\cap H_{\mathbf{x}}\subseteq \mathbb{R}^{n-1} CHxRn1,由假设 C ∩ H x C\cap H_{\mathbf{x}} CHx存在极点 x ˉ \bar{\mathbf{x}} xˉ

    现在证明 x ˉ \bar{\mathbf{x}} xˉ也是 C C C的极点

    x 1 , x 2 ∈ C , λ ∈ ( 0 , 1 ) , s . t .   x ˉ = λ x 1 + ( 1 − λ ) x 2 \mathbf{x}_1,\mathbf{x}_2\in C,\lambda \in\left(0,1\right),s.t.\ \bar{\mathbf{x}}=\lambda \mathbf{x}_1+\left(1-\lambda\right)\mathbf{x}_2 x1,x2C,λ(0,1),s.t. xˉ=λx1+(1λ)x2
    那么
    a T x ˉ = λ a T x 1 + ( 1 − λ ) a T x 2 \mathbf{a}^T\bar{\mathbf{x}}=\lambda \mathbf{a}^T\mathbf{x}_1+\left(1-\lambda\right)\mathbf{a}^T\mathbf{x}_2 aTxˉ=λaTx1+(1λ)aTx2
    因为 H x H_{\mathbf{x}} Hx是支撑超平面, x 1 , x 2 ∈ C , x ˉ ∈ H x \mathbf{x}_1,\mathbf{x}_2\in C,\bar{\mathbf{x}}\in H_{\mathbf{x}} x1,x2C,xˉHx
    所以 a T x 1 ≤ a T x ˉ , a T x 2 ≤ a T x ˉ \mathbf{a}^T\mathbf{x}_1\le \mathbf{a}^T\bar{\mathbf{x}},\mathbf{a}^T\mathbf{x}_2\le \mathbf{a}^T\bar{\mathbf{x}} aTx1aTxˉ,aTx2aTxˉ

    但是
    a T x 1 ≤ λ a T x 1 + ( 1 − λ ) a T x 2 ⇒ a T x 1 ≤ a T x 2 a T x 2 ≤ λ a T x 1 + ( 1 − λ ) a T x 2 ⇒ a T x 2 ≤ a T x 1 \mathbf{a}^T\mathbf{x}_1\le\lambda \mathbf{a}^T\mathbf{x}_1+\left(1-\lambda\right)\mathbf{a}^T\mathbf{x}_2\Rightarrow \mathbf{a}^T\mathbf{x}_1\le\mathbf{a}^T\mathbf{x}_2\\ \mathbf{a}^T\mathbf{x}_2\le\lambda \mathbf{a}^T\mathbf{x}_1+\left(1-\lambda\right)\mathbf{a}^T\mathbf{x}_2\Rightarrow \mathbf{a}^T\mathbf{x}_2\le\mathbf{a}^T\mathbf{x}_1 aTx1λaTx1+(1λ)aTx2aTx1aTx2aTx2λaTx1+(1λ)aTx2aTx2aTx1
    于是
    a T x 1 = a T x 2 = a T x ˉ ⇒ x ˉ = x 1 = x 2 \mathbf{a}^T\mathbf{x}_1=\mathbf{a}^T\mathbf{x}_2=\mathbf{a}^T\bar{\mathbf{x}}\Rightarrow \bar{\mathbf{x}}=\mathbf{x}_1=\mathbf{x}_2 aTx1=aTx2=aTxˉxˉ=x1=x2
    于是 x ˉ \bar{\mathbf{x}} xˉ是极点

    顶点

    P P P是一个多面体
    如果存在 c \mathbf{c} c,使得 ∀ y ∈ P , y ≠ x \forall \mathbf{y}\in P,\mathbf{y}\neq \mathbf{x} yP,y=x,有 c T y < c T x \mathbf{c}^T\mathbf{y}<\mathbf{c}^T\mathbf{x} cTy<cTx,
    x x x P P P的顶点(vertex)
    在这里插入图片描述

    活跃约束

    考虑多面体 P = { z ∣ a i T z ≤ b i } P=\left\{\mathbf{z}|\mathbf{a}_i^T\mathbf{z}\le b_i\right\} P={zaiTzbi}
    如果 a i T x = b i \mathbf{a}_i^T\mathbf{x}=b_i aiTx=bi,则称约束 i i i x \mathbf{x} x活跃(active,binding,tight)

    基可行解

    考虑多面体 P = { z ∣ a i T z ≤ b i } P=\left\{\mathbf{z}|\mathbf{a}_i^T\mathbf{z}\le b_i\right\} P={zaiTzbi}, x ∈ P , x ∈ R n \mathbf{x}\in P,\mathbf{x}\in \mathbb{R}^n xP,xRn
    如果 x \mathbf{x} x满足所有的约束,且有 n n n个线性无关的活跃约束( a 1 , a 2 , ⋯   , a n \mathbf{a}_1,\mathbf{a}_2,\cdots,\mathbf{a}_n a1,a2,,an线性无关),
    x \mathbf{x} x称为基可行解(basic feasible solution, BFS)

    基可行解、极点、顶点等价

    x ∈ P = { z ∣ a i T z ≤ b i } , x ∈ R n \mathbf{x}\in P=\left\{\mathbf{z}|\mathbf{a}_i^T\mathbf{z}\le b_i\right\},\mathbf{x}\in\mathbb{R}^n xP={zaiTzbi},xRn,则下面3个等价
    1) x \mathbf{x} x是顶点
    2) x \mathbf{x} x是极点
    3) x \mathbf{x} x是BFS

    证明:
    1 ) ⇒ 2 ) 1)\Rightarrow 2) 1)2)
    x 1 , x 2 ∈ P , λ ∈ [ 0 , 1 ] ,   s . t .   x = λ x 1 + ( 1 − λ ) x 2 \mathbf{x}_1,\mathbf{x}_2\in P,\lambda \in\left[0,1\right],\ s.t.\ \mathbf{x}=\lambda \mathbf{x}_1+\left(1-\lambda\right)\mathbf{x}_2 x1,x2P,λ[0,1], s.t. x=λx1+(1λ)x2
    如果 λ = 0 \lambda =0 λ=0或者 λ = 1 \lambda =1 λ=1,则 x \mathbf{x} x为极点
    如果 λ ∈ ( 0 , 1 ) \lambda \in \left(0,1\right) λ(0,1),
    因为 x \mathbf{x} x是顶点, ∃ c , ∀ y ∈ P , y ≠ x , s . t .   c T y < c T x \exists\mathbf{c},\forall \mathbf{y}\in P,\mathbf{y}\neq \mathbf{x},s.t.\ \mathbf{c}^T\mathbf{y}<\mathbf{c}^T\mathbf{x} c,yP,y=x,s.t. cTy<cTx
    所以 c T x 1 < c T x ,   c T x 2 < c T x \mathbf{c}^T\mathbf{x}_1<\mathbf{c}^T\mathbf{x},\ \mathbf{c}^T\mathbf{x}_2<\mathbf{c}^T\mathbf{x} cTx1<cTx, cTx2<cTx
    又因为 c T x 1 < c T ( λ x 1 + ( 1 − λ ) x 2 ) ⇒ c T x 1 < c T x 2 \mathbf{c}^T\mathbf{x}_1<\mathbf{c}^T\left(\lambda \mathbf{x}_1+\left(1-\lambda\right)\mathbf{x}_2\right)\Rightarrow \mathbf{c}^T\mathbf{x}_1<\mathbf{c}^T\mathbf{x}_2 cTx1<cT(λx1+(1λ)x2)cTx1<cTx2
    c T x 2 < c T ( λ x 1 + ( 1 − λ ) x 2 ) ⇒ c T x 2 < c T x 1 \mathbf{c}^T\mathbf{x}_2<\mathbf{c}^T\left(\lambda \mathbf{x}_1+\left(1-\lambda\right)\mathbf{x}_2\right)\Rightarrow \mathbf{c}^T\mathbf{x}_2<\mathbf{c}^T\mathbf{x}_1 cTx2<cT(λx1+(1λ)x2)cTx2<cTx1
    矛盾
    所以 x \mathbf{x} x是极点

    2 ) ⇒ 3 ) 2)\Rightarrow 3) 2)3)
    假设 x \mathbf{x} x不是BFS
    x \mathbf{x} x使得前k个约束活跃 ( k < n ) (k(k<n)
    a i T x = b i , i = 1 , 2 , ⋯   , k \mathbf{a}_i^T\mathbf{x}=b_i,i=1,2,\cdots,k aiTx=bi,i=1,2,,k
    A ~ = ( a 1 T a 2 T ⋮ a k T ) \tilde{\mathbf{A}}=

    (a1Ta2TakT)" role="presentation" style="position: relative;">(a1Ta2TakT)
    A~= a1Ta2TakT
    A ~ x = 0 \tilde{\mathbf{A}}\mathbf{x}=\mathbf{0} A~x=0有非零解
    d ≠ 0 , A ~ d = 0 \mathbf{d}\neq 0,\tilde{\mathbf{A}}\mathbf{d}=\mathbf{0} d=0,A~d=0
    存在 ϵ > 0 \epsilon>0 ϵ>0,使得 x + ϵ d , x − ϵ d ∈ P \mathbf{x}+\epsilon\mathbf{d},\mathbf{x}-\epsilon\mathbf{d}\in P x+ϵd,xϵdP
    x = 1 2 ( x + ϵ d ) + 1 2 ( x − ϵ d ) \mathbf{x}=\frac{1}{2}\left(\mathbf{x}+\epsilon\mathbf{d}\right)+\frac{1}{2}\left(\mathbf{x}-\epsilon\mathbf{d}\right) x=21(x+ϵd)+21(xϵd)
    x \mathbf{x} x不是极点,矛盾
    所以 x \mathbf{x} x是BFS

    3 ) ⇒ 1 ) 3)\Rightarrow 1) 3)1)
    因为 x \mathbf{x} x是BFS,设 A ~ = ( a 1 T a 2 T ⋮ a n T ) , b ~ = ( b 1 b 2 ⋮ b n ) , A ~ x = b ~ \tilde{\mathbf{A}}=

    (a1Ta2TanT)" role="presentation" style="position: relative;">(a1Ta2TanT)
    ,\tilde{\mathbf{b}}=
    (b1b2bn)" role="presentation" style="position: relative;">(b1b2bn)
    ,\tilde{\mathbf{A}}\mathbf{x}=\tilde{\mathbf{b}} A~= a1Ta2TanT ,b~= b1b2bn ,A~x=b~
    因为 A ~ \tilde{\mathbf{A}} A~可逆,所以 A ~ x = b ~ \tilde{\mathbf{A}}\mathbf{x}=\tilde{\mathbf{b}} A~x=b~有唯一解
    c = ∑ i = 1 n a i \mathbf{c}=\sum_{i=1}^n\mathbf{a}_i c=i=1nai
    c T x = ∑ i = 1 n b i \mathbf{c}^T\mathbf{x}=\sum_{i=1}^{n}b_i cTx=i=1nbi
    ∀ y ≠ x , y ∈ P , s . t .   c T y < ∑ i = 1 n b i = c T x \forall \mathbf{y}\neq \mathbf{x},\mathbf{y}\in P,s.t.\ \mathbf{c}^T\mathbf{y}<\sum_{i=1}^{n}b_i=\mathbf{c}^T\mathbf{x} y=x,yP,s.t. cTy<i=1nbi=cTx
    所以 x \mathbf{x} x是顶点

    极点的最优性

    P = { x ∈ R n ∣ A x ≤ b } P=\left\{\mathbf{x}\in\mathbb{R}^n|\mathbf{Ax}\le \mathbf{b}\right\} P={xRnAxb}
    考虑线性规划问题 L P :   max ⁡ { c T x ∣ x ∈ P } LP:\ \max \left\{\mathbf{c}^T\mathbf{x}|\mathbf{x}\in P\right\} LP: max{cTxxP}
    如果 P P P至少有一个极点,并且LP有最优解,那么至少有一个最优解是 P P P的一个极点

    证明:
    α ∗ \alpha^* α是最优解, O = { x ∈ P ∣ c T x = α ∗ } ⊆ P O=\left\{\mathbf{x}\in P| \mathbf{c}^T\mathbf{x}=\alpha^*\right\}\subseteq P O={xPcTx=α}P
    因为 P P P有极点,所以 P P P不包含直线,因此 O O O不包含直线,于是 O O O存在极点 x ˉ \bar{\mathbf{x}} xˉ

    x 1 , x 2 ∈ P , λ ∈ ( 0 , 1 ) , s . t .   x ˉ = λ x 1 + ( 1 − λ ) x 2 \mathbf{x}_1,\mathbf{x}_2\in P,\lambda \in \left(0,1\right),s.t.\ \bar{\mathbf{x}}=\lambda \mathbf{x}_1+\left(1-\lambda\right)\mathbf{x}_2 x1,x2P,λ(0,1),s.t. xˉ=λx1+(1λ)x2
    c T x ˉ = λ c T x 1 + ( 1 − λ ) c T x 2 \mathbf{c}^T\bar{\mathbf{x}}=\lambda \mathbf{c}^T\mathbf{x}_1+\left(1-\lambda\right)\mathbf{c}^T\mathbf{x}_2 cTxˉ=λcTx1+(1λ)cTx2

    因为 α ∗ \alpha^* α是最优解,所以
    c 1 T x ≤ c T x ˉ = α ∗ \mathbf{c}_1^T\mathbf{x}\le \mathbf{c}^T\bar{\mathbf{x}}=\alpha^* c1TxcTxˉ=α
    c 2 T x ≤ c T x ˉ = α ∗ \mathbf{c}_2^T\mathbf{x}\le \mathbf{c}^T\bar{\mathbf{x}}=\alpha^* c2TxcTxˉ=α
    但是
    c T x 1 ≤ λ c T x 1 + ( 1 − λ ) c T x 2 ⇒ c T x 1 ≤ c T x 2 c T x 2 ≤ λ c T x 1 + ( 1 − λ ) c T x 2 ⇒ c T x 2 ≤ c T x 1 \mathbf{c}^T\mathbf{x}_1\le\lambda \mathbf{c}^T\mathbf{x}_1+\left(1-\lambda\right)\mathbf{c}^T\mathbf{x}_2\Rightarrow \mathbf{c}^T\mathbf{x}_1\le\mathbf{c}^T\mathbf{x}_2\\ \mathbf{c}^T\mathbf{x}_2\le\lambda \mathbf{c}^T\mathbf{x}_1+\left(1-\lambda\right)\mathbf{c}^T\mathbf{x}_2\Rightarrow \mathbf{c}^T\mathbf{x}_2\le\mathbf{c}^T\mathbf{x}_1 cTx1λcTx1+(1λ)cTx2cTx1cTx2cTx2λcTx1+(1λ)cTx2cTx2cTx1
    c T x 1 = c T x 2 = c T x ˉ ⇒ x ˉ = x 1 = x 2 \mathbf{c}^T\mathbf{x}_1=\mathbf{c}^T\mathbf{x}_2=\mathbf{c}^T\bar{\mathbf{x}}\Rightarrow \bar{\mathbf{x}}=\mathbf{x}_1=\mathbf{x}_2 cTx1=cTx2=cTxˉxˉ=x1=x2
    于是 x ˉ \bar{\mathbf{x}} xˉ是极点

    以前高中做线性规划,只知道最优解肯定在顶点上,然而并不知道为啥,上面这个就是证明

    参考
    https://people.seas.harvard.edu/~yaron/AM221-S16/lecture_notes/AM221_lecture7.pdf
    http://math.sfsu.edu/serkan/math430/lecture4.pdf

  • 相关阅读:
    vscode因为大文件而无限崩溃的问题,窗口意外终止(原因:“oom“,代码:“-536870904“
    推荐一个好用的电商开源项目yudao源码
    电商API按关键字搜索商品
    springboot网站开发0201-使用MybatisPlus查询数据库信息返回前端渲染
    ssm springboot网络订餐点餐跑腿系统java 小程序025
    Java进化史:从Java 8到Java 17的语言特性全解析
    亚马逊un38.3报告电池检测,un38.3认证是什么?
    【C++】list的使用(上)
    AWS-CDK的实践和应用
    js的算法-交换排序(冒泡)
  • 原文地址:https://blog.csdn.net/qq_39942341/article/details/126090472