|
古克定律的證明很難,就是瞭解它也不容易,我們將從幾個角度來看這個問題,試著去暸解它。它的主要結果是把前節那類問題大部歸於一個較易證明的集合,稱之為 NP,而在 NP 中找到一批互依的問題稱之為 NP-complete 類並得到下面的結果。
-
- 1. 若有一個 NP-complete 問題可以用 O(nk) 計算量來解決,則全體的 NP 問題都可以用 O(nk) 之計算量來解決,即
-
- 1' 若有一個
NP-complete且 ,則 P=NP。
又換句話說,NP-complete 是 NP 中的難題,NP-complete 解決了 5 , NP 就解決了。但若有一個屬於 NP 而不屬於 NP-complete 的問題解決了,則其他的 NP 問題不一定可以解決。
什麼叫做 NP?NP 是英文 nondeterministic polynomial 的縮寫,意思就是非確定性的多項式時間。要暸解這個字。我們先看一看普通計算機的作用。
現在已知用一個計算機,要解決售貨員旅行問題非常困難,但若我們有許多計算機同時用,是否可以快到把原問題在 O(nk) 時間內解決?「許多」,不是一、二,多一二個是於事無補的,多百個千個仍是杯水車薪,不能有很大的作用,因為就是一千個機子可以分開做,也最多只能快一千倍,在第一節內已說過,幫助不大。因此計算機學家先放眼望去,乾脆允許你可以無限的增加機器。現在我們要注意的是並不是有了無限多的機器所有的問題就可以立刻解決了,因有的問題有先後次序,例如在算下式的時候
[(a1+a2)a3+a4]a5+a6
除非換個形式,否則必須一步一步的解括弧,機子多了並不能加快計算的速度,而且機子多了,其間之聯絡千變萬化,一個機子要應付千千萬萬別的機子送來的信號也疲於奔命了。因此我們只假定所有的機子都只承上啟下,單線作業,不作任何橫向聯絡 6 ,也就是說,機器1可以把它的結果傳給它下面的機子,像 a1,a2,…,an 而每一個機子又可以把它們的結果傳給自己的子機,但在 a1,a2,…,an 之間不互相聯絡。以售貨員旅行問題為例,若有20個城,第一個機子開始,叫下面19個機子各取一個不同的城及計算與 A 距離,而這個19個機子又將它所求得的距離交給自己的18個子機令它們取一個與自己不同的城加上距離,如此往下,在第十次時,第十階段的機子把它已取9城及總距離告訴下一個機子,叫他們再取一與已取之城不同之城加上距離,如此一直做到第19次,所有路線的距離都有了,在時間上求得所有的距離是 O(n)(但用了 19! 個計算機),古克定義凡可以在 O(nk) 時間內用無限多計算機解決的問題為一 NP 問題。
現在要記住的是由於無橫向連絡,在所有路徑的距離都有了之後,並沒有解決售貨員問題(甲),因為不知誰是最短(若加以比較以求最短距離,則要 O(n!) 個比較),因此我們不能說售貨員旅行問題(甲)是一個 NP 問題。但上節問題2,售貨員旅行問題乙,任何一個單線都可以知道它的總距離是否不大於 B,因此每單線都有一個「Yes」或「No」的答案。只要有一個「Yes」的答案,我們即知道本問題已解決,故問題二是一個 NP 問題。在單線作業中,每個機子可以作三件事。
- 目前答案不明確,大家各自作業。
- 某線已找到答案,立刻叫停,大家停止作業,解題完畢。
- 此路不通,本線不再作業,但不叫停,別線仍然作業。
從上項作用,很容易看出找出答案的計算時間即某線叫停的時間,亦即任何一個有「Yes」答案線中計算量之總和,也就是說找到答案「捷徑」上所需的時間。易言之,在一非確定性計算機系統下,其子機像有「猜測」到捷徑的功能。若在任何計算步驟中,某人猜了一個答案,而計算機可以在 O(nk) 時間內回答「Yes」或「No」,這個問題即是一個 NP 問題。再以售貨員旅行(甲)及圖1為例,若你猜一個路徑
我們無法知道此路是否最短,但在(B)問題中,一個「Yes」或「No」的結果只要7個加法就可以回答了。因此根據新的定義,問題2是一個 NP 問題。
由這兩個定義,讀者不難看出問題2,4,6,7,8,9(乙)與10皆為 NP 問題,特別是問題9之(甲),(乙),其實是一樣的問題,但如果你猜二個 m,n,立刻就可知道 a 是否是 mn。
古克定理的關鍵在證明若一種叫滿足問題 (Satisfactability Problem) 的例子屬於 P,則所有 NP 問題均屬於 P(即此問題屬於 NP-complete),令 ,+,-(且,或,反)表三個基本的邏輯運算(即對0與1邏輯符號而言, , ,除了1+1=1之外,+, 與一般代數之加乘相同)。令 f 為一個含有 n 個邏輯變數 (u1,u2,…,un) 的函數。假如我們可以找到一組 u1,u2,…,un,使得 f(u1,u2,…,un) = 1,則 f(u1,u2,…,un) 稱為可滿足。例如
為一可滿足函數,取 u1=u2=u3=1 即可,但
永為 0,故此 f 為不可滿足。
直覺上,這類問題除了將 u1, u2,…,un 一個一個以 0,1 代入檢查 2n 次之外,顯無捷徑可循,古克1971年之論文即證明這是一切 NP 問題之母。
-
- 古克定理:
- 滿足問題為 NP-complete。
現在已可證明在前節中之問題,除了問題1,3,5,9 之外,全是 NP-complete 問題。
未來數學家的挑戰 計算量問題 (第 5 頁)
楊照崑;楊重駿
|
|
.原載於數學傳播十卷二期 .作者當時任教於美國佛羅里大學統計系;美國海軍研究實驗所
‧註釋 ‧對外搜尋關鍵字 |
|
NP-complete 問題既找不到可行的解法,而很大部分的 NP-complete 問題都在計算機語言,程式,電路設計,統計學,程式作業上有大用,因此只好退而求其次找一個可行的近似解。很可惜的是,所有的 NP-complete 問題雖在 NP 的層次上相聯,在近似解上往往各需不同的解法,這些解法多從直觀而來,我們在此舉二個例子。
-
- 例1
- 在第三節問題5,包裝問題中,若採取「能裝就裝」法,即現有的盒子若可以裝得下,就不用新盒子,則此法所需用之盒子數 k1 與最可能少的盒子數 k0 滿足
。
- 證明
- 今令 n 個物品之重為 w1,w2,…,wn 公斤,因每個盒子只可以裝1公斤,故
另一方面,「能裝就裝」法不可能有兩個以上的盒子同時少於 公斤,故
本例得證。
這個問題的結果是說,我們大約可以用「能裝就裝」法做得最好情形的一半好。經過較複雜的證明,Johnson 在1974年證得,當 n 很大時,
- (i)
,且存在一種情形能產生。
- (ii)
也就是用「能裝就裝」法不會壞到 70% 以上,但可以壞到多用了 70% 的盒子。
售貨員旅行問題的一個直觀走法是先訪問最近那個尚未訪問過的城,稱為「先訪近城」法,以圖1為例,其走法為
Rosenkrantz 等在1977年證明這並不是一個很理想的走法,他們證出若各城間的距離滿足三角不等式 7 ,則「先訪近城」法所走之總程 D1 與最短路徑 D0 之關係為
且當 n 很大時,可以有一種情形使得
上式中之 [x] 表示大於 x 之最小整數,例如 [5]=5, [2.5]=3。因 當 n 大時可以很大,故 D1 可與 D0 相差非常之大,但在同一篇論文之中,Rosenkrantz 等證明另一種複雜的「直觀」走法可以達到 之地步。
在上面的定理中,三角不等式的條件很重要,若城之距離無此關係存在時,Sahni 與Gonzalez 在1976年證得:若 NP,則不可能存在一個有限的 m,及一個 O(nk) 計算量的走法,能使其全程長 D1 在任何 n 時滿足
即上式中 m 非等於無限大不可,亦即所有 O(nk) 的做法都不很好。
|
|
|
未來數學家的挑戰 計算量問題 (第 6 頁)
楊照崑;楊重駿
|
|
.原載於數學傳播十卷二期 .作者當時任教於美國佛羅里大學統計系;美國海軍研究實驗所
‧註釋 ‧對外搜尋關鍵字 |
|
不是所有的難題都可歸結為 NP 問題,像下得一手絕對好的圍棋現在目前的推測是比所有 NP 問題還要難的計算問題,即 NP-hard 問題,NP-hard 問題的定義如下:
-
-
- 定義: 若 x 為一 NP-hard 問題,則若 NP
,則 。
也就是說,即使 P=NP,x 還不一定屬於 P,但 NP, 則 x 絕不比 NP 的問題容易。在第三節中的問題1、3不一定是 NP 問題,但若能以 O(nk) 的計算量解決它們,則比較容易的問題2與4也可以 O(nk) 解決,故若問題1、3 則問題2、4 ,又因2、4是 NP-complete,即推出 NP=P。這與 NP-hard 之定義相合,故問題1、3均為 NP-hard 問題。同理問題5也屬於 NP-hard,不過這些 NP-hard 似乎比 NP 難不了多少,但下棋問題可能比 NP 問題要難得多,圍棋問題可以作如下觀。
-
- 問題11.(圍棋問題)
- 以平常的圍棋規則在一個 n x n 的棋盤上下,給定一個殘局(下了二個子就可以算殘局),首先,是否可以確定黑子在最好的下法之下,一定會贏?
這個問題不能用一般的方法證明它是不是為 NP。因為目前沒有人能猜一個必勝的下法且在 O(np) 時內證明它是對的,因為它與對方如何應付有關,而敵方的應付又與他對你以後的下法的推測有關,如此往下走,首先發生困難的是記憶上亮了紅燈,即所需要的記憶可能呈方次以上的進展。
因每一個記憶至少要用(來計算)一次,否則這個記憶就不如不要,因此一個問題的記憶若呈指數上升,則其計算量亦非呈指數似的上升不可,但若某問題只需要方次上升的記憶,即不能保證它只需要方次上升的計算量。
因此計算機學家定義三個新的集合:
-
- PSPACE={x:x 只需要方次上升的記憶 }
註:x 均指問題。
-
- PSPACE-complete:
-
- 若
PSPACE,
-
- 又
PSPACE-complete,
-
- 且
,
-
- 則 P= PSPACE。
-
- PSPACE-hard:
-
- 若
PSPACE-hard,
-
- 且
,
-
- 則 P= PSPACE。
注意在上式中 PSPACE-complete PSPACE,即 PSPACE-complete 是 PSPACE 中的難題,但 PSPACE-hard 不一定屬於 PSPACE。 Stockmeyer and Meyer 在1937年證明了一個與古克相似的定理。
若令 表示存在一個 x, 表對所有的 x,Q 表 , 中的一個,x 為布氏變數0與1,則我們稱 f(Q1 x1,Q2 x2,…,Qn xn) 為一量化布氏公式。若 f 有可能為1,則 f 稱之為可滿足,例如把第四節中之(1)式改寫成
則上式不可能滿足,因對 (u3 為 0 或 1)而言,f 不全是1。
Stockmeyer 與 Meyer 之定理為:
-
- 定理:
- 檢定一個量化布氏公式為可滿足是一個 PSPACE-complete 問題。
當我們下棋面對著一盤殘局沉思的時候,我們的要求是
對我是否存在一著必勝棋可以對付 敵人任何一著應付棋 此後我是否存在一著必勝棋可以對付 敵人任何一著應付棋 …… 我是否存在一著必勝棋可以對付 敵人任何一著棋 我贏了
因此這完全是 , , , ,… 之交替作用與Stockmeyer 與 Meyer 定理之關係至為密切, Robertson 與 Munro 在1918年證得圍棋是一種 PSPACE-hard 的問題,目前有人計算到圍棋 8 必勝法之記憶計算量在 10600 以上,不論人腦或電腦的記憶絕少不了一個原子,而現今所知的宇宙原子數約只有 1075。棋之道,大矣哉!要做一個下圍棋必勝的機器人是談何容易!
|
|
|
未來數學家的挑戰 計算量問題 (第 7 頁)
楊照崑;楊重駿
|
|
.原載於數學傳播十卷二期 .作者當時任教於美國佛羅里大學統計系;美國海軍研究實驗所
‧註釋 ‧對外搜尋關鍵字 |
|
現在你明白二十世紀的大難題了,P=NP?用簡單的語言說,就是是否能找到一個只呈方次增加的方法去解決旅行、包裝、舞會等問題。平凡的問題,期待您不平凡的解答。
-
- 1. Gorey, M.R. and Johnson, D.S.《Computers and Intractability-A Guide to Theory of NP-Completeness》, 1979, Freeman and Company.
-
- 2. Pearl, J.《Hearistics-Intelligent Search Strategies for Computer Problem Solving》,1984, Addsion-Wesley.
-
- 3. Cook, S.A.〈The complexity of theorm-proving procedure〉, Proc. 3rd Ann. ACM Symp. on Theory of Computing, 1971, 151-158.
-
- 4. Jonhson, D.S. et. al.〈Worst case performance bounds for simple one-dimensional packing algorithms〉, SIAM J. Comp., 1974, 299-325.
-
- 5. Rosenkrantz, D.J. et. tl.〈An analysis of several heurishics for the traveling salesman problem〉, SIAM J. Comp., 1977, 563-581.
-
- 6. Sahin,S. and Gonzalez,〈P-complete approximation problems〉, J. ACM, 1976, 555-565.
-
- 7. Stockmeyer, L.J. and Meyer, P.R.〈Word problems requiring exponential time〉, Proc. 5th. Ann. ACM Symp. on Theory of Computing, 1973, 1-9.
-
- 8. Robertson,E. and Munro, I. 〈NP-completeness, puzzles, and games〉 Utilifas Math., 1978, 99-116.
|
|
|
|
|
|