人工智能——狀態圖(狼羊菜)


理論知識了解https://www.cnblogs.com/6dan_hust/archive/2010/08/23/1806560.html

有一農夫帶一只狼、一只羊和一筐菜欲從河的左岸乘船到右岸,但受下列條件限制:

  (1)船太小,農夫每次只能帶一樣東西過河;

  (2)如果沒有農夫看管,則狼要吃羊,羊要吃菜。

請用狀態空間法設計一個過河方案,使得農夫、狼、羊、菜都能不受損失地過河。畫出相應的狀態空間圖。

提示:

  (1)用四元組(農夫、狼、羊、菜)表示狀態,其中每個元素都可為0或1,用0表示在左岸,用1表示在右岸。

  (2)把每次過河的一種安排作為一個算符,每次過河都必須有農夫,因為只有他可以划船。

解:狀態用四元組表示為S(P,W,G,V),其中P為農民,W為狼,G為羊,V為菜,B為船,B=0為船在左岸,1為船在右岸。初始狀態為S0=(0,0,0,0),目標狀態為Sg=(1,1,1,1)。

安全規則:

  1)不能將G與W單獨留在對岸: not(W==G and P!=W);

  2)不能單獨將G與V留在對岸:not(G==V and G!=P)

操作算符定義為:

P(S)僅農夫過河:if (安全) then {P(S),得到一個新狀態(1-P,W,G,V)};
PG(S):農夫帶羊過河:if (安全) then {PG(S),得到一個新狀態(1-P,W,1-G,V)};
PW(S):農夫帶狼過河:if (安全) then {PW(S),得到一個新狀態(1-P,1-W,G,V)};
PV(S):農夫帶菜過河:if(安全)then {PV(S),得到一個新狀態(1-P,W,G,1-V)}。

解: 

  ①分析狀態

    因為以S(P,W,G,V)的形式且P,W,G,V只有0,1兩種取值,所以有2*2*2*2種狀態

狀態  (P,W,G,V) 狀態 (P,W,G,V) 狀態 (P,W,G,V) 狀態 (P,W,G,V)
S1 (0,0,0,0) S5 (0,1,0,0) S9 (1,0,0,0) S13 (1,1,0,0)
S2 (0,0,0,1) S6 (0,1,0,1) S10 (1,0,0,1) S14 (1,1,0,1)
S3 (0,0,1,0) S7 (0,1,1,0) S11 (1,0,1,0) S15 (1,1,1,0)
S4 (0,0,1,1) S8 (0,1,1,1) S12 (1,0,1,1) S16 (1,1,1,1)

     要求是從S1轉換到S16。

  ②去掉不滿足條件的狀態

  1. 左岸,農民不在,狼羊,羊菜不能在一起,即(1,0,0,*),(1,*,0,0)
  2. 右岸,農民不在,狼羊,羊菜不能在一起,即(0,1,1,*),(0,*,1,1)

  ③繪制狀態圖

    

 

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM