国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

人工智能—狀態空間法(state space)[四]

2019-11-06 06:51:54
字體:
來源:轉載
供稿:網友

這個題目是課上老師留下來的問題,然后借用之前傳教士和狼的套路,將這個問題用編程實現。

題目描述:農夫需要把狼、羊、菜和自己運到河對岸去,只有農夫能夠劃船,而且船比較小,除農夫之外每次只能運一種東西,還有一個棘手問題,就是如果沒有農夫看著,羊會偷吃菜,狼會吃羊。請考慮一種方法,讓農夫能夠安全地安排這些東西和他自己過河。

最終得出兩套方案:

這里寫圖片描述

#以左岸為例a=1#農夫在左岸b=1#狼在左岸c=1#羊在左岸d=1#白菜在左岸class nongfu(): def __init__(self): pass def Operations(self,s): p1 =[s[0]-1,s[1]-1,s[2],s[3],0] p2 =[s[0]-1,s[1],s[2]-1,s[3],0] p3 =[s[0]-1,s[1],s[2],s[3]-1,0] p4 =[s[0]-1,s[1],s[2],s[3],0] p = [p1,p2,p3,p4] q1 =[s[0]+1,s[1]+1,s[2],s[3],1] q2 =[s[0]+1,s[1],s[2]+1,s[3],1] q3 =[s[0]+1,s[1],s[2],s[3]+1,1] q4 =[s[0]+1,s[1],s[2],s[3],1] q = [q1,q2,q3,q4] operators =[q,p] return operators def enable(self,operator): if operator[0]<0 or operator[1]<0 or operator[2]<0 or operator[3]<0: return False if a-operator[0]<0 or b-operator[1]<0 or c-operator[2]<0 or d-operator[3]<0: return False if ((b-operator[1])==1 and (c-operator[2])==1) and operator[0]==1: return False if ((c-operator[2])==1 and (d -operator[3])==1) and operator[0]==1: return False if operator[1] ==1 and operator[2] ==1 and operator[0]==0: return False if operator[2] ==1 and operator[3]==1 and operator[0]==0: return False return True def trun(self,states,operatorindex,roads,e): indexs =[] sign =0 a =0 tem = [] for s in states: for operator in self.operations(s)[e]: if self.enable(operator) : if operator not in roads: indexs.append(self.operations(s)[e].index(operator)) tem.append(operator) roads.append(operator) a =1 if a ==1: pass else: roads.append(['no way']) operatorindex =indexs states =tem e = abs(e-1) return states,operatorindex,roads,ee =1#初始狀態左岸operatorindex =[' ']states =[[1,1,1,1,1]]roads = [[1,1,1,1,1]]nongfuPRo=nongfu()while roads[-1] !=[0,0,0,0,0]: [states,operatorindex,roads,e]=nongfupro.trun(states,operatorindex,roads,e)print roads
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 嘉祥县| 利辛县| 鄂托克旗| 云浮市| 玛曲县| 靖宇县| 辽源市| 西乡县| 宽城| 合作市| 两当县| 新龙县| 岳西县| 东城区| 永登县| 新邵县| 东乡县| 牙克石市| 富川| 延长县| 德兴市| 政和县| 太白县| 诏安县| 赣榆县| 边坝县| 金平| 若尔盖县| 榆社县| 景泰县| 旌德县| 宿迁市| 司法| 多伦县| 海门市| 德令哈市| 乌拉特中旗| 阜新市| 金坛市| 加查县| 扶余县|