延續上一篇 [最佳化] 淺談線性規劃(0)- Standard form of Linear Programming,這次要跟大家介紹 線性規劃(LP)問題的求解。由先前介紹我們知道,對任意含有線性不等式拘束的LP問題都可以將其轉換成標準型式的LP問題。亦即含有 等式拘束的LP問題。
\[\begin{array}{l}
\min {c^T}x\\
s.t.\\
\left\{ \begin{array}{l}
Ax = b,\\
x \ge 0
\end{array} \right.
\end{array}\]其中 $A$ 為 $m \times n$ 矩陣且 $n>m$, $rank(A) = m$,$A$ 沒有全為零的column$;b \geq 0$,
在介紹之前要先介紹兩種解的概念
============================
Definition: (Feasible solution and Basic solution)
一個向量 $x \in \mathbb{R}^n$ 稱作 可行解(Feasible solution),如果其滿足拘束條件,亦即 $x \geq 0$ 且 $Ax=b$
一個向量 $x \in \mathbb{R}^n$ 稱作對 $Ax=b$ 的 基本解( Basic Solution) ,若 $x$中 nonzero component 對應到$A$矩陣的線性獨立 Columns。
============================
先給個例子看看這兩種解有甚麼不同
Example
考慮下列拘束條件 $Ax=b$:
\[\left[ {\begin{array}{*{20}{c}}
1&2&{ - 2}\\
1&3&{ - 2}
\end{array}} \right]\left[ {\begin{array}{*{20}{c}}
{{x_1}}\\
{{x_2}}\\
{{x_3}}
\end{array}} \right] = \left[ {\begin{array}{*{20}{c}}
1\\
1
\end{array}} \right]\]
觀察上式,為三個變數兩個拘束條件,故可以任意其中一個變數可被任意給定。另外我們發現$A$中的第一個column 與 第三個 column 彼此線性相關。故現在如果我們選 $x_2=0$取 第一個column 與 第三個 column ,會得到一個解
\[ \Rightarrow \left[ {\begin{array}{*{20}{c}}
{{x_1}}\\
{{x_2}}\\
{{x_3}}
\end{array}} \right] = \left[ {\begin{array}{*{20}{c}}
3\\
0\\
1
\end{array}} \right]\]
由於此解$\left[ {\begin{array}{*{20}{c}}
{{x_1}}\\
{{x_2}}\\
{{x_3}}
\end{array}} \right] = \left[ {\begin{array}{*{20}{c}}
3\\
0\\
1
\end{array}} \right]$滿足拘束條件,故我們說此解為 Feasible solution,但是其中非零的元素
\[\left[ {\begin{array}{*{20}{c}}
{{x_1}}\\
{}\\
{{x_3}}
\end{array}} \right] = \left[ {\begin{array}{*{20}{c}}
3\\
{}\\
1
\end{array}} \right]\]對應到矩陣$A$的column彼此為線性相關,故此解並非Basic solution。
也就是說 Feasible Solution $\nRightarrow$ Basic Solution。
再來如果我們選 矩陣$A$的第二個 Column 與 第三個Column (彼此線性獨立),且令 $x_1 =0$,則我們得到 Basic Solution如下
\[\left\{ \begin{array}{l}
{x_1} = 0\\
2{x_2} - 2{x_3} = 1\\
3{x_2} - 2{x_3} = 1
\end{array} \right. \Rightarrow \left[ {\begin{array}{*{20}{c}}
{{x_1}}\\
{{x_2}}\\
{{x_3}}
\end{array}} \right] = \left[ {\begin{array}{*{20}{c}}
0\\
0\\
{ - 1/2}
\end{array}} \right]\]
但注意到此解第三個element為負
\[\left[ {\begin{array}{*{20}{c}}
{{x_1}}\\
{{x_2}}\\
{{x_3}}
\end{array}} \right] = \left[ {\begin{array}{*{20}{c}}
0\\
0\\
{ - 1/2}
\end{array}} \right]\]
亦即,不符合 Feasbility,故可得到
Basic Solution $\nRightarrow$ Feasible Solution
那麼我們要的是甚麼??
我們要的是 Basic 且 Feasible 的Solution。下面的定理告訴我們標準型式的線性規劃問題如何才能確保可以得到 Basic + Feasible的Solution。
=================================
Theorem:
考慮標準型式的線性規劃 (Standard LP)問題
令 $x \in \mathbb{R}^n$,
\[\begin{array}{l}
\min {c^T}x\\
s.t.\\
\left\{ \begin{array}{l}
Ax = b,\\
x \ge 0
\end{array} \right.
\end{array}\]其中 $A$ 為 $m \times n$ 矩陣且 $n>m$, $rank(A) = m$,$A$ 沒有全為零的column$;b \geq 0$,
若其具備一個 Feasible Solution,則必有一個 Basic + Feasible 的解
=================================
Proof
假設$x \in \mathbb{R}^n$ 為 Standard LP的一個Feasible soltuion,我們要證明必有一個 Basic + Feasible的解。
為方便起見,我們說 $x$ 有 p個nonzero 元素,亦即 $x_1, x_2, ...x_p$。因為$x$已為 Feasible,故我們只須證明$x$是Basic solution。亦即須證明 非零的元素對應$A$中線性獨立的Columns $a^1, a^2,...a^p$
現在考慮下面兩種情況
CASE1
若$x$中非零的元素$x_1, x_2, ...x_p$ 對應 $A$中的Columns $a^1, a^2,...a^p$ 為線性獨立。則$x$即為 Feasible + Basic Solution。
CASE2
若$x$中非零的元素$x_1, x_2, ...x_p$ 對應 $A$中的Columns $a^1, a^2,...a^p$ 為線性相關。則由線性相關的定義可知:存在一組不全為零的 $y_1, y_2,...y_p$ 為實數純量使得下列線性組合
\[
\sum_{i=1}^p y_i a^i =0 \ \ \ \ (*)
\]現在令 $\varepsilon >0$,定義下列向量 $\eta^{\varepsilon} $
\[\eta _i^\varepsilon : = \left\{ \begin{array}{l}
{x_i} - \varepsilon {y_i}, \ \text{ for $i \le p$}\\
0, \ \text{for $i > p$}
\end{array} \right.\]
則若$\varepsilon$足夠小的時候,我們說 $\eta _i^\varepsilon $ 為 Feasible
WHY?
因為如果$\varepsilon =0 \Rightarrow \eta _i^\varepsilon = x_i \Rightarrow x_i$ 為 Feasible (by Definition of $x$)
如果 $\varepsilon $ 非常小,則由拘束條件
\[
A \cdot \eta^{\varepsilon} = A (x - \varepsilon y) = Ax - A \varepsilon y
\]
由線性相關的結果 $(*)$可知,$A \varepsilon y =0$,亦即上式變為
\[
A \cdot \eta^{\varepsilon} = Ax = b
\]
符合拘束條件,故若$\varepsilon$足夠小的時候,我們說 $\eta _i^\varepsilon $ 為 Feasible。
所以現在問題變成那麼可以挑選多大的$\varepsilon$仍可使得$\eta^{\varepsilon}$ 為 Feasible?
我們把此$\varepsilon$ 稱作 $\varepsilon^*$
$(\star)$定義
\[\varepsilon^* : = \mathop {\min }\limits_i \left\{ {\frac{{{x_i}}}{{{y_i}}}:{y_i} > 0} \right\}
\]則$\eta^{\varepsilon^*}$為 Feasible,且最多$p-1$非零Columns,
$a^1, a^2, ... a^{p-1}$
若此組 Columns為線性獨立,則$\eta^{\varepsilon^*}$為Basic。亦即
$\eta^{\varepsilon^*}$為Basic + Feasible。則我們得到欲證明的結果。
反之若Columns $a^1, a^2, ... a^{p-1}$ 仍 為線性相關,則我們重複上述的演算步驟 $(\star)$,得到
${{\tilde \eta }^{{\varepsilon ^*}}}$為Feasible且最多$p-2$非零Columns。
不斷重複上述步驟,最終我們會落到某個$x$ 且只有一個非零元素。
又因為 $A$ 沒有全為零的column,故其必為線性獨立。亦即
$x$ 為 Basic Solution。
且由假設 $x$ 為Feasible,故 $x$ 為 Feasible + Basic。至此證明完畢。
ref: E. K. P. Chong, S. H. Zak, An Introduction to Optimization 2nd, Chapter 15.
==============
延伸閱讀
[最佳化] 淺談線性規劃(0)- Standard form of Linear Programming
[最佳化] 淺談線性規劃(1)- Feasible solution and Basic solution
[最佳化] 淺談線性規劃(2)- Optimality Theorem
[最佳化] 淺談線性規劃(3)- Geometric View of LP
[最佳化] 淺談線性規劃(4)- How to move from one Basic Feasible solution to another- An Example
\[\begin{array}{l}
\min {c^T}x\\
s.t.\\
\left\{ \begin{array}{l}
Ax = b,\\
x \ge 0
\end{array} \right.
\end{array}\]其中 $A$ 為 $m \times n$ 矩陣且 $n>m$, $rank(A) = m$,$A$ 沒有全為零的column$;b \geq 0$,
在介紹之前要先介紹兩種解的概念
============================
Definition: (Feasible solution and Basic solution)
一個向量 $x \in \mathbb{R}^n$ 稱作 可行解(Feasible solution),如果其滿足拘束條件,亦即 $x \geq 0$ 且 $Ax=b$
一個向量 $x \in \mathbb{R}^n$ 稱作對 $Ax=b$ 的 基本解( Basic Solution) ,若 $x$中 nonzero component 對應到$A$矩陣的線性獨立 Columns。
============================
Example
考慮下列拘束條件 $Ax=b$:
\[\left[ {\begin{array}{*{20}{c}}
1&2&{ - 2}\\
1&3&{ - 2}
\end{array}} \right]\left[ {\begin{array}{*{20}{c}}
{{x_1}}\\
{{x_2}}\\
{{x_3}}
\end{array}} \right] = \left[ {\begin{array}{*{20}{c}}
1\\
1
\end{array}} \right]\]
觀察上式,為三個變數兩個拘束條件,故可以任意其中一個變數可被任意給定。另外我們發現$A$中的第一個column 與 第三個 column 彼此線性相關。故現在如果我們選 $x_2=0$取 第一個column 與 第三個 column ,會得到一個解
\[ \Rightarrow \left[ {\begin{array}{*{20}{c}}
{{x_1}}\\
{{x_2}}\\
{{x_3}}
\end{array}} \right] = \left[ {\begin{array}{*{20}{c}}
3\\
0\\
1
\end{array}} \right]\]
由於此解$\left[ {\begin{array}{*{20}{c}}
{{x_1}}\\
{{x_2}}\\
{{x_3}}
\end{array}} \right] = \left[ {\begin{array}{*{20}{c}}
3\\
0\\
1
\end{array}} \right]$滿足拘束條件,故我們說此解為 Feasible solution,但是其中非零的元素
\[\left[ {\begin{array}{*{20}{c}}
{{x_1}}\\
{}\\
{{x_3}}
\end{array}} \right] = \left[ {\begin{array}{*{20}{c}}
3\\
{}\\
1
\end{array}} \right]\]對應到矩陣$A$的column彼此為線性相關,故此解並非Basic solution。
也就是說 Feasible Solution $\nRightarrow$ Basic Solution。
再來如果我們選 矩陣$A$的第二個 Column 與 第三個Column (彼此線性獨立),且令 $x_1 =0$,則我們得到 Basic Solution如下
\[\left\{ \begin{array}{l}
{x_1} = 0\\
2{x_2} - 2{x_3} = 1\\
3{x_2} - 2{x_3} = 1
\end{array} \right. \Rightarrow \left[ {\begin{array}{*{20}{c}}
{{x_1}}\\
{{x_2}}\\
{{x_3}}
\end{array}} \right] = \left[ {\begin{array}{*{20}{c}}
0\\
0\\
{ - 1/2}
\end{array}} \right]\]
但注意到此解第三個element為負
\[\left[ {\begin{array}{*{20}{c}}
{{x_1}}\\
{{x_2}}\\
{{x_3}}
\end{array}} \right] = \left[ {\begin{array}{*{20}{c}}
0\\
0\\
{ - 1/2}
\end{array}} \right]\]
亦即,不符合 Feasbility,故可得到
Basic Solution $\nRightarrow$ Feasible Solution
那麼我們要的是甚麼??
我們要的是 Basic 且 Feasible 的Solution。下面的定理告訴我們標準型式的線性規劃問題如何才能確保可以得到 Basic + Feasible的Solution。
=================================
Theorem:
考慮標準型式的線性規劃 (Standard LP)問題
令 $x \in \mathbb{R}^n$,
\[\begin{array}{l}
\min {c^T}x\\
s.t.\\
\left\{ \begin{array}{l}
Ax = b,\\
x \ge 0
\end{array} \right.
\end{array}\]其中 $A$ 為 $m \times n$ 矩陣且 $n>m$, $rank(A) = m$,$A$ 沒有全為零的column$;b \geq 0$,
若其具備一個 Feasible Solution,則必有一個 Basic + Feasible 的解
=================================
假設$x \in \mathbb{R}^n$ 為 Standard LP的一個Feasible soltuion,我們要證明必有一個 Basic + Feasible的解。
為方便起見,我們說 $x$ 有 p個nonzero 元素,亦即 $x_1, x_2, ...x_p$。因為$x$已為 Feasible,故我們只須證明$x$是Basic solution。亦即須證明 非零的元素對應$A$中線性獨立的Columns $a^1, a^2,...a^p$
現在考慮下面兩種情況
CASE1
若$x$中非零的元素$x_1, x_2, ...x_p$ 對應 $A$中的Columns $a^1, a^2,...a^p$ 為線性獨立。則$x$即為 Feasible + Basic Solution。
CASE2
若$x$中非零的元素$x_1, x_2, ...x_p$ 對應 $A$中的Columns $a^1, a^2,...a^p$ 為線性相關。則由線性相關的定義可知:存在一組不全為零的 $y_1, y_2,...y_p$ 為實數純量使得下列線性組合
\[
\sum_{i=1}^p y_i a^i =0 \ \ \ \ (*)
\]現在令 $\varepsilon >0$,定義下列向量 $\eta^{\varepsilon} $
\[\eta _i^\varepsilon : = \left\{ \begin{array}{l}
{x_i} - \varepsilon {y_i}, \ \text{ for $i \le p$}\\
0, \ \text{for $i > p$}
\end{array} \right.\]
則若$\varepsilon$足夠小的時候,我們說 $\eta _i^\varepsilon $ 為 Feasible
WHY?
因為如果$\varepsilon =0 \Rightarrow \eta _i^\varepsilon = x_i \Rightarrow x_i$ 為 Feasible (by Definition of $x$)
如果 $\varepsilon $ 非常小,則由拘束條件
\[
A \cdot \eta^{\varepsilon} = A (x - \varepsilon y) = Ax - A \varepsilon y
\]
由線性相關的結果 $(*)$可知,$A \varepsilon y =0$,亦即上式變為
\[
A \cdot \eta^{\varepsilon} = Ax = b
\]
符合拘束條件,故若$\varepsilon$足夠小的時候,我們說 $\eta _i^\varepsilon $ 為 Feasible。
所以現在問題變成那麼可以挑選多大的$\varepsilon$仍可使得$\eta^{\varepsilon}$ 為 Feasible?
我們把此$\varepsilon$ 稱作 $\varepsilon^*$
$(\star)$定義
\[\varepsilon^* : = \mathop {\min }\limits_i \left\{ {\frac{{{x_i}}}{{{y_i}}}:{y_i} > 0} \right\}
\]則$\eta^{\varepsilon^*}$為 Feasible,且最多$p-1$非零Columns,
$a^1, a^2, ... a^{p-1}$
若此組 Columns為線性獨立,則$\eta^{\varepsilon^*}$為Basic。亦即
$\eta^{\varepsilon^*}$為Basic + Feasible。則我們得到欲證明的結果。
反之若Columns $a^1, a^2, ... a^{p-1}$ 仍 為線性相關,則我們重複上述的演算步驟 $(\star)$,得到
${{\tilde \eta }^{{\varepsilon ^*}}}$為Feasible且最多$p-2$非零Columns。
不斷重複上述步驟,最終我們會落到某個$x$ 且只有一個非零元素。
又因為 $A$ 沒有全為零的column,故其必為線性獨立。亦即
$x$ 為 Basic Solution。
且由假設 $x$ 為Feasible,故 $x$ 為 Feasible + Basic。至此證明完畢。
ref: E. K. P. Chong, S. H. Zak, An Introduction to Optimization 2nd, Chapter 15.
延伸閱讀
[最佳化] 淺談線性規劃(0)- Standard form of Linear Programming
[最佳化] 淺談線性規劃(1)- Feasible solution and Basic solution
[最佳化] 淺談線性規劃(2)- Optimality Theorem
[最佳化] 淺談線性規劃(3)- Geometric View of LP
[最佳化] 淺談線性規劃(4)- How to move from one Basic Feasible solution to another- An Example
留言
張貼留言