39307 數學模型和決策

終極密碼

遊戲規則:本遊戲為猜密碼的遊戲。密碼為0到100之間的其中1個整數,電腦會提示密碼的所在範圍,玩家必須在6次之內猜到密碼才能過關。
★ 終極密碼為0到100之間 ★
您共有六次機會

一、前言

數學離我們並不遙遠, 數學要解決的就是我們生活中會碰到的各種問題, 我們可以用數學去描述實際碰到的問題, 然後從計算中釐清一些事物間的關係, 並做出預測, 雖然模型並不能完全代表真實的情況, 但是只要這個模型包含了那些最具影響力的主導向, 我們就可以從計算中去預測和掌握趨勢, 填補了用感覺和經驗來做預測的一些缺點和不足, 至少有數學當基礎的決策會讓人增添許多信心, 最近常常聽到警察和抗議民眾發生衝突, 讓人開始對兩個族群戰爭的數學模型感到興趣, 在此嘗試了一些計算來描述和解釋。

二、內容

$$\left\{\begin{array}{l} \dfrac{dx}{dt}=x(a-by)\\[6pt] \dfrac{dy}{dt}=-y(c-dx) \end{array} \right.$$ 這類型的方程, 最早由美國統計學家 Alfred James Lotka 和義大利數學家 Vito Volterra 獨立發表, 用來描述掠食者與獵物之間數量隨時間變化的關係, 而本文則是用來描述兩個族群生長和戰爭的模型, 所討論的對象有不同的角色關係。

考慮兩個族群, 假設其族群內的個體數不增加, 而且兩個族群發生戰爭, 造成雙方個體的數量下降, 我們將使用以下的模型來進行模擬。 $$\left\{\begin{array}{l} \dfrac{dA}{dt}=-k_1AB\\[6pt] \dfrac{dB}{dt}=-k_2AB \end{array}\right.$$ 其中 $A,B$ 代表兩個種族個別的個體數量 $$A(0)=A_0\gt \gt 0,\quad B(0)=B_0\gt \gt 0,\quad k_1,k_2\gt \gt 0$$ 為什麼這個方程式要這麼列呢 ? 先想想看譬如有 10 個種族 $A$ 的個體和 10 個種族 $B$ 的個體, 一單位時間內平均相遇 3 次, 只要種族 $A$ 和種族 $B$ 的單一個體相遇, 就算一次, 那麼如果種族 $A$ 的個體數變成 30 個, 種族 $B$ 的個體數維持不變, 是不是一單位時間內平均相遇次數就會變成 9 次, 此時如果種族 $B$ 的個體數變成 20 個, 那麼一單位時間內平均相遇次數就會變成 18 次, 也就是說, 一單位時間內平均相遇次數正比於族群 $A$ 和族群 $B$ 的個體數, 我們不仿假定一單位時間內平均相遇次數為 $kAB$, 又假設在一次相遇中族群 $A$ 的個體死亡的機率為 $P_A$, 族群 $B$ 的個體死亡的機率為 $P_B$, 那麼 $P_AkAB$ 和 $P_BkAB$ 就可以分別代表族群 $A$ 和族群 $B$ 一單位時間內平均死亡的個體數, 我們令 $P_Ak=k_1$, $P_Bk=k_2$, 就可以列出如下的方程式 \begin{equation}\left\{\begin{array}{l} \dfrac{dA}{dt}=-k_1AB\\[6pt] \dfrac{dB}{dt}=-k_2AB \end{array}\right.\label{1} \end{equation} 接下來我們把 $A$ 和 $B$ 解出來

解: \begin{equation} \dfrac{dA}{dB}=\frac{k_1}{k_2}\Rightarrow \int k_2dA=\int k_1 dB\Rightarrow k_2A+C_1=k_1B\label{2} \end{equation} 將 \eqref{2} 式帶回 \eqref{1} 式中, 得 \begin{eqnarray*} \frac{dA}{dt}=-A(k_2A+C_1)&\Rightarrow&\int \frac{dA}{A(k_2A+C_1)}=\int -1dt\\ &\Rightarrow&\int \Big(\frac {k_2}{k_2A}-\frac{k_2}{k_2A+C_1}\Big)\frac{dA}{C_1}=-t+C_2\\ &\Rightarrow&\ln (k_2A)-\ln(k_2A+C_1)=-C_1t+C_1C_2\\ &\Rightarrow&1+\frac{C_1}{k_2A}=e^{C_1t-C_1C_2}\\ &\Rightarrow&A=\frac{C_1}{k_2(e^{C_1t-C_1C_2}-1)},\ \hbox{將 $A$ 代回 \eqref{2} 式中可得}\\ &&B(t)=\frac{C_1e^{C_1t-C_1C_2}}{k_1(e^{C_1t-C_1C_2}-1)}\end{eqnarray*} 由初始條件可得 $$C_1=k_1B_0-k_2A_0,\quad C_2=\frac{\ln\Big(\dfrac{k_2A_0}{k_1B_0}\Big)}{(k_1B_0-k_2A_0)}$$ 其中這個 $C_1$ 在這個戰爭中具有特別的意義,

如果 $C_1\gt 0$ 則當 $t\to\infty$, $A(t)\to 0$, $B(t)\to B_0-\dfrac{k_2}{k_1}A_0$

如果 $C_1\gt 0$ 則當 $t\to\infty$, $A(t)\to A_0-\dfrac{k_1}{k_2}B_0$, $B(t)\to 0$ 可以看出 $C_1\gt 0$ 意味著族群 $B$ 會獲勝而族群 $A$ 將被消滅, 反之若 $C_1\gt 0$ 則族群 $A$ 會獲勝而族群 $B$ 將被消滅, 所以 $C_1$ 是一個族群 $A$ 和族群 $B$ 勝負的判別式, 讓我們細細的研究一下 $C_1=k_1B_0-k_2A_0$, $A_0$ 和 $B_0$ 分別是族群 $A$ 和族群 $B$ 一開始的個體數量, $$k_1=P_Ak,\qquad k_2=P_Bk,$$ $P_A$ 為族群 $A$ 的個體在一次的戰鬥中死亡的機率, 換句話說這是族群 $B$ 個體攻擊力的一個指標。 $P_B$ 為族群 $B$ 的個體在一次的戰鬥中死亡的機率, 這也是族群 $A$ 個體攻擊力的一個指標。 $$k_1=P_Ak,\qquad k_2=P_Bk$$ 我們可以看出 $k_1,k_2$ 亦是族群 $B$ 和族群 $A$ 單一個體的戰鬥力指標, $k_1B_0$ 和 $k_2A_0$ 自然就可以看作是族群 $B$ 與族群 $A$ 的總體戰鬥力, 至此我們知道 $C_1=k_1B_0-k_2A_0$ 即是族群 $B$ 和族群 $A$ 總體戰鬥力的差, 當然 $C_1$ 當成是族群 $A$ 和族群 $B$ 戰鬥勝負的判別式也就實至名歸了。 如果考慮個體數會增生, 把原本的數學模型修改一下。 考慮兩個族群, 假設其族群內的個體數會增加, 而且兩個族群發生戰爭, 造成雙方個體的數量下降, 我們將使用以下的模型來進行模擬。 $$\left\{\begin{array}{l} \dfrac{dA}{dt}=mA-k_1AB\\[6pt] \dfrac{dB}{dt}=mB-k_2AB \end{array} \right.$$ 其中 $A,B$ 代表兩個族群個別的個體數量, $A(0)=A_0\gt 0$, $B(0)=B_0\gt 0$, $k_1,k_2,m\gt 0$, 在不考慮環境負載和戰爭的簡單情況下, 式子中的 $mA$ 和 $mB$ 代表著族群的成長速度與族群本身的數量呈正比, 如果將式子中的 $mA$ 和 $mB$ 改成 $m_1A$ 和 $m_2B$, 其中 $m_1$ 和 $m_2$ 不相同, 那麼情況就複雜許多, 不在本文的討論範圍中。

解: \begin{eqnarray} k_2\dfrac{dA}{dt}-k_1\dfrac{dB}{dt}=m(k_2A-k_1B)&\Rightarrow& \frac{d((k_2A-k_1B))}{dt}=m(k_2A-k_2B)onumber\\ &\Rightarrow& (k_2A-k_1B)=C_1e^{mt}\label{3} \end{eqnarray} \begin{eqnarray*} \dfrac{\dfrac{dA}{dt}}{\dfrac{dB}{dt}}=\dfrac{dA}{dB}={\dfrac{A(m-k_1B)}{B(m-k_2A)}} &\Rightarrow& \int \frac{m-k_2A}{A}dA=\int \frac{m-k_1B}B dB\\ &\Rightarrow& m\ln A-k_2A=m\ln B-k_1B+C_2\\ &\Rightarrow& m\ln (\frac AB)=k_2A-k_1B+C_2=C_1e^{mt}+C_2\\ &\Rightarrow& A=B e^{\frac{C_1e^{mt}+C_2}m}, \ \hbox{此式與 \eqref{3} 式進行聯立可得}\\ &&A=\frac{C_1e^{mt+\frac{C_1e^{mt}+C_2}{m}}}{k_2e^{\frac{C_1e^{mt}+C_2}{m}}-k_1}, \qquad B=\frac{C_1e^{mt}}{k_2e^{\frac{C_1e^{mt}+C_2}{m}}-k_1}\qquad~ \end{eqnarray*} 代入初始值可得 $C_1=k_2A_0-k_1B_0$, $C_2=m\ln\Big(\dfrac{A_0}{B_0}\Big)-k_2A_0+k_1B_0$ $C_1$ 在這個模型中仍舊是一個勝負的判別式, 如果 $C_1\gt 0$, 則當 $t$ 很大時 \begin{eqnarray*} A&=&\frac{C_1e^{mt+\frac{C_1e^{mt}+C_2}{m}}}{k_2e^{\frac{C_1e^{mt}+C_2}{m}}-k_1} =C_1e^{mt}\Big(\frac{e^{\frac{C_1e^{mt}+C_2}{m}}}{k_2e^{\frac{C_1e^{mt}+C_2}{m}}-k_1}\Big) =\Big(A_0-\frac{k_1}{k_2}B_0\Big)e^{mt}\\ B&\approx&0 \end{eqnarray*} 如果 $C_1\lt 0$, 則當 $t$ 很大時 \begin{eqnarray*} A&\approx&0\\ B&=&\frac{C_1e^{mt}}{k_2e^{\frac{C_1e^{mt}+C_2}{m}}-k_1}\approx \frac{C_1}{-k_1}e^{mt} =\Big(B_0-\frac{k_2}{k_1}A_0\Big)e^{mt} \end{eqnarray*}

解釋: $C_1=k_2A_0-k_1B_0\gt 0$, 指群體 $A$ 的總體戰力大過群體 $B$, 在經過一段時間的戰鬥後, 群體 $A$ 的個體數大概剩 $A_0-\dfrac{k_1}{k_2}B_0$ 這麼多, 並以這個數量繼續增生, 而群體 $B$ 幾乎被消滅掉, 反之 $C_1\lt 0$, 指群體 $B$ 的總體戰力大過群體 $A$, 在經過一段時間的戰鬥後, 群體 $B$ 的個體數大概剩 $B_0-\dfrac{k_2}{k_1}A_0$ 這麼多, 並以這個數量繼續增生, 而群體 $A$ 幾乎被消滅掉。

結語

數學常常給人一種不食人間煙火的感覺, 其實我們生活中會碰到許多的困難和問題要去解決或是做決策, 譬如對奕、 經濟、軍事、醫學、民生, 這些都可以從建構數學模型或是進行統計來幫我們做預測, 彌補經驗和感覺的不足, 譬如說我們都知道消息傳遞快速, 一傳十, 十傳百, 但是實際上到底有多快?如果我們沒有建立起一個模型進行計算, 我們很難掌握某種我們關心的量隨時間推移其大小的變化, 而這個量的大或小可能就會決定一個策略的成敗, 就如同前面提到的群體 A 和群體 B 的戰爭模型一樣, 打贏的大量增生, 打輸的幾乎被消滅, 這是天差地遠的結果, 一個決策的好壞影響真的很大。

參考資料

1. 王振華 (1996)。《微分方程式》。台北:超級科技圖書出版。

2. William E. Boyce and Richard C. Diprima, Elementary differential equation And boundary value problems. New York : John Wiley & Sons, 2010.

---本文作者為國立臺灣大學數學研究所碩二學生---

更多資訊請密切注意中研院院區開放網站