凸优化问题求解(1)

1. 线性规划基本定理

首先我们指出,线性规划均可等价地化成如下标准形式 { min ⁡   c T x , s . t   A x = b , x ⪰ 0 , \begin{align}\begin{cases}\min~c^Tx,\\\mathrm{s.t}~Ax=b,\\x\succeq0,&\end{cases}\end{align} min cTx,s.t Ax=b,x0,其中, A = [ a 1 , ⋯   , a n ] ∈ R m × n , b ∈ R m , c ∈ R n A=[a_1,\cdots,a_n]\in\mathbb{R}^{m\times n},b\in\mathbb{R}^m,c\in\mathbb{R}^n A=[a1,,an]Rm×n,bRm,cRn不妨恒假定矩阵 A A A 是行满秩的,即 r a n k ( A ) = m \mathbf{rank}(A)=m rank(A)=m(否则根据线性代数的理论,可以找到 r a n k ( A ) \mathbf{rank}(A) rank(A) 行方程来替换原方程,同时为了叙述简便,分别称矩阵 A A A 和 向量 b b b 为(1)的系数矩阵和右端向量.

因为线性规划的可行集是一个多面体,并且目标函数是线性的,从几何上直观地看,线性函数在多面体上的极小点若存在,则必然在多面体的顶点上取得.对于标准形式的线性规划问题,其最小值点必在坐标轴上达到,于是这就需要研究 A x = b Ax = b Ax=b 的所谓基础解的性质.

对标准形式的线性规划问题(7.1.1), 设方程组 A x = b Ax=b Ax=b 有解. 设 b ∈ s p a n ( A ) , { a j } j ∈ J b\in\mathbf{span}(A),\{a_j\}_{j\in J} bspan(A),{aj}jJ A A A的列向量的一个极大线性无关组,其中 J ⊂ { 1 , . . . , n } , ∣ J ∣ = m ( ∣ J ∣ J\subset \{ 1, ..., n\} , |J|= m( |J| J{1,...,n},J=m(J 表示集合 J J J 所含元素个数).那么 b b b 必可表示为 { a j } j ∈ J \{a_j\}_{j\in J} {aj}jJ 的线性组合.

定义 1.1 (线性方程组的基础解) 设 A ∈ R m × n ,   b ∈ R m ,   x = ( x 1 , . . . , x n ) T A\in\mathbb{R}^{m\times n},\:b\in\mathbb{R}^m,\:x=(x_1,...,x_n)^T ARm×n,bRm,x=(x1,...,xn)T 是线性方程组 A x = b Ax=b Ax=b 的一个解.如果存在 J ⊂ { 1 , ⋯   , n } , ∣ J ∣ = r a n k ( A ) J\subset\{1,\cdots,n\},\quad|J|=\mathbf{rank}(A) J{1,,n},J=rank(A),使得 x j = 0 , ∀ j ∉ J ; { a j ∣ j ∈ J } 线性无关 , x_j=0,\quad\forall j\not\in J;\quad\{a_j|j\in J\}\text{线性无关}, xj=0,jJ;{ajjJ}线性无关,则称 x x x 为一个基础解, x x x 的分量 { x j ∣ j ∈ J } \{x_j|j\in J\} {xjjJ} 称为相应的基变量,并称 { x j ∣ j ∉ J } \{x_j|j\not\in J\} {xjjJ} 为非基变量.若 { x j ∣ j ∈ J } \{x_j|j\in J\} {xjjJ} 含有零元素,则称 x x x 是一个退化的基础解.

显然,若 A x = b Ax=b Ax=b 有解,则矩阵 A A A 的列向量 { a 1 , . . . , a n } \{a_1,...,a_n\} {a1,...,an} 的每一个极大线性无关组对应于一个基础解,由于 { a 1 , . . . , a n } \{a_1,...,a_n\} {a1,...,an} 的极大线性无关组未必唯一,所以 A x = b Ax=b Ax=b 的基础解也不一定是唯一的.

引理 1.1 A = [ a 1 , . . . , a n ] ∈ R m × n ,   b ∈ R m ,   x ∈ R n A=[a_1,...,a_n]\in\mathbb{R}^{m\times n},\:b\in\mathbb{R}^m,\:x\in\mathbb{R}^n A=[a1,...,an]Rm×n,bRm,xRn A x = b Ax=b Ax=b 的一个解,那么 x x x 是基础解当且仅当 { a j ∣ x j ≠ 0 } \{a_j|x_j\neq0\} {ajxj=0} 线性无关.

. 设 x x x 是基础解,根据线性方程组基础解的定义,存在 J ⊂ { 1 , ⋯   , n } , ∣ J ∣ = r a n k ( A ) J\subset\{1,\cdots,n\},\quad|J|=\mathbf{rank}(A) J{1,,n},J=rank(A),使得 x j = 0 , ∀ j ∉ J ; { a j ∣ j ∈ J } 线性无关 , x_j=0,\quad\forall j\not\in J;\quad\{a_j|j\in J\}\text{线性无关}, xj=0,jJ;{ajjJ}线性无关,于是由集合的性质可以得到, { a j ∣ x j ≠ 0 } ⊂ { a j ∣ j ∈ J } \{a_j|x_j\neq0\}\subset\{a_j|j\in J\} {ajxj=0}{ajjJ}, 所以 { a j ∣ x j ≠ 0 } \{a_j|x_j\neq0\} {ajxj=0} 是极大线性无关组的子集,故线性无关.

反之,设 A x = b Ax=b Ax=b { a j ∣ x j ≠ 0 } \{a_j|x_j\neq0\} {ajxj=0} 线性无关.不妨设
{ x j ≠ 0 j = 1 , ⋯   , k ; x j = 0 j = k + 1 , ⋯   , n . \begin{cases}x_j\neq0&j=1,\cdots,k;\\x_j=0&j=k+1,\cdots,n.\end{cases} {xj=0xj=0j=1,,k;j=k+1,,n.因为 a 1 , . . . , a k a_1,...,a_k a1,...,ak 线性无关,所以 k ≤ m = r a n k ( A ) k\leq m= \mathbf{rank}(A) km=rank(A). 当 k < m k<m k<m 时从 a k + 1 , ⋯   , a n a_{k+1},\cdots,a_n ak+1,,an 中挑选 m − k m-k mk 个向量,不妨设为 a k + 1 , ⋯   , a m a_{k+1},\cdots,a_m ak+1,,am,使得 a 1 , ⋯   , a m a_1,\cdots,a_m a1,,am 线性无关. 由于 x m + 1 = . . . = x n = 0 x_{m+1}=...=x_n= 0 xm+1=...=xn=0,所以 x x x A x = b Ax=b Ax=b 的一个基础解.

n n n 维线性方程组 A x = b Ax=b Ax=b 的解 x x x的全体构成 R n \mathbb{R} ^n Rn 中的一个仿射集. 其基础解是落在某个 m m m 维子空间的解,它使得 { a j ∣ x j ≠ 0 } \{a_j|x_j\neq0\} {ajxj=0} 线性无关.

定义 1.2 (基础可行解和基础最优解) 对于线性规划(1)即 { min ⁡   c T x , s . t   A x = b , x ⪰ 0 , \begin{aligned}\begin{cases}\min~c^Tx,\\\mathrm{s.t}~Ax=b,\\x\succeq0,&\end{cases}\end{aligned} min cTx,s.t Ax=b,x0, x x x A x = b Ax=b Ax=b 的一个基础解,

(1) 若 x x x 还是(1)的一个可行点,即 x ⪰ 0 x\succeq0 x0, 则称之为(1)的一个基础可行解;

(2) 若 x x x 还是(1)的一个最优解,则称之为(1)的一个基础最优解.

对于线性规划(7.1.1),有

命题 1.2 (线性规划基本定理) 对于线性规划(1)有

(1) 若存在可行点,则必存在基础可行解;

(2) 若存在最优解,则存在基础最优解

.设 A = [ a 1 , ⋯   , a n ] ∈ R m × n , b ∈ R m , x A=[a_1,\cdots,a_n]\in\mathbb{R}^{m\times n},b\in\mathbb{R}^m,x A=[a1,,an]Rm×n,bRm,x 是(1)的一个可行点.若 { a j ∣ x j > 0 } \{a_j|x_j>0\} {ajxj>0} 线性相关,不妨设 x x x 的前 k k k 个分量非零: x j > 0 , j = 1 , ⋯   , k ; x j = 0 , j = k + 1 , ⋯   , n . \begin{aligned}x_j>0,&&j=1,\cdots,k;&&x_j=0,&&j=k+1,\cdots,n.\end{aligned} xj>0,j=1,,k;xj=0,j=k+1,,n.由于 { a j ∣ x j > 0 } \{a_j|x_j>0\} {ajxj>0} 线性相关,于是存在 0 ≠ y = ( y 1 , ⋯   , y k , 0 , ⋯   , 0 ) T ∈ R n 0\neq y=(y_1,\cdots,y_k,0,\cdots,0)^T\in\mathbb{R}^n 0=y=(y1,,yk,0,,0)TRn, 使得 A y = y 1 a 1 + ⋯ + y k a k = 0. Ay=y_1a_1+\cdots+y_ka_k=0. Ay=y1a1++ykak=0.易见,当 ϵ > 0 \epsilon>0 ϵ>0 充分小时,有
\quad (a) x j ± ϵ y j > 0 , j = 1 , ⋯   , k x_j\pm \epsilon y_j> 0, j= 1, \cdots , k xj±ϵyj>0,j=1,,k.所以 x ± ϵ y x\pm\epsilon y x±ϵy 都是可行点;
\quad (b) 若 x x x 是最优解,则 c T x ≤ c T ( x ± ϵ y ) c^Tx\leq c^T(x\pm\epsilon y) cTxcT(x±ϵy),即 c T y = 0 c^Ty=0 cTy=0. 从而 c T ( x ± ϵ y ) = c T x . c^T(x\pm\epsilon y)=c^Tx. cT(x±ϵy)=cTx.

不妨设 y 1 , . . . , y k y_1,...,y_k y1,...,yk 中至少有一个为正的项. 下面我们用用逐步逼近的思想,来让可行解 x x x 其中一个分量变为零后但仍为可行解.

ϵ \epsilon ϵ 逐步增大,直到 { x j − ϵ y j ∣ j = 1 , . . . , k } \{x_j-\epsilon y_j|j=1,...,k\} {xjϵyjj=1,...,k} 中至少有一项为 0 而其余各项非负. 因为 ϵ \epsilon ϵ 充分小,于是 x ~ : = x − ϵ y \tilde{x}:=x-\epsilon y x~:=xϵy 仍是一个可行点,且它比 x x x 至少多出一个为零的分量.

{ a j ∣ x ~ j > 0 } \{a_j|\tilde{x}_j>0\} {ajx~j>0} 仍线性相关,不断重复上述逐步逼近的操作,那么有限次后便得到可行点 x ~ \tilde{x} x~, 使得 { a j ∣ x ~ j > 0 } \{a_j|\tilde{x}_j>0\} {ajx~j>0} 线性无关(因为线性方程组 A x = b Ax=b Ax=b的 系数矩阵 A A A 的秩不为0).因为 0 ⪯ x 0\preceq x 0x,所以 { a j ∣ x ~ j > 0 } = { a j ∣ x ~ j ≠ 0 } \{a_j|\tilde{x}_j>0\}=\{a_j|\tilde{x}_j\neq0\} {ajx~j>0}={ajx~j=0}, 于是由引理 1.1可知, x ~ \tilde{x} x~ 是一个基础可行解. (1) 获证.

命题 1.2是非常重要的,它能够说明在整个可行集中求解线性规划(1)的问题可以归结为在基础可行集中求解.而 A x = b Ax=b Ax=b 的基础解个数就是 { a 1 , . . . , a n } \{a_1,...,a_n\} {a1,...,an} 的极大线性无关组的个数,且最大个数为 ( n m ) \binom{n}{m} (mn).

定义 1.3 (极点) 设 x ∈ S ⊂ R n x\in S\subset\mathbb{R}^n xSRn. 如果不存在互异的 x 1 , x 2 ∈ S x_1,x_2\in S x1,x2S 以及 0 < θ < 1 0<\theta<1 0<θ<1, 使得 x = θ x 1 + ( 1 − θ ) x 2 x=\theta x_1+(1-\theta)x_2 x=θx1+(1θ)x2,即线段 x 1 x 2 x_1x_2 x1x2之间任意一点都不属于集合 S S S ,则称 x x x S S S 的一个极点.

命题 1.3 (基础可行解的几何特征) 设 A ∈ R m × n , b ∈ R m A\in\mathbb{R}^{m\times n},\quad b\in\mathbb{R}^m ARm×n,bRm,记 D : = { x ∈ R n ∣ A x = b ,   x ⪰ 0 } \mathcal{D}:=\{x\in\mathbb{R}^n|Ax=b,\:x\succeq0\} D:={xRnAx=b,x0}.那么, x x x 是一个基础可行解当且仅当它是 D D D 的一个极点.

.设 x x x 不是 D \mathcal{D} D 的一个极点,不妨设 x ∈ D ( x\in\mathcal{D}( xD(否则已经不是基础可行解). 因为 x x x是基础可行解且 x x x 不是极点,于是存在 y , z ∈ D ,   y ≠ z y,z\in\mathcal{D},\:y\neq z y,zD,y=z,以及 0 < θ < 1 0<\theta<1 0<θ<1, 使得 x = θ y + ( 1 − θ ) z x=\theta y+(1-\theta)z x=θy+(1θ)z.不妨设设 { i ∣ x i > 0 } = { 1 , . . . , k } . \{i|x_i>0\}=\{1,...,k\}. {ixi>0}={1,...,k}. 由于 x , y , z x,y,z x,y,z 的所有分量都是非负的,且由于 x = θ y + ( 1 − θ ) z x=\theta y+(1-\theta)z x=θy+(1θ)z,所以 y , z y,z y,z 的后 n − k n-k nk 个分量也是 0. 于是 ∑ i = 1 k ( y i − z i ) a i = ∑ i = 1 k y i a i − ∑ i = 1 k z i a i = A y − A z = b − b = 0. \sum_{i=1}^k(y_i-z_i)a_i=\sum_{i=1}^ky_ia_i-\sum_{i=1}^kz_ia_i=Ay-Az=b-b=0. i=1k(yizi)ai=i=1kyiaii=1kziai=AyAz=bb=0.所以 a 1 , . . . , a k a_1,...,a_k a1,...,ak 线性相关. 由 引理 1.1可知, x x x 不是一个基础可行解,矛盾

反之,设 x x x 不是一个基础可行解但 x x x是极点,不妨设 x ∈ D ( x\in\mathcal{D}( xD(否则它已经不是 D \mathcal{D} D 的极点). 由于 x x x 不是基础可行解,则 x x x 也不是 A x = b Ax=b Ax=b 的基础解. 不妨设 { i ∣ x i > 0 } = { 1 , . . . , k } \{i|x_i>0\}=\{1,...,k\} {ixi>0}={1,...,k}, 那么 a 1 , . . . , a k a_1,...,a_k a1,...,ak 线性相关. 于是存在 0 ≠ y = ( y 1 , ⋯   , y k , 0 , ⋯   , 0 ) T 0\neq y=(y_1,\cdots,y_k,0,\cdots,0)^T 0=y=(y1,,yk,0,,0)T, 使得 A y = 0 Ay=0 Ay=0. 易见当 ϵ \epsilon ϵ 充分小时,有 x ± ϵ y ∈ D , x = 1 2 [ ( x + ϵ y ) + ( x − ϵ y ) ] . x\pm\epsilon y\in\mathcal{D},\quad x=\frac{1}{2}\big[(x+\epsilon y)+(x-\epsilon y)\big]. x±ϵyD,x=21[(x+ϵy)+(xϵy)].所以 x x x 不是 D \mathcal D D 的极点,矛盾.

2.单纯形法

这里呢我就简单说点内容,然后有兴趣的读者可以参考这篇:【运筹学】单纯形法总结 ( 单纯形法原理 | 单纯形法流程 | 单纯形表 | 计算检验数 | 最优解判定 | 入基变量 | 出基变量 | 方程组同解变换 )

单纯形法的基本思想是从线性规划的一个基础可行解出发,寻找另一个基础可行解,并在此过程中使目标函数不断下降,直至达到基础最优解.

2.1 转轴运算

转轴运算是单纯形算法的基本运算单元,现考虑如下标准形式的线性规划 { min ⁡ f ( x ) = c T x + d s . t A x = b , x ⪰ 0 , \begin{align}\begin{cases}&\min f(x)=c^Tx+d\\ &\mathrm{s.t}Ax=b,\\&x\succeq0,&\end{cases}\end{align} minf(x)=cTx+ds.tAx=b,x0, 其中  A ∈ R m × n ,   b ∈ R m ,   c ∈ R n .  下面先介绍单纯形表和三种基本变换 . \text{其中 }A\in\mathbb{R}^{m\times n},\mathrm{~}b\in\mathbb{R}^m,\mathrm{~}c\in\mathbb{R}^n.\text{ 下面先介绍单纯形表和三种基本变换}. 其中 ARm×n, bRm, cRn. 下面先介绍单纯形表和三种基本变换.构造如下所示的图表: [ x T b A b c T − d ] = [ x 1 ⋯ x p ⋯ x q ⋯ x n b a 11 ⋯ a 1 p ⋯ a 1 q ⋯ a 1 n b 1 ⋮ ⋮ ⋮ ⋮ ⋮ a m 1 ⋯ a m p ⋯ a m q ⋯ a m n b m c 1 ⋯ c p ⋯ c q ⋯ c n − d ] , \begin{align}\left.\left[\begin{array}{c|c}x^T&b\\\hline A&b\\\hline c^T&-d\end{array}\right.\right]=\left[\begin{array}{cccccc|c}x_1&\cdots&x_p&\cdots&x_q&\cdots&x_n&b\\\hline a_{11}&\cdots&a_{1p}&\cdots&a_{1q}&\cdots&a_{1n}&b_1\\\vdots&&\vdots&&\vdots&&\vdots&\vdots\\a_{m1}&\cdots&a_{mp}&\cdots&a_{mq}&\cdots&a_{mn}&b_m\\\hline c_1&\cdots&c_p&\cdots&c_q&\cdots&c_n&-d\end{array}\right],\end{align} xTAcTbbd = x1a11am1c1xpa1pampcpxqa1qamqcqxna1namncnbb1bmd ,并且称之为线性规划(2)的单纯形表.其中第一行且并非数值或变量,称之为标记行,其作用是在后续列交换时过程中标记对应变量的位置.最后一行是线性规划(1)的目标函数的系数,称之为目标行.而除标记行和目标行以外的部分是矩阵 [ A , b ] [A, b] [A,b],为叙述简便,对 1 ≤ i ≤ m 1 ≤ i ≤ m 1im,仍称矩阵 [ A , b [A, b [A,b] 的第 i i i 行为单纯形表的第 i i i 行.

(2.1.1) 变量置换, 设 1 ≤ p < q ≤ n 1 ≤ p<q ≤ n 1p<qn 将单纯性表(3)的第 p p p 列与第 q q q 列进行交换,可以得到如下新的单纯性表 [ x ′ T b A ′ b ′ c ′ T − d ′ ] = [ x 1 ⋯ x q ⋯ x p ⋯ x n b a 11 ⋯ a 1 q ⋯ a 1 p ⋯ a 1 n b 1 ⋮ ⋮ ⋮ ⋮ ⋮ a m 1 ⋯ a m q ⋯ a m p ⋯ a m n b m c 1 ⋯ c q ⋯ c p ⋯ c n − d ] . \left.\left[\begin{array}{c|c}x'^T&b\\\hline A'&b'\\\hline c'^T&-d'\end{array}\right.\right]=\left[\begin{array}{cccccc|c}x_1&\cdots&x_q&\cdots&x_p&\cdots&x_n&b\\\hline a_{11}&\cdots&a_{1q}&\cdots&a_{1p}&\cdots&a_{1n}&b_1\\\vdots&&\vdots&&\vdots&&\vdots&\vdots\\a_{m1}&\cdots&a_{mq}&\cdots&a_{mp}&\cdots&a_{mn}&b_m\\\hline c_1&\cdots&c_q&\cdots&c_p&\cdots&c_n&-d\end{array}\right]. xTAcTbbd = x1a11am1c1xqa1qamqcqxpa1pampcpxna1namncnbb1bmd .根据线性代数的内容,有 x ′ = Q x , A ′ = A Q T , b ′ = b , c ′ = Q c , d ′ = d , x'=Qx,\quad A'=AQ^T,\quad b'=b,\quad c'=Qc,\quad d'=d, x=Qx,A=AQT,b=b,c=Qc,d=d,其中 Q Q Q 是交换第 p p p 行和第 q q q 行的 n n n 阶置换矩阵, x x x n n n 维列向量,即 x = ( x 1 , x 2 , ⋯   , x n ) T x=(x_1,x_2,\cdots,x_n)^T x=(x1,x2,,xn)T,由此可得 A x = b    ⟺    A ′ x ′ = b ′ . Ax=b\iff A^{\prime}x^{\prime}=b^{\prime}. Ax=bAx=b.

(2.1.2) 行初等变换, 将单纯性表(3)除标记行和目标行以外的各行进行矩阵的行初等
变换,得到新的单纯形表X.显然标记行和目标行不会改变-,仅仅是将 [ A , b ] [A, b] [A,b] 变成了 [ A ′ , b ′ ] X [A′, b′]X [A,b]X 显然 A x = b Ax = b Ax=b 同解于 A ′ x = b ′ A′x = b′ Ax=b

(2.1.3) 目标函数变形:设 1 ≤ i ≤ m , λ ∈ R 1\leq i\leq m,\lambda\in\mathbb{R} 1im,λR.将单纯性表(7.2.2)的目标行减去 [ A , b ] [A,b] [A,b] 的第 i i i 行的 λ倍,得到新的目标行 [ c ′ , − d ′ ] [c^{\prime},-d^{\prime}] [c,d]. 记目标函数 f ( x ) : = c T x + d f(x):=c^Tx+d f(x):=cTx+d ,那么,这相当于用 c T x = f ( x ) − d c^Tx=f(x)-d cTx=f(x)d 减去 A x = b Ax=b Ax=b i i i 行的 入倍,得 c ′ T x = f ( x ) − d − λ b i c^{\prime T}x=f(x)-d-\lambda b_i cTx=f(x)dλbi, 即

3. 内点法

3.1 线性规划的内点法

这里呢我也偷个懒,一样只说点小内容

内点法的基本思想

单纯形法从顶点到顶点搜索最优解- 当初始点远离最优解时- 需要很长的搜索代价X 而内
点法在可行域内部进行搜索迭代的算法X 设当前点 x0 是可行集 D 的一个相对内点- 根
优化问题笔记 中的引理 1.2.1,设 x ∗ ∈ D x^*\in\mathcal{D} xD,那么 S F D ( x ∗ ) \mathbf{SFD}(x^*) SFD(x) 是一个闭集,且当 x ∗ ∈ r i ( D ) x^*\in\mathbf{ri}(\mathcal{D}) xri(D) 时,有 V P ∩ ∂ B ( 0 , 1 ) ⊂ F D ( x ∗ ) V_{\mathcal{P}}\cap\partial B(0,1)\subset\mathbf{FD}(x^*) VPB(0,1)FD(x),因而 c l ( F D ( x ∗ ) ) ⊂ S F D ( x ∗ ) ⊂ U ( x ∗ ) ∩ ∂ B ( 0 , 1 ) ⊂ V D ∩ ∂ B ( 0 , 1 ) \mathbf{cl}(\mathbf{FD}(x^{*}))\subset\mathbf{SFD}(x^{*})\subset\mathbf{U}(x^{*})\cap\partial B(0,1)\subset V_{\mathcal{D}}\cap\partial B(0,1) cl(FD(x))SFD(x)U(x)B(0,1)VDB(0,1)中四个集合均相等

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值