回答
一種很常見的方式是通過模式數據庫生成啓發式。以下是有關該主題的更多着名論文之一:https://www.aaai.org/Papers/JAIR/Vol22/JAIR-2209.pdf
詢問如何開始的問題對於本網站來說過於寬泛。更好的入門方法是使用Google學者之類的東西來查找與該主題相關的文章,然後詢問您遇到的具體解決方案遇到的任何問題。
另一種解決方案是使用分層規劃器。在分層規劃中,可以輕鬆指定程序性知識。漢諾塔的制勝戰略也可以很容易地被編碼爲這樣的問題,如下面的紙簡短解釋:
@InProceedings{Alford09TranslatingHTNsToPDDL,
Title = {Translating {HTNs} to {PDDL}: A Small Amount of Domain Knowledge Can Go a Long Way},
Author = {Ron Alford and Ugur Kuter and Dana S. Nau},
Booktitle = {Proceedings of the 21st International Joint Conference on Artificial Intelligence ({IJCAI} 2009)},
Year = {2009},
Pages = {1629--1634},
Publisher = {{AAAI} Press}}
他們的方式我看它是爲了獲得基本的AI算法的工作,然後返工所以它學習自己。
首先 - 我們有三個塔樓A,B,C。所以只有六個動作將是可能的: A-> B,A-> C,B-> A,B> C,C- > A,C-> B, 我們稱之爲AB AC BA BC CA CB。
創建決策樹,其中每個節點代表一個狀態。每個節點對於N個可能的運營商將具有N個孩子(例如,AB從A移動到B,BC從B移動到C等)。這樣我們創建了一個決策樹。
在這個階段,我們可以使用基本的廣度優先搜索(BFS)算法來找出N步是否可以解決這個難題。 BFS的問題在於,河內的發展會消耗大量的內存和時間。但不用擔心。
我們有我們的樹,我們有BFS算法。我們爲河內發現了3張光盤,4張光盤,5張光盤的解決方案。 BFS應該告訴我們什麼是最佳路徑。
現在這裏的路徑值得關注。在3,4,5和6張碟片之間可能存在一種模式。現在我想我們應該考慮看看 a)模式識別算法,以確定是否有元素可以重複自己,也可以從中創建出某些元素。 b)使用遺傳程序來發現軟件是否可以用於3盤,4盤和5盤的算法,這對6盤算法來說效果很好:我們已經有BFS可以作爲我們遺傳算法的測試器,編程算法。
我們應該把1-4的算法放在一起,然後是5嗎? –
- 1. 使用人工智能技術
- 2. 用任意輸入解決河內塔
- 3. 河內塔的遞歸解決方案
- 4. 使用堆棧的河內Python解決方案的遞歸塔
- 5. 解決技術
- 6. 遞歸解答河內塔
- 7. 河內迭代塔如何工作? ç
- 8. 河內塔迭代功能
- 9. 瞭解河內塔的遞歸解決方案
- 10. Prolog - 河內塔
- 11. 河內Erlang塔
- 12. Prolog河內的塔
- 13. 如何使用圖來表示河內問題塔?
- 14. 漢諾塔(河內塔)
- 15. 4座塔河內塔
- 16. 用10塊板解決河內塔遞歸C++
- 17. Google的智能更新技術如何工作?
- 18. 解決河內拼圖塔的遞歸方法
- 19. 河內塔 - 河內的塔另一個輸出
- 20. 河內問題塔
- 21. 河內邏輯塔
- 22. 河內塔動畫
- 23. 河內塔遞歸
- 24. 河內塔(遞歸)
- 25. 河內塔算法
- 26. 通過使用良好的狀態空間和搜索樹解決河內塔
- 27. 如何使用緩存技術解決複雜的sql數據
- 28. 河內塔 - n掛解算法
- 29. 河內塔的變化(雙塔)
- 30. 河內遞交的塔
投票結束太寬泛。有太多可能的答案,或者這個格式的答案太長。請添加詳細信息以縮小答案集或隔離幾個段落中可以回答的問題。 –
@UweAllner我不想詳細解釋如何開始。我只需要一種方法。 –
用於解決「河內塔」的專用AI技術是一種PDDL規劃器。這個想法是將問題描述從求解中分離出來並使用標準的deklarative編程語言。 –