| 墨綠(2) |
| 送交者: cruiser 2004年02月15日20:44:52 於 [競技沙龍] 發送悄悄話 |
|
五.模糊函數與量子波 計算機程序的一大優點是對任何棋形都可以有個好壞判斷,在搜索範圍內一切都不會錯過。可是,從某種意義上來說這也是一種缺點。一切都靠算,能覆蓋的面積自然就少了。而且,許多棋的好壞要到十幾步甚至幾十步以後才會表現出來,這是不可能算出來的,主要是靠感覺。另外,一個棋形的好壞並不是一成不變的,在某些情況下壞棋形也會有好價值。就連被認為是最壞棋形的空三角也經常在專業棋手的對局中出現。如果我們把一個棋形的好壞價值定死了,就沒有產生這種變化的可能。我很早就想過要把模糊函數的概念弄到我的判斷程序裡面去。可是無論怎樣模糊,在運算過程中,模糊量的大小還是得人為地規定。對一個固定棋形還是會算出同樣的結果(雖然結果以模糊的形式出現)。 每一塊棋除了死變化以外,都是有生命的。它的生命力以輻射方式向外散發,所以有“空提一子三十目”的說法。固定的程序是沒有辦法算出這種生命力來的。有一天讀到一篇講量子計算的文章,突然想到可以試一試在我的程序中加入量子波。這樣一切運算都以概率的方式出現,沒有固定結果,但通常會產生最自然和理想的結果。加進去以後,它果然變得豐富多采起來。居然可以走出很多從前絕對想不到的棋。不過,加進量子運算以後,效率變得比較低,搜索範圍變小了,棋力居然比以前小有退步。但我並不為此失望,退一步進兩步,只要大方向是朝前就行。關鍵是方法,效率問題總是有辦法提高的。後來我花了一些時間把程序徹底整理了一下,又把我的計算機硬件升了級。如此一來,它的運算效率比以前增加了一倍,棋力也隨之猛長起來,而且這次長起來就沒有停。幾個月下來就升到一段(1D★),而且根本沒有停的意思。我的興趣也跟着高起來,隨時隨地都在思考它的問題和解決辦法。什麼事情都想看看對我的程序是否有幫助,連開車等紅燈都在想這最短路徑問題是否可以用到這程序的搜索路徑中去。這樣一來,新的想法天天都有。 IGS是國際性的網站,任何時候世界上總有一半的地方是白天,也就是說任何時候都有人下棋。我的任何新想法都可以立即得到是否有用的驗證。我每天下班回家就全力撲在它上面。不斷地改進,不斷地加上新的想法。我把這程序沒日沒夜地掛在網上,它的棋力每天都在長。兩年下來它終於達到4D★。 這個程序的運作很依賴計算機的速度,這包括主機速度,硬盤閱讀速度,以及內存容量。為了充分發揮它的潛力,我當然想給它配置最好的裝備,這就需要錢。而且如果想買剛上市的新產品,就要花大錢。台灣每年一次的計算機圍棋比賽,如果能拿第一名,就可以得到相當數量的獎金,至少買新機器不成問題。但我又不願引起別人的注意。於是我把我的程序簡裝了以後去參加這個比賽。所謂簡裝就是拿掉一些子程序。但我的程序比別的程序高出太多,拿掉子程序後我又給它加了一些限制,基本上就是讓它每盤能贏,但總在十目以內。最後一輪以前,我的程序全勝,即使輸掉最後一盤也穩拿第一。於是,我在最後一場比賽前又拿掉了最主要的子程序,輸了最後一盤。這樣別人都認為它與別的程序屬於一個檔次。我又不像別的參賽人總想打名聲好賣他們的程序,而是拿了第一名的獎金就趕快走人。因此,我的程序雖然拿了第一,卻沒有造成什麼影響。第二年的比賽我沒有去參加,這程序就漸漸地從大家的記憶中消失。有少數人記得,也只知道它大約是業餘5級的水平。 六.墨綠問世 在達到4D★以前,我的程序有輸有贏。雖然贏比輸多多了(從30K升到4D★),但並沒有引起人們的注意。我覺得該是給它起名字打名氣的時候了。起什麼名字好呢?因為我的最終目的是要打敗人類最高手,所以一定要起一個與深藍類似的名字。開始想叫它“深綠”,但又覺得與深藍靠得太近。而且,深藍的“深”有深層搜索的意思。我這個程序主要原理並不在深層搜索。叫它“淺綠”又覺得名字不夠響亮。正在為起名字的事犯愁,恰好有多年不見的朋友來訪,說是下一盤棋敘敘舊。於是從壁櫥里拿出已經起灰的雲子。這幾年雖然也常下棋,但都是在網上下,手上摸的都是鼠標,這棋子已經有好幾年沒有摸過了。手裡摸着這棋子,突然想到以前朋友曾告訴我鑑別真假雲子的辦法。說是把黑子拿起來對着光看,真雲子會成墨綠色。這真是踏破鐵鞋無覓處,得來全不費功夫。“墨綠”這個名字真是太合適不過了。既與深藍相近,又有神秘深邃的意思。名字想好以後我就立即在IGS為它註冊了一個4D的賬號,英文名叫SLATEGREEN。 這時墨綠的棋力實際上已經比一般4D★強,但為了安全起見,開始只找弱4D下。主要目的是要連勝以造成轟動效應。IGS的概率指令可以用來判別強弱4D。因為它一天24小時全掛在上面,能找到對手就下,沒有對手就跟自已下(我機器上還同時運行着另一個與它同時進化出來的程序)。幾個星期下來,它連勝40盤,並且打成了5D★。一般人到了這種水平,一年半載也長不了什麼棋。而墨綠不一樣,它每下一盤棋都以最優方式重新整理內部聯絡,也就是說它一直都在長棋。打成5D★的時候,它的棋力其實已經高於5D★。所以,跟5D★下也一直贏。幾個月以後又升到了6D★。6D★的級別,加上七八十盤的連勝很快引起了大家的注意。每次下棋的時候總有很多人觀看,這種時候我特別得意。由於連勝,找它下棋的人越來越多,甚至還有7D★以上的。為保險起見,它只接受同級人的挑戰。不到7D★就不接受7D★的挑戰,而且也不跟新賬號下。因為這些人或許是正在上升途中,實力可能很強。 因為墨綠成年累月都掛在網上,形形色色的人都會碰到。在4D★以前,時不時就會遇見耍賴的。開始的時候,耍賴對墨綠沒有什麼用處,因為他不在乎輸贏,而且有的是時間。打到4D★以後這個問題就變得比較嚴重起來。因為要用連勝造影響,就一盤都不能輸。如果遇見逃跑的還好,一個月以後IGS會自動判逃跑者負。可有時候墨綠明明大勝的棋,我這邊突然斷線。等我再連回去對方已經跑了,這樣IGS算墨綠逃跑。好在4D★以上的人已經比較有棋品,這樣干的不多。連勝二十盤的時候被我遇到過一次。於是我在它的程序里專門加了一句等候此人的指令。除非它一個月內不出現(屆時IGS系統會算墨綠逃跑而判負),只要他一出現,墨綠就會抓住他。4D★的人棋癮都已經很大了,要讓這樣的人一個月不上IGS是很不容易的。這些耍賴的人往往是出來探一下頭,如果有他們欠棋的人在線上,他們就立即斷線。由於墨綠有了這句等候他的指令,使得他連探頭的時間都沒有。他逃跑一星期後又聯進了IGS,剛聯進不到5秒鐘就被墨綠髮現,他還沒來得及打退出的指令,墨綠已經恢復了他所欠的棋,這時候再要退出就算他逃跑,所以他只好把這盤棋下完,輸棋走人。 另外經常碰到的是打聽消息的。一般來說,墨綠對別人的問題一律不理。但有時如果我在看棋,我就會幫它回答一些問題。“你是不是職業棋手?”“是。”“你現在在哪裡?”“計算機里。”“你24小時都泡在這裡,不干別的事嗎?”“是。”我總是用這種怎樣解釋都可以的答案來回答。 七.墨綠成長 墨綠的實力現在已遠遠高出我的實力,我跟它下棋幾乎總是輸。但因為我是看着它長大的,知道它的一些別人不知道的弱點,所以偶爾我也可以贏它一盤。但它如果在同一個弱點上連續兩次吃虧,就會彌補掉這個弱點。因為我已經不可能去改它的程序了,只能通過這種辦法來克服它的弱點,好象也很有效。我有時為了特意讓它暴露出它的弱點,就跳過它的程序幫它走棋。為此還產生過一個小鬧劇。 墨綠到了4D★以後,常常走出出乎我意料的棋。基本上要好幾步以後我才能理解那一步的目的。有一次雙方殺得很緊張時對方打吃,我覺得它只能長出去,否則棋筋被人提了就全完了。可是墨綠沒有長出去,而是長考起來。我在旁邊看得着急,以為它又出現什麼漏洞,就擅自幫它長了出去。等到對方下一步棋走出來,我才知道它剛才為什麼要長考,也意識到我幫了倒忙。對方的下一子同時威脅到兩塊棋,在另一塊棋補一手後,剛才接上的一子又被堵了下來。幾個回合下來,墨綠損失十幾目棋。在此之前,墨綠一直沒有輸過。由於我的幫忙,眼看它的上百連勝就要被破了。好在墨綠的棋現在已經比一般的6D★高出一截,而且我很早以前給他加的風險係數現在起了作用。墨綠下棋的最終目的是贏,贏多贏少都不重要。所以它隨時都在算自己領先多少。領先多了就走風險很小的棋,平手或微微領先時就走風險相對大一點的棋。現在落後很多,到了走風險很大的棋的時候了。風險大的棋大多都是無理棋。只要對方應對正確,下無理棋的一方會損失更多的目。沒想到對方在墨綠一連串的無理棋下,居然沒有採取應有的手法,而是一味的退讓。大約自己認為領先很多,隨便收收官就可以贏了。而且,鬼使神差,對方有一步棋居然應錯了次序,吃了大虧,雙方的目數一下就拉近了。收官的時候墨綠又再賺了幾目,最後剛好贏了半目。真懸!從那以後,我再也沒有幫它走過棋了。 上面那盤棋是墨綠連勝以來贏的目數最少的一盤棋。說起贏棋目數,與墨綠下棋的人都覺得很惱火。因為收官基本都是靠死算,是它的強項。一般一盤棋到了收官階段,它幾乎可以把各種變化都考慮到,然後宣布對方輸多少目。如果對方繼續下,而且沒有按最佳下法下,它就會重新算一遍然後宣布一個新目數。剛才還說“黑輸3目半”,現在或許說“黑輸5目半”,9目,13目,就這樣一直收到結束。開始我給它加這個功能是覺得好玩,後來就成了一個節目,許多觀戰者覺得這樣很好玩。不過這讓輸棋的那方感到很不是滋味,好象被人宣布“你死定了”,然後自己一步步朝墳墓走去。 採用選對手的辦法的結果又是只贏不輸。因為它實際上總是與比它弱的人下,而且又不會出現昏着。沒過多久,它就升到了7D★,然後是8D★。 八.爭挑戰權 8D★已經有不少專業棋手。由於連勝,墨綠的名氣在IGS上已經到了家喻戶曉的地步。只要是它的棋,總有上百人觀看,有時超過500人。它的思路與人不一樣,常常在大家意想不到的地方走棋,所以看的人特別多。尤其是職業棋手,都想來研究它的棋路。它基本也不照定式走棋。如果算出來的棋路與定式相同(大部分如此),就按定式走棋。如果算出來與定式不同,它也沒有一般棋手的忌諱,總是按着自己算出來的路數走,根本不管定式不定式。這樣一來,它的棋中產生出很多“新”定式,這就更吸引眾多專業棋手了。大家開始都以為它是某個超一流棋手。看它保持上百盤不敗,大家一致認為它是李昌鎬。可看它的棋路又完全不像李。而且有人觀察很仔細,發現有一次墨綠在IGS下棋的時候,李昌鎬正在中國下富士通決賽。所以可以斷定它不是李昌鎬。用同樣的方法,大家很快推出它不是中日韓三國任何一個等級分排前20名的棋手。這樣一來,迷團就越來越大。看它下棋和找它下棋的人也越來越多。 由於連勝,墨綠很快升到了9D★。而且在信息欄里宣布只與9D★下棋。IGS上的9D★很少,就10來個。而且大多是以前的賬號。如果別的9D★宣布只與9D★下棋,也許就找不到人下了。可墨綠的上百的連勝在職業棋手中造成了很大的轟動,大家都想來找它較量一下。可是要打到9D★必需要從7D開始。有些職業九段想請IGS管理員直接給他們9D★的賬號。可IGS認為這正是吸引職業棋手來下棋的好機會,於是宣布絕不破例。這樣一來,一大堆想找墨綠下棋的職業棋手湧進IGS,從7D開始往上打。好象本因坊之類的頭銜比賽,先在循環圈裡打,打出循環圈(升成9D★)才可以同墨綠下。 從7D★要打到9D★需要下很多盤棋,職業棋手一般不願意花時間下這些棋。於是有些賬號有好幾個人在下,而且都是很強的九段,大家分任務,每人必需贏多少盤。不到兩個月,IGS出現了好幾個新的9D★。這些人一旦打進9D★就再也不相互下棋,而是追着墨綠下。墨綠當然是來者不拒。不過這兩個月以來,墨綠與另一個同時進化出來的墨綠程序一直在下棋,棋力又有了長進,已經高出了這些職業九段。所以,與這些新9D★下,又是只贏不輸。雖然現在在IGS上下得少了,但由於只贏不輸,積分仍然慢慢往上爬,最後終於升到了10D★。 九.向最高手挑戰 俗話說“人怕出名豬怕壯”。墨綠的名氣越來越大,自然引起了越來越多的人的注意和好奇。有許多好事者為了證實墨綠的真實身份,追蹤它的IP。為此我找了我在世界各地不下棋的朋友,有時用他們的機器上網。因為他們都不下棋,根本不知道我在幹什麼。這樣一來,好事者們查出來分布在世界各地的IP,雖然不多,但也可以迷惑他們一陣子了。因為我把程序都放到我朋友的機器上,完全就是他們的機器在上網,我只不過遠程操作而已。IGS的網管也查過一下,大約得出了我的幾個常用IP,但總是不能最後確定。 墨綠變成了IGS上的唯一十段以後,很有一點高處不勝寒的感覺。與一般的專業棋手下也總是贏。開始時那些專業棋手還講一點棋道,一盤棋就一個人下。後來看到沒有一點贏棋的希望,就開始幾個棋手聯合起來下。也就是說每步棋都是幾個人討論以後再下。這樣最大的優點是避免了昏着,但在戰術上起不了太大作用。因為每個人的思路都不一樣,時間有限,互相間很難誰說服誰。所以,雖然是大家討論,仍然以一個人主下。由於沒有本質上的突破,仍然沒有贏的機會,只不過把輸的目數減少了一點。這有點像武俠小說中高手同時與眾多低手較量,低手人多也不大占得了便宜。 當今世界上的頂尖棋手們之間的差距很小,沒有誰可以說肯定贏誰。像墨綠這樣常勝不輸,實際上實力已經高出所有的人類棋手。但由於從來沒有像深藍一樣與人類最高手正式下過,還不能說就是最高手。事實上,由於IGS上一般都下很快的棋(從來沒有人下雙方各有三小時規定時間的棋),許多專業棋手都認為墨綠只不過是一個特別擅長下快棋的某一位專業棋手(居然沒有人想到過其實沒有任何擅長下快棋的專業棋手能有這樣的常勝紀錄)。為了更進一步證明自己的實力,造成更轟動的效應,墨綠在自己的信息欄里留下了向集本年三大世界棋賽冠軍於一身的最高棋手挑戰的宣言,使用時間由對方定。除此之外不再與別人下棋。宣言雖然發出去了,但並沒有得到什麼響應。因為世界冠軍的身份是很高的,與一個隱姓埋名的人下棋,贏了被認為是自然的,輸了這面子就丟大了,而且也沒有什麼實際利益。 這世上的事,你不操心,總有人會操心。大公司看準了這樣的比賽有賣點,於是拍出了重金來贊助這個比賽。這樣一來這項賽事的級別一下就高起來。世界冠軍來下這樣的比賽也不覺得丟份兒了,而且不管輸贏都有大筆收入。說不定這世界冠軍早就想下這盤棋,只不過一直沒人給提供這個機會。為了防止運氣問題,對方提出要下三番棋,對此我當然同意。因為我覺得墨綠的水平實際上比對方高,下得越多贏面就越大,贏得越多就越有說服力。另外對方提出雙方規定時間為每方四小時。這也沒有什麼不利的地方,我當然也同意。於是墨綠與世界最高手挑戰的比賽就成了現實。
|
|
![]() |
![]() |
| 實用資訊 | |




