跳到主要內容

Set Notations In Real Life

筆者認為數學建模的困難性在於我們無法把現實生活中的問題使用數學符號語言"表達的很清楚",本篇文章從筆者學習作業研究(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 一對多的概念其實可以精確描述很多事情 ,當然現實生活中是複雜的離散結構。是多維下標,多維屬性的混合體。值得讀者去冒險探究啦!!


[以上純為學術經驗交流知識分享,如有錯誤或建議可留言~~] 
by Plus & Minus 2017.09

留言

這個網誌中的熱門文章

Linear Regression By Using Linear Programming

當拿到一筆資料準備玩統計,往往會想要做線性迴歸( Linear Regression ),找出一個模型( mathematical model )來解釋變數間的關係,一般都是使用平方距離,但是如果我們採用絕對值距離呢?? 而剛好在工業工程( Industrial Engineering ),作業研究( Operation Research ) 領域,發展成熟的線性規劃( Linear Programming ) 恰好可以來解決,是一個跨領域的應用 !! 已經存在有許多商業或open source 軟體,如: Gurobi , Cplex , Xpress , Mosek , SCIP  可以輕易求解大型的線性規劃問題。而不僅如此也可以利用整數規劃( Integer Programming )來做特徵選擇 ( Feature Selection ),甚至可以偵測離群值( Detect Outlier ) !! 本文只介紹最小絕對值和,關於 Feature Selection , Detect Outlier 可以參考 Mixed-Integer Linear Programming Robust Regression with Feature Selection , Oleksii Omelchenko , 2010 的論文。 [Data Fitting Problem] 給定$n$筆實數型訓練資料 (training data) $\{(x^{k},y^{k})\}^{n}_{k=1} = \mathcal{D} , x^{k} =(x^{k}_1,x^{k}_2, ... , x^{k}_{p})\in \mathbb{R}^{p}$ , $y^{k} \in \mathbb{R}$ , 我們目標是想要找到一個函數 $f_{\mathcal{D}} : \mathbb{R}^p \rightarrow \mathbb{R}$ 使得  $\forall x \in \mathbb{R}^{p} , f_{\mathcal{D}}(x) \approx y$ , 精確來說: $$ \text{Find } f_{\mathcal{D}} \text{ such that } f_{\mathcal{D}}(x)\approx \left\{

Chain Rule & Identity Function Trick

本文為筆者學習微積分,函數概念與Chain Rule 的時候,遇到的一些概念大坑。本文一一澄清一些個人看法,並分享 Chain Rule 廣義的樣子,以及對於遞迴系統該如何計算...等等看法。 [坑1 : 變數/值符號的認識] 一切從 $y = f(x)$ 開始,我們習慣把 Input 變數用"括號"刮起來,Output y 代表值,f 代表函數。或是可以想成這樣:   $$ x \overset{f}{\longrightarrow} y $$ 這種表示法概念上很嚴謹,但缺點是你必須要用三個符號 $x$,$y$,$f$ 而在微分方程領域出現這種寫法 $y = y(x)$  (把 $f$ 換成 $y$) ,這種寫法就頗簡潔,Chain Rule 通常都是這類表示法。缺點是心裡要能確實明白在哪個場合 $y$ 到底是給定的"值"還是"函數"(註: 通常大多代表函數 $y$,值的話通常會這樣寫 $y(x_{0})$,$y_{0}$) ============================================================== [Bonus] $y=y(x)$這種表示法還有一個好處,如果允許 $f$ 是一對多,那麼 $y(x)$ 就是 $y \text{ is depend on } x$ 的意思,如果你喜歡用集合論來表示可以先定義$f$ 的定義域/對應域 $$ f : X \rightarrow Y$$ 然後 $y(x)$ 可以寫成這樣 $y \in Y_{x}$,其中值域為 $$ f(X):=\bigcup_{x \in X}Y_{x} \subseteq Y$$ ============================================================== [坑2 : Input 的變數到底是哪些] 這邊舉兩個例子提醒: (Ex1) 代換法會重新改變函數的 Input 例如 : $y = f(x) = x+1$ , $ z = g(y) = 2y$  可以代換一下,寫成 $z = g[f(x)] = 2(x+1)$ 如果你用簡記你會發現 $y(x) , z(y) , z(y(x)) \equiv z

Probability Model Of Bingo Game

本文介紹經典的"賓果 Bingo" 遊戲,機率與期望值的解析計算公式的計算概念,相關的數學建模....等等 [遊戲情境] 總共有 $n$ 個相異的號碼彩球,號碼集為 $S:=\{1,2,3,....n\}$,今玩家可以花$1$元,買$1$張賓果卡 ($5 \times 5$) 位置座標集 $Z$, $|Z|=25$,然後從$S$ 隨機均勻選擇 $25$個相異的號碼並排列到一個佇列(queue),而開球只會開前 $m$ 顆球,$25 \leq m\leq n$,而給定獎項圖形集 $\color{red}{p \in P := \{Bingo,王,十,一_1,一_2,...,一_5  \}}$ (可自行設計) ,以及已知賠率表向量 $odds_{P}$。開完球後,把Bingo 卡上的中獎的號碼圈起來形成"中獎圖形" ===================================================== 其中獎項圖形 : "$Bingo$" 代表$25$個號碼全中 "十"代表第 $3$ 列(row)  第 $3$ 行 (column) 有中 (共$9$個號碼) "王"代表第 $1$ , $3$ , $5$ 列(row)  第 $3$ 行 (column) 有中 (共$17$個號碼) "$一_k$" 代表第 $k$ 列有中 (共$5$個號碼) ===================================================== 若中獎圖形有涵蓋獎項圖形大致會獲得,賠率 $odds_{p} \times 1 $ 元,但有些合理規則: ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ $[ 規則 1 ]$ 若獎項圖形 $p_1,p_2$ 有完全重疊$(p_1 \subseteq p_2)$,則以大圖形 $odds_{p_2}$ 賠率算 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ $$\color{green}{ 重要假設: 合理的