編程中非常常見的模型是有限狀態機(FSM)(有關出色的示例,請參見此處的。)FSM是對國際象棋進行建模的好方法嗎?最好的方法是什麼?可以使用哪些國際象棋功能;應該遺漏什麼?
我對計算機科學或工程學,甚至對象棋編程都不了解,所以我想知道這個問題。
編程中非常常見的模型是有限狀態機(FSM)(有關出色的示例,請參見此處的。)FSM是對國際象棋進行建模的好方法嗎?最好的方法是什麼?可以使用哪些國際象棋功能;應該遺漏什麼?
我對計算機科學或工程學,甚至對象棋編程都不了解,所以我想知道這個問題。
是的,我想是這樣。
您將所有可能的董事會職位都列為州(很多州,但是有限)。起始位置為初始狀態。合法行動是國家之間的聯繫(因此“字母”將包括所有可能的行動)。
最後,您將獲得所有可能的國際象棋遊戲集,作為機器可接受的語言。
>
如何通過非法舉動,50和75舉動規則,正式描述合法舉動等的形式來正式解決這一問題,供讀者練習。
抽籤要約,以其他外部方式結束的遊戲(例如手機關機)應該被排除在外。
有限狀態機可以描述為常規語言的識別器。您也許可以通過所有可能的遊戲記錄來識別國際象棋。例如, f3e5g4Qh4#
(傻瓜的伴侶)是該語言中較短的字符串之一。由於該語言的字母是有限的,所有單詞的長度是有限制的(上限為35,000,因為最大遊戲長度不超過6000步(假設50步繪製規則),大多數步長為6個字母進行編碼))。因此,國際象棋的語言是一種有限的語言,因此它很普通,因此可以被FSM識別。
可以將像棋遊戲視為有限狀態機嗎?
是的;這是一個很好的見解。
FSM是具有以下特徵的抽象計算模型:
這是使計算機成為有限狀態機的最後一個功能。也就是說,如果我們對機器可能處於的每個單獨狀態進行編號,則將有最大個此類編號。也許大於宇宙中的原子數,但仍然是有限的。
然後我們可以將像棋遊戲建模為FSM。起始狀態是起始板。輸入的內容是合法舉動-包括“我辭職”之類的舉動-每個舉動都會更新董事會的狀態。有些狀態是“停止狀態”-我們稱這些狀態為“白人有將死”,“黑人處於僵持狀態”,“黑人辭職”等等。
此外,任何具有這些特徵的遊戲可以建模為FSM;您需要的只是有限的遊戲狀態和可預測地更新遊戲狀態的輸入。例如,如果我們考慮對撲克進行限制,以使所有玩家可用的籌碼總數少於例如100萬億美元(或任何其他有限的數字),那麼也可以將撲克建模為FSM。我們有一個開始狀態:玩家人數,每個玩家的籌碼數和洗牌後的牌組。我們有規則來更新狀態-下注,下注和棄牌等等-我們有狀態可以停止遊戲。
但是,如果我們將撲克建模為對可用籌碼總數沒有限制,那麼從技術上講它將不再是FSM;如果玩家可能擁有任何個籌碼,那麼每個撲克遊戲都沒有有限的信息。
考慮以下游戲很有趣: em> not FSM;我已經註意到,數量不限的遊戲不是FSM。考慮一個紙牌遊戲,玩家可以在某個時候採取某種行動,導致牌組被洗牌。在這種情況下,我們有一個不確定狀態轉換,從技術上講,這將使其不成為FSM ...但是也許可以通過以下方法解決:
骰子怎麼樣?遊戲?這些是隨機的,因此看來它們不是FSM,但是我們可以通過將每個玩家的擲骰作為 input 來巧妙地將它們設為FSM,而僅僅是由 choose 玩家;選手。其他隨機遊戲元素(如紙牌洗牌)也是如此。
國際象棋特別適合作為FSM,因為它沒有隨機性,而且實際上在沒有隱藏狀態全部。兩位玩家都始終了解遊戲的整個狀態。
問題專家將像棋視為有限狀態機非常有用。該狀態可以包括:
您真的希望這是國家的範圍,主要是因為在第9.2條的法律中,這是定義位置重複的基礎!
這裡有一個微妙之處,因為儘管排擋權僅取決於K&R是否已移動(或者可以說R已被捕獲),但被動能力取決於ep可以執行。 (可能有一些別針或檢查可以阻止它。)因此,需要先行回顧。
我們在提供狀態方面已經很慷慨,但是在定義字母表時我們可以更加謹慎。我們可以僅通過指示源和目標兩個正方形來定義移動,然後我們可以解釋該移動以給出唯一的移動(包括cast割和e.p.)。當然,在大多數情況下,兩個方塊之間不存在移動,而在其他情況下,由於檢查,該移動是非法的。根據FSM的慣例,這很好。從概念上講,我們可以認為每個職位都提供了一系列法律措施。
很自然地允許陳述棋子上的棋子排列狀態,即使是代表非法立場的棋子也是如此。有些職位看起來很正常,但實際上是非法的-很好,這些都可以。擁有零個或一位國王的位置,或已經移動過檢定口的玩家都很容易。但是,如果一個玩家的棋子位於第一或第八等級,則該棋子也可能會從其他等級開始,然後我們將不得不為每個棋子跟踪其他狀態,以查看其是否有權進行第一步雙跳。起始方塊也可能會影響它在達到第8位時是否可以提升。我們也有一個問題,當一個玩家有多個國王時會發生什麼。但是原則上,定義非法職位的移動是最好的方法。合法位置和非法位置之間的唯一區別是,它是否可以植根於最初的“遊戲數組”中-這是一個微不足道的功能,但有時很難確定。要確定某個職位是否已死,需要展望遊戲的未來,因此我們不想丟掉那棵後來的樹。說出它的出現並沒有使死亡變得不那麼真實。
50/75重複規則的移動和繪製當然也與狀態機無關。前者可能嵌入在狀態機中,而後者則不能,因此最好也從頭開始記錄狀態序列。
在大多數情況下,這是遊戲數組,但是對於復雜的問題,從頭開始是較晚的一點,我們可能需要約定以告訴我們如何確定詳細的遊戲狀態和歷史記錄。
執行所有這些操作有什麼意義?國際象棋問題(特別是仙女問題)的問題之一是規則和約定不太清楚。舉一個隨機的例子:死位規則是否具有50移動的可見性& 75移動狀態?問題世界沒有仲裁員可以告訴我們FIDE規則可能試圖說些什麼。如果我們說得好,沒關係到個別情況,那麼我們就會造成不確定性的迷霧,這將使逆向分析無法發揮其全部潛力。
專家問題學家Guus Rol現在應該採取的方法我們將把每個過渡(移動)分解成一個微階段的旅程。這樣可以更精細地管理童話環境。我自己的感覺是,這應該以我在此描述的更簡單的模型為基礎,這對於他後來的探索是一種大本營。
編輯:其他人可以確認國際象棋是否可以在FSM中表示。我試圖採用的獨特角度是如何應該採用哪種方法:將什麼有意義的東西嵌入機器中以及應該在頂部構建什麼。我沒有提到的真正複雜性是管理多個可能的逆向歷史,這對於許多逆向分析問題是必需的。唯一可行的解決方法是FIDE意義上的state = position。
逆行分析有兩個主要範例:RS & PRA。它們中的任何一個都可能是晶格理論分析的合適候選者,但尚未系統地進行。最好的解釋在這裡 https://www.janko.at/Retros/Glossary/Castling-and-En-passant.htm。韋納·凱姆(Werner Keym)的文章中包含一些經典而又困難的作品。
不打算自動化解決復古問題,而只是定義一種語言來正式表示其解決方案將是一個很好的開始。
我忽略了全面的事件,例如單擊,寫動,觸摸動,辭職,開出要約,開出索償等,以集中於撰寫方面。請注意,有一種有趣的比賽條件,可能有兩名選手同時辭職。
從某種意義上說,是的。國際象棋可以有很多狀態/位置,但是這個數量是有限的。為了從一種狀態進入另一種狀態,需要採取一些措施。如果您處於一種狀態,則可以從多個操作中進行選擇以達到另一種狀態。
您可以通過將FSA狀態與一對值相關聯來將FSA與有效的國際象棋遊戲(由FSA識別的語言是所有有效的國際象棋的集合)相關聯:(1)可能的棋盤配置和(2)一個值,該值指定要移動的下一個玩家。 (給定部件的顏色編碼,可以選擇第二個值。)這些對中的每對僅在有有效的棋局加入時才與過渡連接。一個有效的遊戲將是一系列合法的舉動。我猜想,這種FSA 本身的定義過大。我不確定它將與FSA在魔方上的移動相比較,這需要定義43個五百億個狀態(儘管該遊戲中有許多可能的陳述狀態)。堆棧機將是對國際象棋建模的巨大改進。
根據定義,國際象棋遊戲是一種有限狀態機。
再說一次,可能的狀態數量很大,而且兩個玩家都可以遵循的策略數量更多。
為某些終點桿預留空間,這些數字通常超過了現代計算能力,因此通常不將游戲建模為FSM。
我偶然發現了這個問題,並認為程序員的回答在這裡很有用。
雖然國際象棋棋盤可以表示為一組有限狀態,但由於它們的數量眾多,因此不切實際。
但是,遊戲的邏輯包含特定的步驟-遊戲客戶端通常使用FSM實施。由於玩家必須遵循某些規則,因此使用FSM可以輕鬆實現那些規則(任何其他基於回合的遊戲)。
在繪製動作時,客戶處於特定狀態。我們可以稱其為“計劃”。
然後您選擇一塊,客戶可以提供可供選擇的移動清單。 “正在移動”狀態。
一旦選擇了一個移動,客戶端就可以為該移動設置動畫。
然後您切換到“等待”,其他客戶端執行相同的步驟。
一旦發生配對或遊戲無法繼續,我們將切換到“得分”狀態。
董事會本身肯定是有狀態的,儘管在技術上是有限的,但這與FSM並不相同,因為我們沒有事先寫明州和州之間的轉移規則。
儘管不可能在電路板上的每個位置都具有預編碼狀態,但AI能夠提前映射成千上萬的移動並構建大型的FSM。在這種情況下,它將使用每個狀態必須確定的屬性來確定移動。從技術上講是有限狀態機,儘管定義不一樣。
當您用“規則”標記問題時,我會嘗試回答。
我認為FSM不適合作為模型。當然,您有很多但有限的狀態。該模型各有利弊,有比我更好的計算機科學家對此進行解釋。我的觀點:轉換的次數可能是無限的。
為清楚起見,您必須定義“ chess”。我希望我們同意國際棋聯的《國際象棋法》對國際象棋的定義。這些主要包括兩個部分:基本比賽規則(第1-5條)和比賽規則(第6-12條,附錄和指南)。
從最初的位置轉到位置在1.e4之後,有幾個過渡。 1.Nf3 Nf6 2.Ng1 Ng8 3.e4是其中之一。您會看到問題。
尤其是根據《競賽規則》。第9.6條規定,轉換次數是有限且有限的,因為在排名第5後,遊戲結束了,FSM是一個很好的模型。無限可能出現無限職位。對於無限數量的過渡,有限狀態機可以按定義em 成為模型。