計算機下棋今天還未能達到象棋大師那樣的水平,但它足以與一個優(yōu)秀的業(yè)余棋手相比美。更準確的說法是,計算機的程序足以與一個優(yōu)秀的業(yè)余棋手相比美,因為程序本身對使用哪一臺具體的計算機來表演其技巧是從不苛求的。那么,程序編制員的任務是什么呢?第一,他肯定不象一個演木偶戲的牽線人那樣每時每刻操縱計算機。這是作弊行為。他編好程序,把它放入計算機內,接著計算機便獨立操作:沒有人進行干預。除了讓對手把他的一著按入機內。程序編制員是否預先估計到一切可能出現的棋步,從而編好一份長長的清單,列出針對每一種情況的妙著?當然不是這樣。因為在棋局中,可能出現的棋步多如恒河沙數,就是到了世界末日也編不出一份完備的清單。也是出于同樣的理由,我們不可能為計算機編制這樣一份程序,使它能在"電腦"里事先走一次所有可能出現的棋步,以及所有可能的應著,以尋求克敵制勝的戰(zhàn)略。不同的棋局比銀河里的原子還要多。這些僅僅是瑣細的問題,說明為下棋的計算機編制程序時面臨的難題,事實上這是一個極難解決的難題。即使是最周密的程序也不能和象棋大師匹敵,這是不足為奇的。
程序編制員的作用事實上和一個指點他的兒子怎樣下棋的父親差不多。他把主要的步法提綱摯領地告訴計算機,而不是把適用于每一種開局的各種步法都告訴它。他不是用我們日常使用的語言逐字地說,"象走對角線",而是用數學的語言這樣說,"象的新坐標來自老坐標,程序是在老坐標X以及老坐標y上加上同一個常數,但其符號不必相同。"實際上使用的語言當然更簡潔些。接著他可以再把一些"忠告"編入程序內,使用的是同樣的數學或邏輯語言,其大意如果用我們日常的語言來表達,不外是"不要把你的王暴露在敵前",或一些實用的訣竅,如一馬"兩用",同時進攻對方兩子。這些具體的棋步是耐人尋味的,但講下去未免離題太遠。重要的是,計算機在走了第一步棋之后,它就需要獨立操作,不能指望它的主人再作任何指點。程序編制員所能做的一切只是在事先竭盡所能把計算機部署好,并在具體知識的提供以及戰(zhàn)略戰(zhàn)術的提示兩者之間取得適當的平衡。
基因也控制它們的生存機器的行為,但不是象直接用手指牽動木偶那樣,而是象計算機的程序編制員一樣通過間接的途徑。基因所能做到的也只限于事先的部署,以后生存機器在獨立操作時它們只能袖手旁觀。為什么基因如此缺乏主動精神呢?為什么它們不把韁繩緊握在手,隨時指揮生存機器的行為呢?這是因為時滯造成的困難。有一本科學幻想小說,它通過比擬的手法非常巧妙地說明了這個問題。這本扣人心弦的小說是霍伊爾(Fred Hoyle)和埃利奧特(John Elliot)合著的《安德洛墨達(Andromeda)的A》。象一切有價值的科學幻想小說一樣,它有一些有趣的科學論點作為依據??墒牵f也奇怪,這本小說對其中一個最重要的科學論點似乎有意避而不談,而是讓讀者自己去想象。如果我在這里把它和盤托出,我想兩位作者不會見怪吧。
離開我們兩百光年之遙的安德洛墨達星座里有一個文明世界。那里的人想把他們的文化傳播到一些遠方的世界去。怎樣做才是最好的辦法呢?直接派人走一次是不可能的。在宇宙中,你從一個地方到另外一個地方的最大速度,理論上不能超過光速這個上限,何況實際上由于機械功率的限制,最高速度要比光速低得多。