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