凸集(convex set)和仿射集(affine set),誰是誰的子集?

「凸集在仿射集的基礎上加了係數大於0的條件,是仿射集的特殊情況,凸集是仿射集的子集」。-- 某老師

我發現對集合的理解在這凌亂了:

1. 如果凸集是仿射集的特殊情況,那麼凸集應該是仿射集的子集。

2. 但是任何仿射集又都是凸的,所以任何仿射集都是凸集,反之不亦然,所以仿射集應該是凸集的子集。

3. 對於空間中的兩點,其仿射集是過這兩點的直線,其凸集是連接兩點的線段,線段應該是直線的子集。

總之徹底凌亂了,請大家指出思路上哪個地方出現偏差了?


你好,樓主,回答這類基礎的問題,我想最直接的辦法無非就是萬變不離其中吧,死扣定義就一定能找到自己的答案,所以咱們先給出定義,答案一定就在定義中:

------------------------------------------------------------------------------------------------

【仿射集】:

[文本定義]: 如果通過集合C中任意兩個不同點之間的直線 (上的任何點) 仍在集合C中,那麼稱集合C是仿射的;

[符號定義]: { C | θ*x1+(1-θ)*x2 ∈ C;其中 x1∈ C,x2∈ C} 注意,對θ沒有限定

-------------------------------------------------------------------------------------------------

【凸集】:

[文本定義]:如果通過集合C中任意兩個不同點之間的線段(上的任何點)仍在集合C中,那麼稱集合C是凸的;

[符號定義]: 符號定義:{ C | θ*x1+(1-θ)*x2 ∈ C;其中 x1∈ C,x2∈ C,0&<=θ&<=1} 注意,對θ有限定

------------------------------------------------------------------------------------------------

有了仿射集合凸集的定義,我們再來看我們「某老師」說的話的本身咱們就有自己的方法論了:

凸集是在仿射集的定義中,對θ進行了限定,導致的結果是:仿射集要求的是集合中經過任意兩點的直線上的任意點都在集合中;而,凸集只是要求連接任意集合中兩點的線段上的點在集合中;

所以對凸集定義比仿射集的定義更加苛刻,但是條件更加的苛刻不等於就是子集,不等於他們就是一類:先說一下生活中的例子,如果我們要區分固態和氣態,常溫常壓下二氧化碳就是氣態,如果限定他的溫度、壓力,條件更加苛刻,讓其變成固態的乾冰,我們還能說二氧化碳就是氣態嗎?我們能說固態是氣態的子集嗎?不科學,因為「類別(集合)是根據某些固定條件去定義的」,而不是靠「苛刻程度」去識別的,所以我們有明確一下兩個基礎邏輯:

1、滿足A類型條件的數據就是A類型,不滿足A類型條件的數據就是A類型。

2、滿足A的條件,又滿足某個b條件,使得A∪{b}達到了B的條件,我們才能說B是A的子集,因為滿足B一定滿足A;但是,前提是:b是真正的條件,而不是為了達到條件的某個部分表達式!

根據上面兩點,我們再來看看上面的幾個問題,首先,「某老師」的話錯了,因為"係數大於0不是獨立的條件",這個只是表達凸集條件:{連接任意集合中兩點的線段上的點在集合中} 的某個表達式而已,他並不是凸集的條件本身,只是某個數學符號。咱們舉個例子:

A={從x0發出的射線,方向為v},

1、首先A是凸集,因為任意A中的兩點間的線段上的任意點都在A中;

2、其次A不是仿射,因為經過A中的任意兩點的直線上的任意點不全部都在A中;

所以說凸集和仿射集有交叉的地方,但是也只是他們的表述有重疊、相似之處而已,凸集的條件更加的苛刻,但是苛刻不等於條件包含。

綜上,所有的四個問題都可以根據我上面的兩個基礎邏輯去推導,請樓主自己判斷;

------------------------------------------------------------------------------------------

說明一下,數學是一門嚴謹的科學,很多解釋起來啰嗦的問題其實表達都很簡單,如果要搞清楚一個問題的本質,最好的方式是抓基礎定理、或者乾脆從公理去推到,只要有耐心,答案都是可以自己推導出來的。


誰也不是誰的子集。

確切的講,包含所有仿射集的集合是包含所有凸集的集合的子集,因為一個仿射集是一個凸集

Every affine set is also convex, since it contains the entire line between any two distinct points in it, and therefore also the line segmentbetween the points

-- Convex Optimization P24


題主這裡應該是搞混淆了仿射集、凸集、仿射包、凸包的概念

仿射集(affine set)、凸集(convex set)

這兩個概念是對集合本身性質的描述,先看他們的定義:

集合S是仿射的Leftrightarrow 對任意x,yin S, 	heta in R,有	heta x+(1-	heta )yin S

集合S是凸的Leftrightarrow 對任意x,yin S, 0leq 	heta leq 1,有	heta x+(1-	heta )yin S

從定義可以看到,仿射集對集合的要求包括了凸集對集合的要求(	heta left[ 0,1 
ight] 以外的區間也需要滿足),要求更嚴格,因此:

1. 如果凸集是仿射集的特殊情況,那麼凸集應該是仿射集的子集。

看對「特殊」怎麼理解了,也可以這樣理解:相比凸集(	heta in left[ 0,1 
ight] 的情況),仿射集還需要額外滿足更多條件(	heta in left( -infty ,0 
ight) cup left( 1,infty  
ight)的情況)才是仿射集,所以仿射集是凸集的特殊情況

2. 但是任何仿射集又都是凸的,所以任何仿射集都是凸集,反之不亦然,所以仿射集應該是凸集的子集。

前半句理解是對的,後半句確切的理解應該是:所有仿射集的集合是所有凸集的集合的子集

仿射包(affine hull)、凸包(convex hull)

這兩個概念是對已有集合生成新的集合的方法,同樣看定義:

集合S的仿射包aff S = left{ sum_{i}^{n}{	heta_{i} x_{i} }   | x_{i}in S, sum_{i}^{n}{	heta_{i}}=1   
ight}

集合S的凸包conv S = left{ sum_{i}^{n}{	heta_{i} x_{i} }   | x_{i}in S, 	heta _{i}geq 0 ,  sum_{i}^{n}{	heta_{i}}=1   
ight}

可見集合S的凸包中的元素也在S的仿射包中,反之不亦然

3. 對於空間中的兩點,其仿射集是過這兩點的直線,其凸集是連接兩點的線段,線段應該是直線的子集。

所以這裡描述的直線和線段應該分別是這兩點組成的集合的仿射包和凸包,我們有:conv S subseteq aff S

參考自:

[1] 王書寧等譯[M]. 凸優化 [Convex Optimization]


看你老師說的話,應該是在說一個點集的凸包 (convex hull) 和仿射包 (affine hull) 。

針對一個特定的點集,其 凸包 顯然是 仿射包 的子集。

當你說「仿射集都是凸集」時,你想說的其實是「仿射包都是凸集」。

這裡的「凸集」不是特定點集的 凸包。


仿射集應該是凸集的子集,因為仿射集一定滿足凸性,但是凸集不一定是仿射集


仿射集是凸集子集。

1.凸集不是仿射集的特殊情況。仿射集的條件更加苛刻。仿射集要求對alpha in mathbb{R}都成立(包括[0,1]),凸集只要求對alpha in [0,1] 成立即可。

2.沒錯

3.要這樣想,仿射集的直線也是凸集,但是線段並不是仿射集。把線段任意延長都是凸集,而仿射集只有一個。所以凸集包含的更多。不能只看誰長啊-_-


你的那位「某老師」說錯了。。

這裡的關鍵問題在於:是凸集的條件更強,還是仿射集的條件更強?從「某老師」的說法來看,他認為凸集的條件更強,這導致你的概念變得有些混亂,產生了三個疑問。但實際上,仿射集的條件是強於凸集的。

仿射集要求集合當中任意兩點的係數和為1的線性組合(即過任意兩點的直線上的點)仍在集合中,凸集在仿射集的要求上,如題主所說增加了一個「係數非負」的條件,幾何直觀來說是任意兩點連成線段上的點仍在集合中,增加的這個條件反而降低了要求,不需要任意係數和為1的線性組合仍在集合內、而是只有係數非負而係數和為1的線性組合在集合內就可以。

你說的疑問3,兩個點的凸集如果限定在1維,可以是過這兩點的任意線段、射線、直線,但仿射集就只有過這兩點的直線,所以你如果只取其中一個凸集,它可能是仿射集的一個子集(如你疑問中所說,過兩點的線段是過兩點直線的子集),但所有仿射集的集合只是所有凸集集合的一個子集(只有過兩點直線這一個元素的集合,是過兩點線段、射線、直線等元素的集合的子集)。


題主注意凸集和凸性是兩個概念。

仿射集具有凸性;

凸集是仿射集的子集。


我覺得這個問題可以用線段和直線的概念做類比。

過兩點的線段,和過相同兩點的直線,前者是後者的子集。

這個結論可以類比於任意集合C的凸包是仿射包的子集。

直線是線段的子集嗎?線段是直線的子集嗎?都不是。因為直線和線段是兩個並列的概念,直線的集合元素是一系列具體的直線,而每一個具體的直線也是一個集合,具體的直線的集合元素才是點,這個時候具體的線段就是對應的具體的直線的子集。但是線段這個集合不是直線集合的子集,他們的集合元素是完全不同的,前者集合元素是具體的線段,後者則是具體的直線。

這個結論類比於仿射集和凸集的關係,仿射集不是凸集的子集,凸集也不是仿射集的子集。而你們老師想表達的概念是一個特定的凸集是其對應的仿射集的子集,C集的凸包和仿射包就是一組特例。

然後就是線段是直的,所以線段就是直線嗎?線段就是直線的超級或者子集嗎?不是的。直 只是一種性質,滿足直這個性質的不一定必須是直線。

這個結論可以類比於凸性,具有凸性的一定是凸集嗎,不一定,凸性只是凸集定義的一個屬性,是一個必要條件,但不是充分條件,所以不能傳遞,不能認為具有凸性就必須是凸集或者凸集的子集。

我也是今天剛開始了解凸優化的,以上只是我面對這個問題的思考,不保證正確。


@青十五 的回答已經說的很好

這裡補充一個簡單的例子說明一下二者的分別

從定義上說,仿射集未對線性係數 	heta 的取值範圍作出嚴格要求,理論上可以從負無窮到正無窮,如果 	heta in left[0,1 
ight] 則y正好位於 x_1 ~ x_2 的線段上,對於所有滿足此條件的x構成的集合稱為凸集。

那麼如果 	heta 取值在 x_1x_2 連線的直線上,而非二者之間的線段的情況呢?舉個最簡單的例子,比如超平面,如果定義一個包含所有b&<=0的超平面C, x_1x_2 為屬於C的任意兩點,有 x_1 <=0, x_2<=0x_1 
eq x_2 ,則假設y在 x_1x_2 的連線的直線上時,有可能y&>0。但如果規定y一定在 x_1 , x_2 連線的線段上時,則一定有y&<=0。

所以說對於超平面b&<=0的半空間,其為凸的,但並非仿射的


明顯是口頭表述不精確,說的到底是集合之間的關係還是集合的集合之間的關係。


從各自的定義入手,

仿射集的概念:

一個集合是仿射集,當且僅當集合中經過任意兩點的直線(而不是線段)上的點仍在集合中。

凸集的概念:

一個集合是凸集當且僅當該集合中任意兩點的連線上的所有點(即線段)仍然屬於該集合。

@智硬的回答很正確。


不好說 空間!


推薦閱讀:

曼德勃羅集的面積能算嗎?Julia 集(內部)呢?
射影幾何里「第四調和點存在性」與哥德爾不完備定理的關係是什麼?
壓縮機與鸚鵡螺:螺線的故事
能否用不同大小的小正方形拼出一個大正方形 ?
四色定理會不會是二維空間的一個固有屬性呢?

TAG:幾何學 | 計算幾何 |