象棋AI有多強,普通棋手還贏得了嗎?

本頁的答案複述的是本站開源引擎所實現的規則。該引擎遵循亞洲象棋聯合會(WXF)規則,行棋、將死與重複局面的兩條判定都已實現:用長將或長捉逼成重複局面的一方判負,不是判和。長捉的判定還沒有經過官方判例集的校驗。凡是答案提到具體局面的,該局面都在所鏈接的參考頁上,由構建過程在發布之前逐一校驗。

直接回答

顶尖的象棋引擎已經明顯強過人類最強的棋手,這一點和國際象棋一樣,沒有爭議。但“贏不贏得了”問的其實是難度:調低難度的引擎會算得浅、會故意走次優着,業餘棋手贏它很正常。真正值得關心的不是能不能贏,而是你在哪一檔上學得最多——那一檔通常是你贏四成左右的那一檔,贏九成或者輸九成都學不到東西。

引擎強在哪裡,弱在哪裡

強在算。它不會漏掉三步之內的任何變化,不會因為緊張走錯,不會在贏定的局面裡松手。業餘對局裡絕大多數失誤是這一類,所以引擎在這一類上幾乎不可戰勝。

相對弱的是長程判斷:什麼樣的陣形在二十回合之後好,這類問題需要更深的搜索或者更好的評估函數才能看清。不過這個“弱”是相對顶尖人類而言的,對業餘棋手來說它在任何階段都足夠強。

難度是怎麼調出來的

三個旋钮:搜索多深、每步想多久、以及有多大概率不走最好的一着。最低幾檔靠的是後面那個——它看得見好棋,只是不總是走。這就是為什麼低難度的引擎有時會走出很難看的一步,那不是它算錯了。

知道這一點會改變你的用法:低難度的對局不要用來檢驗開局,它的回應不代表正確回應。要檢驗開局就把難度拉滿,或者直接用復盤。

該選哪一檔

選你贏得動但贏得不輕松的那一檔,大約十局贏四局。贏得太輕松說明它沒在考你,贏不了說明它在考的東西你還沒學到,兩頭都是浪費時間。每往上升一檔,通常要在原地待一兩周。

相關問題

AI會不會因為我下得差而放水?

難度檔位是你設的,它不會自己變。這一點比動態調節更誠實,也更好用來衡量進步。

和引擎下多了會不會養成坏習慣?

有一個:引擎不會犯錯,所以不會教你怎麼抓住對手的錯。真人對局要照樣下。

象棋被計算機完全解決了嗎?

沒有。殘局的一部分算清了,整盤棋的完全解法遠遠超出現在的算力。

上盤走一遍

看懂和下出來是兩回事。免費對弈,人機或真人,點開就能下。