傳教士與野人問題(完整狀態搜尋圖)
阿新 • • 發佈:2020-10-19
傳教士與野人問題
傳教士和野人問題。三個傳教士和三個野人在河的一岸, 有一條能載一個人或者兩個
人的船。請設法使所有人都渡到河的另一岸, 要求在任何地方野人數都不能多於傳教
士的人數。這個問題在AI 領域中很有名, 是因為它是第一個從分析的觀點探討問題。
對問題作如下抽象,以列表state=[c,a,b]
分別代表初始岸邊的傳教士人數,野人人數,船隻數目
,有
-
初始狀態:state=[3,3,1]
-
agent所有可能行動:
-
當
b==1
時,在以下五種狀態中選擇一種執行,- a=a-1,c=c-1,b=0
- a=a-2,b=0
- c=c-2,b=0
- a=a-1,b=0
- c=c-1,b=0
但是需保證執行動作state處於狀態空間之中,否則不能執行。
-
當
b==0
時,,在以下五種狀態中選擇一種執行- a=a+1,c=c+1,b=1
- a=a+2,b=1
- c=c+2,b=1
- a=a+1,b=1
- c=c+1,b=1
但是需保證執行動作state處於狀態空間之中,否則不能執行。
-
狀態空間:
[3,3,1],[3,2,1],[3,1,1],[3,0,1],[2,2,1],[1,1,1],[0,3,1],[0,2,1],[0,1,1]
[0,0,0],[3,2,0],[3,1,0],[3,0,0],[2,2,0],[1,1,0],[0,3,0],[0,2,0],[0,1,0]
-