離散數學漫談

朱緒鼎教授

國立中山大學應用數學系

86.6.18

離散數學是一門範圍很廣的學科。粗略地講,離散數學是研究有離散結構的系統的學科。不過,物理世界中除了離散的結構,難道還有其他的結構嗎?其實,萬事萬物均是一個個離散的粒子組成。譬如,我在這裡畫一條直線段為────,這墨水的痕跡並不真的是連續的。它是由有限多個離散的點組成的(地球上所有的分子的個數也是有限的),只是我們肉眼無法分辨罷了。有趣的是,當計算機把這條線段打印出來的時候,真的是把它當作一些點(約幾百個點)打印出來的。

那麼離散數學的研究對象是否包羅一切呢?當然不是。很多結構雖然本身並不是真正連續的,但我們將它看作是連續的結構卻非常方便和確切。數學所描述的永遠只是真實世界的一個近似。選取什麼樣的模型來描述一個實際的系統,一般有兩方面的考量。一是精確性,二是簡法性。只有充分精確,才會有用。只有充分的簡潔,我們才能處理。譬如海水,可以說,它是一個個水分子的運動。但我們把它看作是連續的流體,一則它充分的精確,二則我們沒有能力分析處理那麼多水分子的運動。而有一些結構,則不可以看作是連續的結構,或者看作連續的結構會很不精確。像是工廠企業各部門之間的聯繫,工程施工的工序,DNA序列的結構、交通、通訊網絡結構,課程安排等等,都不是連續的結構。

至於那一些問題應當看作連續的,那一些應看作是離散的,除了問題本身的特性外,往往還依賴於我們對精確性的要求,以及我們處理信息的能力。一般來說,將系統看作是離散的結構會導致需要處理大量的信息。在計算機誕生之前,人們能處理的信息量是很有限的,隨著計算機的迅速發展,人們能處理的信息量越來越大。離散數學,雖然有很多古老的問題,但作為一門較完整的學科,則正是隨著計算機的發展而迅速成長、壯大的。

連續和離散,既是矛盾的,又是統一的,用離散數學作模型的問題,常常用到連續的方法去處理。而連續數學中的問題,則又往往化成離散的問題來求解。特別是在使用計算機時,則不論什麼問題,都是先離散化之後再處理。計算機無論多麼先進,都只能處理有限的離散數據。

雖然離散數學是研究離散結構的一門學科,但基於各種原因,並不是所有研究離散結構的數學都歸於離散數學。譬如自然數是典型的離散結構。但對自然數性質的研究屬於數論的範疇。另外,代數學,機率,統計等都討論很多離散性質的問題。而對於究竟什麼是屬於離散數學之下,人們也沒有完全一致的看法。而且精確的劃分也不必要。數學本來就是一家,各分支之間相互重疊和滲透是自然而且必然的事情。不過,每個數學分支還是有它的核心部分。而作為離散數學的核心部分,學者認為有組合學(計數、排列、組合結構的分析及區組設計)和圖論。

計數是最原始的數學,我們每個人接觸數學都從計數開始。不過,計數並不是簡單的數數而已。即使是數數,有時稍加分析,也能使問題簡單明朗。當你用簡單的推理運算取代繁複的數收時,應當也是很窩心的。譬如有小學三年級的學生做這樣一題:數一數下圖中有多少個長方形(正方形不計):

選擇答案是(a) 11, (b) 13, (c) 15, (d) 17。而正確的答案是19。出題的 顯然漏掉了兩個。看來即使這樣小的數,也容易出錯。但是如果你善用高中學過的組合公式,很容易算出任意一個長有n格寬有m格的長方棋盤中有多少個長方形,多少個正方形。譬如上圖中要確定一個四邊形,只須在3條水平線中取出2條,在5條垂直線中取出2條即可。故四邊形的個數是

。正方形的個數也有很簡潔的公式表示。 這個計數問題當然簡單,但是卻體現分析推理在計數中所起的重要作用。更複雜的計數問題,則需要更多、更深刻的分析,需要用到更深刻的數學知識。

譬如很著名的Fibonacci數,它是用來計算這樣一個數目的:假設某人某月得到一對幼兔。兔子滿兩月後就每月生一對小兔子。所生的小兔子也是在滿兩月後,每月生一對小兔子。這樣,第1, 2, 3, 4, 5, 6, 7, 8, 9, 10個月的兔子數將分別是1, 1, 2, 3, 5, 8, 13, 21, 34, 55。請問第n個月的兔子數是多少?

這個問題怎麼解,請有興趣的同學去思考和查書。但是答案可告訴你:第n個月的兔子數是

這樣一個答案是否出乎你的意料之外呢?所要計的數當然是自然數,而答案中竟用到無理數!真是奇妙的事。

計數問題是非常基本的問題。在很多地方都會冒出來。經過長時期的發展,計數也有了很多有效的方法。除了高中所學的組合排列公式,計數中常用的方法有生成函數(generating function)、遞迴、差分方程、超幾何函數(hypergeometic functions),群論導出的Polya公式,排容原理(Inclusion Exclusion Principle)等等。

儘管如此,很多很多的計數問題至今仍是息懸而未決。譬如有這樣一個看上去很天真無邪的問題:

假設有n個人。現從中挑選若干人(任意數量)出來。將挑選出來的人分成若干(任意數量)組。將任意一個這樣分出來的組稱之為一個“系統”。那麼一共可以有多少個兩兩不同的系統呢?

這個問題曾有中山大學工學院的老師在實際問題中碰到而到應數系尋求答案。其實它作為數學中一個未解決問題也有一段歷史了。(有興趣者可查閱“Order”期刊(中研院數學所有訂)。該期刊每期均刊登8個編輯們認為該領域最有挑戰性的問題。每期均刊登同樣的8個問題,直到被解決後,再用新問題替代。所登載的每一個問題,都有一篇文章介紹其歷史和研究現狀。上述問題即是其中之一。)

還有很多很多未解決的計數問題,期待著年輕學人的挑戰。

計數只是組合學的一個專題。組合學作為離散數學的一部份,自身亦是一個非常廣泛的學科。其它專題包括對組合結構的探討,組合區組設計等等,都是非常豐富,活潑但應用廣泛的專題。

圖論(Graph Theory)是離散數學的另一個主要部份。圖是一種很簡單的結構。一個圖G是由一個集合V(稱之為頂點集)和該集合上的一些元素對E(稱之為邊集)組成。記作G=(V,E)。圖有一個很好的特點,即我們可以把一個圖畫下來。用平面上的點來表示頂點集V中的元素,用兩點問連一條線來表示E中的一個元素對。這大概是為什麼稱之為圖論,以及為什麼V的元素稱為頂點,E的元素稱為邊的緣故吧。譬如下面就是一個圖:


該圖有10個頂點,15條邊,是一個很著名的圖─Petersen Graph,也是一個很漂亮的圖,不是嗎?

圖可以用來作很多實際問題的模型。譬如若用V表示某地區所有城市的集合,用E表示哪兩個城市之間有道路連通,則圖G=(V,E)就是該地區交通網路的一個模型。還有很多你意想不到的東西可以用圖來作模型。

圖作為一種數學結構,可以說是最簡單結構。它只是一個集合上的一個二元關係而已。而且大多數情況下,這個集合還有限的。這樣簡單的結構,能研究出什麼名堂嗎?還真是大有名堂。圖論中有很多漂亮、深刻的定理。而且正是由於其結構的簡單,使得這些定理有著廣泛的普適性。這裡我們用一個虛構的故事向大家介紹一個簡潔、深刻的定理。

從前有一位國王,他有500位女佣人和500位男佣人。有一天國王突發奇想,決定讓這500位女士和500位男士配對成500對夫妻。該王國是一個女權至上的國度。 女士只會和她滿意的對象結婚。即使是國王也不能強迫一位女士嫁給一位她不喜歡的男士。於是,國王讓每位女士列出一份她最喜歡的男士的名單。國王一看,每位女士至少喜歡50位男士,而每位男士也至少受到50位女性青睞。不過,當他開始配對的時候,竟不能配出500對夫妻。於是,他把國內最優秀的數學家找來,讓他來做配對的工作。數學家一算,根本不可能配出500對夫妻。他把這個結論告訴了國王。國王聽了,很不高興。他問“為什麼?”

請你停下來想一想,你可否想像的出一個簡單得連國王都難得懂的原因呢?如果你想不出來,輕則可除去你頭上數學家的桂冠,重則可除去你的頭。

這位數學家倒真有一個如此簡單的原因。他找出300位女士,又找出201位男士,然後問300位女士中是否有一位女士喜歡這201位男士中的任何一位?當這300位女士齊聲回答“不喜歡”的時候,國王也明白了,要讓那300位女士和剩下的299位男士一一配對是絕對不可能的。

也許你在犯嘀咕。原來這位數學家只是運氣好而已,碰巧有這麼一個簡單的原因。其實這與數學家的運氣無關。我們要講的這個定理告訴我們:如果不可以配成500對夫妻,則一定存在某k位女士,她們所喜歡的男士總數少於k。

當然,這個定理不會是用來配夫妻的,儘管它有時被稱為Marriage Theorem。很多實際問題中會用到這個定理或者由它演生出來一些定理。譬如計算處理器的分配,員工工作安排等等,都是這類在圖論中稱為匹配(matching)的問題。

匹配問題是圖論中一個重要課題。其它重要課題還有圖的著色,圖的分解,連通性等等。圖論中除了結構性問題外,還有一類很重要的問題,就是算法性問題,計算理論中有關問題的複雜性研究,絕大多數都是圖論的問題。圖論是計算機不可或缺的一部份。

將組合學和圖論作的離散數的核心部份,很大程度上是學者個人的偏好。很多其他問題都是離散數學的重要組成部份,譬自動機理論,開關理論和布爾代數,對局論和離散機率等等。

談到對局論,有如下一個中國象棋殘局:

你知道該殘局的走法嗎?其實這是一個數學的問題。離散數學可幫你找出這個殘局以及許多類似遊戲的最佳策略。

離散數學和其它的數學分支比較起來,它較少有繁複的數學語言的包裝。很多問題很容易理解。而解決的方法也很許很簡單,也許很難。很多人由於這些特點而喜歡它,也有人因此而看不起它。欣賞它也好,鄙視它也罷,我們都離不開它。十八、十九世紀的工業革命依賴於、也促進了微積分的發展。二十、二十一世紀的信息革命則依賴於、也正促進著離散數學的發展。隨著計算機科學的發展,離散數學將扮演越來越重要的角色。

這篇漫談已經很“散漫”了。雖然言猶未盡,也一定要打住了。這裡所介紹的只是離散數學的冰山一角。其實,學者對離散數學的所知所曉,又何嘗不是冰山一角呢?