這是一個典型的產生式系統的算法題.用的是有界深度優先的遞歸算法,是用C++Builder4.0寫的.這也是人工智能或者程序設計競賽題中最基本最常用的算法.如果自己動手編程實現了一個這樣的題目,那么很多相關的題目也就都一樣可以做了,比如"四皇后問題","推箱子問題","傳教士和野人問題"等等。
利用深度優先的算法都是不一定能找到最優路徑的,而且如果解路徑過長的話還可能會搜索失敗.如果保證要找到最優路徑需要用另一些算法,比如寬度優先算法.無論是哪一種算法,如果問題稍微復雜一點的話,都要解決"組合爆炸"問題,即有幾乎無窮種組合走法的問題,這種空間的復雜度往往是難以想象的,要求計算機的速度往往也就是體現在這方面.
所以我們每一次搜索都要以某種控制策略來決定下一步的走法,以最快的速度達到目標,減少搜索的范圍.這也是人工智能的核心問題.可以說,人工智能的精髓就是窮舉,人工智能的關鍵就是控制策略.
標簽:
Builder
算法
4.0
典型
上傳時間:
2017-04-10
上傳用戶:franktu