跳到主要內容

[凸分析] 凸集合 與 凸包

Definition: Convex Set
我們說一個集合 $C \subset \mathbb{R}^k$ 為 凸集合 ( convex set )若下列條件成立:
給定任意 $c^1, c^2 \in C$ 且 $\lambda \in [0,1]$ 則 $\lambda c^1 + (1-\lambda)c^2 \in C$


另外我們稱 $\lambda c^1 + (1-\lambda)c^2 $ 為 $c^1, c^2$ 所成的凸組合 ( convex combination )

Comments:
1. 事實上 凸組合 即為 線性組合(linear combination) 但係數必須為非負,且係數之合必須為 $1$
2. 上述集合 $C$ 可為向量空間。
3. 上述集合 $C$ 若為空集合,亦即 $C = \emptyset$ 則 $C$ 視為 convex set 。
4.  一般而言,凸組合可推廣至如下定義:我們稱 $c^1,...,c^m$ 的凸組合為
\[
\lambda_1 c^1 + ... + \lambda_m c^m
\]其中 $\lambda_1 + ... + \lambda_m = 1$。在應用數學中,我們可將 $\lambda_i$ 視為 機率 或者某向量 $c^i $ 佔整體的成分比率。


Example:
1. $\mathbb{R}^n$ 空間為 convex set
2. 過點 $x_0 \in \mathbb{R}^n$,延方向 $d \in \mathbb{R}^n$ 的直線
\[
l := \{x \in \mathbb{R}^n: x = x_0 + t d, \;\; t \in \mathbb{R}\}
\]

以下為  convex set 的一些基本但常用的性質

=================
Proposition: 令 $V$ 為向量空間,且 $K$ 與 $G$ 為 $V$ 上的兩 convex sets,則
1. 對任意 $\alpha \in \mathbb{R}$ , $\alpha K := \{x: x=\alpha k, k\in K\}$ 為 convex set。
2. $K+G$ 為 convex set,其中
\[
K+G := \{k+g: k \in K, g\in G\}
\]=================

Proof: 1: 給定 $\alpha \in \mathbb{R}$,欲證 $\alpha K$ 為 convex,故令 $x_1, x_2 \in \alpha K$ 且 $\lambda \in [0,1]$,則存在 $k_1, k_2 \in K$ 我們有 $x_1 = \alpha k_1$ 與 $x_2 = \alpha k_2$,故我們僅需證明
\[
\lambda  x_1 + (1-\lambda ) x_2 \in \alpha K
\] 現在觀察
\[\begin{array}{l}
\lambda {x_1} + (1 - \lambda ){x_2} = \lambda \alpha {k_1} + (1 - \lambda )\alpha {k_2}\\
\begin{array}{*{20}{c}}
{}&{}&{}&{}&{}&{}
\end{array} = \alpha \left( {\lambda {k_1} + (1 - \lambda ){k_2}} \right)
\end{array}
\]由於 $k_1, k_2 \in K$ 且 $K$ 為 convex 故
\[\alpha \left( {\lambda {k_1} + (1 - \lambda ){k_2}} \right) \in \alpha K
\]

Proof: 2: 令 $C:= K+G$,現在我們欲證 $C $ 為 convex,故令 $x_1, x_2 \in C$ 且 $\lambda \in [0,1]$,則存在 $k_1, k_2 \in K$ 與 $g_1, g_2 \in G$ 使得我們有 $x_1 =k_1+g_1$ 與 $x_2 = k_2 + g_2$,故我們僅需證明
\[
\lambda  x_1 + (1-\lambda ) x_2 \in Z
\] 現在觀察
\[\begin{array}{l}
\lambda {x_1} + (1 - \lambda ){x_2} = \lambda \left( {{k_1} + {g_1}} \right) + (1 - \lambda )\left( {{k_2} + {g_2}} \right)\\
\begin{array}{*{20}{c}}
{}&{}&{}&{}
\end{array} = \left( {\lambda {k_1} + (1 - \lambda ){k_2}} \right) + \left( {\lambda {g_1} + (1 - \lambda ){g_2}} \right)
\end{array}\]由於 $k_1, k_2 \in K$ 且 $g_1, g_2 \in G$ 且 $K,G$ 為 convex 故
\[\left( {\lambda {k_1} + (1 - \lambda ){k_2}} \right) + \left( {\lambda {g_1} + (1 - \lambda ){g_2}} \right) \in Z = G+K\;\;\;\; \square
\]

Proposition: 令 $\cal C$ 為任意 convex sets 所成的集合,則對其中任意的 convex sets 取任意交集 \[
\bigcap_{K \in \mathcal{C}} K
\]仍為 convex

Proof: 令 $C:= \bigcap_{K \in \mathcal{C} } K$。若 $C = \emptyset$ 則上述 Proposition 自動滿足。

若 $C \neq \emptyset$ 則我們要證明 $ C = \bigcap_{K \in \mathcal{C}} K $ 為 convex,故令 $x_1, x_2 \in C$ 且 $\lambda \in [0,1]$,則對任意 $K \in \mathcal{C}$,我們可知 $x_1, x_2 \in K$ 。且由於 $K$ 為 convex, 故對任意  $K \in \mathcal{C}$ 而言,我們有
\[
\lambda x_1 + (1- \lambda)x_2 \in K
\]由上述結果我們可立即推知 $\lambda x_1 + (1- \lambda)x_2 \in C$,也就是說 $C$ 為 convex。$\square$


Definition: Half-Spaces
給定任意非零向量 $b \in \mathbb{R}^n$ 且 任意常數 $\beta \in \mathbb{R}^1$,我們稱
\[
\{ x : x^T b \le \beta\};\;\;\;\; \{ x : x^T b \ge \beta\}
\]為 閉 半空間 (Closed Half-Spaces)。同理我們稱
\[
\{ x: x^T b <\beta \};\;\;\;\; \{ x: x^T b >\beta\}
\]為 開半空間 (Closed Half-Spaces)。

FACT: 半空間為 convex set。
Proof: omitted


Theorem: 
令 $b_i \in \mathbb{R}^n$ 且 $\beta_i \in \mathbb{R}^1$ 對 $i \in I$ 其中 $I$ 為任意 index set。則
\[
C :=\{ x \in \mathbb{R}^n : x^T b_i \le \beta_i, \;\; \forall \; i \in I\}
\]為 convex

上述定理對所有不等式與等式 $\leq, \geq, >, <, =$皆成立,故我們可推論具有 $n$ 變數的 任意線性不等式所構成的集合皆為 convex set。



有了上述結果,我們可以進一步介紹所謂的凸包 (Convex Hull):

=================
Definition: Convex Hull
給定集合 $C \subset \mathbb{R}^k$ ,則我們稱此集合的 凸包 (convex hull),記作 $conv (C)$,為包含集合 $C$ 的最小 convex set ,亦即若 $\cal C^+$ 為所有包含 $C$ 的 convex set 所成的集合,則
\[
conv (C) := \bigcap_{C^+ \in \mathcal{C^+}} C^+
\]=================

Comments:
1. 若上述定義中給定的集合 $C$ 已經為 convex set 則 $conv C = C$
2. $conv (C) \supset C$
3. 給定有限點 $p^1,p^2,...,p^m$,則其所成的集合 $\{p^1,p^2,...,p^m\}$ 可用來產生凸包,寫作 $conv\{p^i\}$ 且 $\{p^1,p^2,...,p^m\}$ 稱為 set of generators
4. 上述 convex hull 可以透過給定 set of generators $\{p^1,p^2,...,p^m\}$,用 MATLAB 指令 convhull 來產生,以下我們引用 MATLAB 程式碼透過隨機產生一組 $\{p_1, ..., p_{20}\}$ 並利用此 20個點 來長出 convex hull

MATLAB CODE:
x = rand(20,1);
    y = rand(20,1);
    plot(x,y, 'o');
    k = convhull(x,y)
    hold on, plot(x(k), y(k), '-r')

執行之後結果如下圖
Convex Hull Example


接著我們介紹 Polytopes 與 Polygons

Definition: Polytope
集合 $P \subset \mathbb{R}^k$ 稱為一個 polytope 若
1. $P$ 為 透過有限點 $\{p^1,p^2,...,p^m\}$ 所產生的 convex hull,亦即
\[
P := conv\{p^i\}
\]
下圖顯示了在 $\mathbb{R}^2$ 空間中的 Polytope 的例子

Comments:
1. 在 $\mathbb{R}^2$ 空間中的 polytope,在數學上另外給一個名字稱其為 (convex) polygon
2. 由 Polytope 定義可知, Polytope 與 Convex Polygon 皆為 convex set


極限點
令 $P = conv\{p^i\} $ 為 $\mathbb{R}^k$ 中的 polytope,則我們稱點 $p \in P$ 為 $P$中的一個極限點 (extreme point) 若下列條件成立:
如果 $p$ 無法被其他 $P$ 中相異的點用 convex combination 表示。


Comments:
1. 由上述極限點定義可知,對任意 polytope $P$而言,給定set of generators $\{p^i\}$ $i=1,2.,...,m$ 則 $P$ 極限點所成的集合必為 set of generators 的子集
2. 極限點所成的集合稱為 minimal generating set。
3. 在線性規劃問題中, Polytope 多半透過有限多組線性不等式 $A{\bf  x} \le {\bf b}$ 表示。


給定 Polytope $P=conv\{p^1, p^2,...,p^m\}$ 則任意點 $p \in P$ 都可透過 $p^i$ 用 convex combination 表示,亦即存在實數 $\lambda_1,\lambda_2,...,\lambda_m \ge 0$ 使得 $\sum_{i=1}^m \lambda_i =1$ 與
\[
p = \sum_{i=1}^m \lambda_i p^i
\]


Definition: Unit Simplex

\[
\Lambda := \left \{\lambda  \in {\mathbb{R}^m}:{\lambda _i} \ge 0,\;\; i = 1,2,...,m,\;\;\sum\limits_{i = 1}^m {{\lambda _i} = 1}\right \}\]


Theorem: Cartheodory's Theorem
令 $P$ 為 $\mathbb{R}^k$ 中的 polytope,則其中任意一點 $p \in P \subset \mathbb{R}^k$皆可透過最多 $k+1$ 個 extreme point 用 convex combination 表示。


留言

這個網誌中的熱門文章

[數學分析] 什麼是若且唯若 "if and only if"

數學上的 if and only if  ( 此文不討論邏輯學中的 if and only if,只討論數學上的 if and only if。) 中文翻譯叫做  若且唯若 (or 當且僅當) , 記得當初剛接觸這個詞彙的時候,我是完全不明白到底是甚麼意思,查了翻譯也是愛莫能助,畢竟有翻跟沒翻一樣,都是有看沒有懂。 在數學上如果看到 if and only if  這類的句子,其實是表示一種 雙條件句 ,通常可以直接將其視為" 定義(Definition)" 待之,今天要分享的是這樣的一個句子如何用比較直觀的方法去看他 假設我們現在有 兩個邏輯陳述句 A 與  B. 注意到,在此我們不必考慮這兩個陳述句到底是什麼,想表達什麼,或者到底是否為真(true),這些都不重要。只要知道是兩個陳述即可。 現在,考慮新的陳述:  "A if and only if B" 好了,現在主角登場,我們可以怎麼看待這個句子呢? 事實上我們可以很直覺的把這句子拆成兩部分看待,也就是 "( A if B ) and ( A only if B )" 那麼先針對第一個部分  A if B  來看, 其實這句就是說  if B then A, 更直白一點就是 "if B is true, then A is also true".  在數學上等價可以寫為 "B implies A" .  或者更常用一個箭頭符號來表示 "B $\Rightarrow$  A"  現在針對第二個部分  A only if B 此句意指  "If B is not true, then A is also not true". 所以如果已知 A is true,  那麼按照上句不難推得 B is also true 也就是說  A only if B  等價為 "If A is true then B is also true". 同樣,也可以寫作   "A implies B"   或者用箭頭表示  "A   $\Rightarrow$     B".

[數學分析] 淺談各種基本範數 (Norm)

這次要介紹的是數學上一個重要的概念: Norm: 一般翻譯成 範數 (在英語中 norm 有規範的意思,比如我們說normalization就是把某種東西/物品/事件 做 正規化,也就是加上規範使其正常化),不過個人認為其實翻譯成 範數 也是看不懂的...這邊建議把 Norm 想成長度就好 (事實上norm是長度的抽象推廣), 也許讀者會認為好端端的長度不用,為何又要發明一個 norm 來自討苦吃?? 既抽象又艱澀。 事實上想法是這樣的: 比如說現在想要比較兩個數字 $3$ , $5$ 之間的大小,則我們可以馬上知道 $ 3 < 5 $;同樣的,如果再考慮小數與無理數如 $1.8753$ 與 $\pi$,我們仍然可以比較大小 $1.8753 < \pi = 3.1415...$ 故可以發現我們有辦法對 "純量" 做明確的比大小,WHY? 因為前述例子中 $3$, $5$, $1.8753$ or $\pi$ 其各自的大小有辦法被 "measure "! 但是如果是現在考慮的是一組數字 我們如何去measure 其大小呢?? 比如說 \[x:=[1, -2, 0.1, 0 ]^T \]上式的大小該是多少? 是 $1$? $-2$? $0.1$??? 再者如果更過分一點,我們考慮一個矩陣 \[A = \left[ {\begin{array}{*{20}{c}} 1&2\\ 3&4 \end{array}} \right] \],想要知道這個矩陣的大小又該怎麼辦?? 是 $1$ ? $2$ 還是 $4$ ?..其實現階段我們說不清楚。 也正是如此,可以發現我們確實需要新的 "長度" 的定義來幫助我們如何去 measure 矩陣/向量/甚至是函數的大小。 故此,我們首先定義甚麼是Norm,(也就是把 "長度" or "大小" 的本質抽離出來) ================== Definition: Norm 考慮 $V$ 為一個向量空間(Vector space),則我們說  Norm 為一個函數 $||\cdot|| : V \rightarrow \mathbb{R}$ 且滿足下列性質