筆者認為數學建模的困難性在於我們無法把現實生活中的問題使用數學符號語言"表達的很清楚",本篇文章從筆者學習作業研究(Operation Research)的經驗,並給些例子說明日常生活中的集合論,概念的啟發!!
[物品價格加總改寫 !! ]
給定 n 個物品, I = \{ One , Two , ..... TheNth \} ,每個編號視為"物理上不同且唯一"的物品,而可以定義其價格函數 : X : I \longrightarrow \mathbb{R}
數學上我們習慣把物品做編號化,寫成 i = 1 , 2 , 3 , ..... n ,但這事實上這些數字沒有意義,只是個符號區分"不同"而已不能做運算....,筆者認為是多此一舉,而且容易混淆,所以在現實生活中的應用,我們不必把物品編號,可以抽象化成廣義成抽象的集合 i \in I
而當我們要把 n 個物品價格加總,就可以寫成下面這種形式 :
\sum^{n}_{i=1} X_{i} \underset{\text{集合化}}{\Longrightarrow} \sum_{i\in [1,n]_{\mathbb{Z}} } X_{i} \underset{\text{去掉編號}}{\Longrightarrow} \sum_{i \in I} X_{i}
[另外]你還可以...做以下的表示,玩玩交集聯集 !!
I_1 , I_2 \subset I \quad \sum_{i \in I_1\cup I_2} X_{i} , \sum_{i \in I_1\cap I_2} X_{i}
[另外可以回味連續的世界] 加了左邊 \displaystyle{\lim_{n \rightarrow \infty }},右邊\frac{1}{n}
只加左邊就是 Series 啦 !! 大概長這樣,\lim_{n \rightarrow \infty } \sum^{n}_{i=1} X_{i} = \sum^{\infty}_{i=1} X_{i}
加左邊加右邊有機會變積分囉 !! (不嚴謹的寫法,概念上大概長這樣)
\lim_{n \rightarrow \infty } \sum^{n}_{i=1} X_{i} \frac{1}{n} = \int^{b}_{a} X(t) dt
不過微積分不是本文探討的重點 !!
[何謂相同的物品??]
注意 : i 為變數,I 為有限的集合,我們自然可以做取後不放回,一次取一個,可以產生 n! 種可能的序列。 定義 i^{k} 代表第 k 次抽出來的物件 (k \in [1,|I|]_{\mathbb{Z}})
即 (i^1,i^2,...,i^n) \in Hyper(I) = I \times \underbrace{I\setminus \{i^1\} \times I \setminus \{i^1,i^2\} ... \times \{i^n\}}_{\text{depend sets}}
而且 |Hyper(I)| = |I| \times |I\setminus \{i^1\}| \times |I \setminus \{i^1,i^2\}| ... \times |{i^n}| = n!
而 X_i 代表這個物品 i 的屬性值,就如同價格一樣。
現實生活中,我們口語上說這兩個物品一樣,並不是說它們是同一個物品,而是兩個物品它們的屬性值一樣。
i^{1} \underset{X}{\sim} i^{2} \iff X_{{i}^{1}} = X_{{i}^{2}}
而給定屬性函數如 X ,我們可以定義同一"種"物品,即為 cosets / equivalence class / partitions 等概念 (詳細可以參考抽象代數課程),可以定義
[I] := I/\underset{X}{\sim} = \{ [i] \} \quad [i]:= \{i\in I | i \underset{X}{\sim} i' \quad \forall i' \in I-\{i\} \} \text{ 代表 coset }
總共有幾種就是計算 |I/\underset{X}{\sim}| 的個數 !!
當我們買些物品,其中有些物品價格一樣,可以把式子寫成
\sum_{i \in I} X_i = \sum_{[i] \in [I]} |[i]| \cdot X_{[i]}
[多維屬性以及值域!!]
物品除了價格外,也許還有重量,形狀,排名,所以可以把 X 改定義為多維函數,而有時候論域上的不同,
如價格大概是正整數 p \in PRICE = \mathbb{N}
重量是實數w \in WEIGHT = \mathbb{R}
形狀應該可以記做 s \in SHAPE = \{circle,triangle,square\}
排名記做 r \in RANK = \{1,2,3,4,...|I|\}
X : I \longrightarrow PRICE \times WEIGHT \times SHAPE \times RANK
而一般統計學蒐集的資料為,|I| \times 4 矩陣 A ,每一個 row 代表 X_i = (p,w,s,r)
我們可以用 [i] \equiv (p,w,s,r) 來表示同一種物品
[多維下標]
現實生活中,多維下標是比較常見的 ,舉下面明顯的例子:
"加加"買了兩種物品 \{One , Two\}
"阿元"買了三種物品 \{One , Three , Four \}
"減減"買了四種物品 \{One , Four , Five , Six\}....。
抽象的描述可以先定義集合 b \in B := \{\text{阿元 , 加加 , 減減}\} ,於是他們買個東西就可以寫成 depend set I_b := \{ i \in I | \text{buyer } b \text{ buy item } i \}
很明顯我們還可以利用聯集重新建構出 \displaystyle{I' = \bigcup_{b \in B}I_b} = \{One , Two , Three , Four , Five , Six \} \subset I
我們還可以反轉,如果想要知道 Four 這個物品被誰買了就可以定義 B_i := \{b \in B | i \in I_b \} 更簡潔點可以寫成 i \in I_b \iff b \in B_i ,所以 B_{Four} = \{\text{阿元,減減}\}
今天我另外定義了個數 n_{bi} \geq 0 \iff \text{Buyer } b \text{ 買了物品 } i \text{ 買了 } n_{bi} \text{ 個 },價格為 p_{i} 元,則今天我要計算所有人花了多少錢買東西呢??
你可以看看每個人買了什麼,再把它加在一起
\text{TotalCost} = \sum_{b\in B}\sum_{i\in I_b}n_{bi}p_i
當然你也可以這樣算 ,先把買來的東西收集起來,看看共有幾個,再乘以價格再加總 !!
\text{TotalCost} = \sum_{i\in I'}p_i \left[\sum_{b\in B_i}n_{bi}\right] = \sum_{i\in I'} \sum_{b\in B_i} n_{bi}p_i
而如果你學過矩陣,你可以定義 N = [n_{bi}] ,它是 |I| \times |B| 矩陣,但是你會發現好像浪費很多空間,你實作上應該會得到這個結論 i \notin I_b \iff n_{bi} = 0 ,
如果你學過圖論,你就發現 G(V,E) 是比較好表示的方法,G is Bipartite Graph,其中 V = B\cup I' , (b,i) \in E \subset B\times I' \subset B \times I
如果你學過 Indicator Function 你可以定義
\chi_{E}: B\times I \longrightarrow \{0,1\} \quad \quad \chi_E(e) = 1 \iff e \in E
另外你可以定義"邊"的符號 e = (b,i) \iff i = Tail(e) , b=Head(e)
最後回到買東西算錢公式我們可以再加兩個式子 !!
\text{TotalCost} = \sum_{i\in I'} \sum_{b\in B_i}n_{bi}p_i = \sum_{b\in B}\sum_{i\in I_b}n_{bi}p_i = \sum_{e\in E}n_{e} p_{Tail(e)} = \underbrace{\sum_{e \in B \times I}}_{\sum_{b\in B}\sum_{i\in I}} n_{e}p_{Tail(e)} \cdot \chi_{E}(e)
[小結]
這是集合論上在現實生活中的一些例子與表示 ~~ 讓讀者瞭解利用 depend set 一對多的概念其實可以精確描述很多事情 ,當然現實生活中是複雜的離散結構。是多維下標,多維屬性的混合體。值得讀者去冒險探究啦!!
[物品價格加總改寫 !! ]
給定 n 個物品, I = \{ One , Two , ..... TheNth \} ,每個編號視為"物理上不同且唯一"的物品,而可以定義其價格函數 : X : I \longrightarrow \mathbb{R}
數學上我們習慣把物品做編號化,寫成 i = 1 , 2 , 3 , ..... n ,但這事實上這些數字沒有意義,只是個符號區分"不同"而已不能做運算....,筆者認為是多此一舉,而且容易混淆,所以在現實生活中的應用,我們不必把物品編號,可以抽象化成廣義成抽象的集合 i \in I
而當我們要把 n 個物品價格加總,就可以寫成下面這種形式 :
\sum^{n}_{i=1} X_{i} \underset{\text{集合化}}{\Longrightarrow} \sum_{i\in [1,n]_{\mathbb{Z}} } X_{i} \underset{\text{去掉編號}}{\Longrightarrow} \sum_{i \in I} X_{i}
[另外]你還可以...做以下的表示,玩玩交集聯集 !!
I_1 , I_2 \subset I \quad \sum_{i \in I_1\cup I_2} X_{i} , \sum_{i \in I_1\cap I_2} X_{i}
[另外可以回味連續的世界] 加了左邊 \displaystyle{\lim_{n \rightarrow \infty }},右邊\frac{1}{n}
只加左邊就是 Series 啦 !! 大概長這樣,\lim_{n \rightarrow \infty } \sum^{n}_{i=1} X_{i} = \sum^{\infty}_{i=1} X_{i}
加左邊加右邊有機會變積分囉 !! (不嚴謹的寫法,概念上大概長這樣)
\lim_{n \rightarrow \infty } \sum^{n}_{i=1} X_{i} \frac{1}{n} = \int^{b}_{a} X(t) dt
不過微積分不是本文探討的重點 !!
[何謂相同的物品??]
注意 : i 為變數,I 為有限的集合,我們自然可以做取後不放回,一次取一個,可以產生 n! 種可能的序列。 定義 i^{k} 代表第 k 次抽出來的物件 (k \in [1,|I|]_{\mathbb{Z}})
即 (i^1,i^2,...,i^n) \in Hyper(I) = I \times \underbrace{I\setminus \{i^1\} \times I \setminus \{i^1,i^2\} ... \times \{i^n\}}_{\text{depend sets}}
而且 |Hyper(I)| = |I| \times |I\setminus \{i^1\}| \times |I \setminus \{i^1,i^2\}| ... \times |{i^n}| = n!
而 X_i 代表這個物品 i 的屬性值,就如同價格一樣。
現實生活中,我們口語上說這兩個物品一樣,並不是說它們是同一個物品,而是兩個物品它們的屬性值一樣。
i^{1} \underset{X}{\sim} i^{2} \iff X_{{i}^{1}} = X_{{i}^{2}}
而給定屬性函數如 X ,我們可以定義同一"種"物品,即為 cosets / equivalence class / partitions 等概念 (詳細可以參考抽象代數課程),可以定義
[I] := I/\underset{X}{\sim} = \{ [i] \} \quad [i]:= \{i\in I | i \underset{X}{\sim} i' \quad \forall i' \in I-\{i\} \} \text{ 代表 coset }
總共有幾種就是計算 |I/\underset{X}{\sim}| 的個數 !!
當我們買些物品,其中有些物品價格一樣,可以把式子寫成
\sum_{i \in I} X_i = \sum_{[i] \in [I]} |[i]| \cdot X_{[i]}
[多維屬性以及值域!!]
物品除了價格外,也許還有重量,形狀,排名,所以可以把 X 改定義為多維函數,而有時候論域上的不同,
如價格大概是正整數 p \in PRICE = \mathbb{N}
重量是實數w \in WEIGHT = \mathbb{R}
形狀應該可以記做 s \in SHAPE = \{circle,triangle,square\}
排名記做 r \in RANK = \{1,2,3,4,...|I|\}
X : I \longrightarrow PRICE \times WEIGHT \times SHAPE \times RANK
而一般統計學蒐集的資料為,|I| \times 4 矩陣 A ,每一個 row 代表 X_i = (p,w,s,r)
我們可以用 [i] \equiv (p,w,s,r) 來表示同一種物品
[多維下標]
現實生活中,多維下標是比較常見的 ,舉下面明顯的例子:
"加加"買了兩種物品 \{One , Two\}
"阿元"買了三種物品 \{One , Three , Four \}
"減減"買了四種物品 \{One , Four , Five , Six\}....。
抽象的描述可以先定義集合 b \in B := \{\text{阿元 , 加加 , 減減}\} ,於是他們買個東西就可以寫成 depend set I_b := \{ i \in I | \text{buyer } b \text{ buy item } i \}
很明顯我們還可以利用聯集重新建構出 \displaystyle{I' = \bigcup_{b \in B}I_b} = \{One , Two , Three , Four , Five , Six \} \subset I
我們還可以反轉,如果想要知道 Four 這個物品被誰買了就可以定義 B_i := \{b \in B | i \in I_b \} 更簡潔點可以寫成 i \in I_b \iff b \in B_i ,所以 B_{Four} = \{\text{阿元,減減}\}
今天我另外定義了個數 n_{bi} \geq 0 \iff \text{Buyer } b \text{ 買了物品 } i \text{ 買了 } n_{bi} \text{ 個 },價格為 p_{i} 元,則今天我要計算所有人花了多少錢買東西呢??
你可以看看每個人買了什麼,再把它加在一起
\text{TotalCost} = \sum_{b\in B}\sum_{i\in I_b}n_{bi}p_i
當然你也可以這樣算 ,先把買來的東西收集起來,看看共有幾個,再乘以價格再加總 !!
\text{TotalCost} = \sum_{i\in I'}p_i \left[\sum_{b\in B_i}n_{bi}\right] = \sum_{i\in I'} \sum_{b\in B_i} n_{bi}p_i
而如果你學過矩陣,你可以定義 N = [n_{bi}] ,它是 |I| \times |B| 矩陣,但是你會發現好像浪費很多空間,你實作上應該會得到這個結論 i \notin I_b \iff n_{bi} = 0 ,
如果你學過圖論,你就發現 G(V,E) 是比較好表示的方法,G is Bipartite Graph,其中 V = B\cup I' , (b,i) \in E \subset B\times I' \subset B \times I
如果你學過 Indicator Function 你可以定義
\chi_{E}: B\times I \longrightarrow \{0,1\} \quad \quad \chi_E(e) = 1 \iff e \in E
另外你可以定義"邊"的符號 e = (b,i) \iff i = Tail(e) , b=Head(e)
最後回到買東西算錢公式我們可以再加兩個式子 !!
\text{TotalCost} = \sum_{i\in I'} \sum_{b\in B_i}n_{bi}p_i = \sum_{b\in B}\sum_{i\in I_b}n_{bi}p_i = \sum_{e\in E}n_{e} p_{Tail(e)} = \underbrace{\sum_{e \in B \times I}}_{\sum_{b\in B}\sum_{i\in I}} n_{e}p_{Tail(e)} \cdot \chi_{E}(e)
[小結]
這是集合論上在現實生活中的一些例子與表示 ~~ 讓讀者瞭解利用 depend set 一對多的概念其實可以精確描述很多事情 ,當然現實生活中是複雜的離散結構。是多維下標,多維屬性的混合體。值得讀者去冒險探究啦!!
[以上純為學術經驗交流知識分享,如有錯誤或建議可留言~~]
by Plus & Minus 2017.09
留言
張貼留言