Logical agents (knowledge-based agents)
logical agent可以把世界用邏輯表示(knowledge),並且對此表示做inference來採取對應(達成goal)的行動。由於這在比較接近人類思維思考,所以是最high level (離感官或是神經元最遠)的agent:
Knowledge
knowledge是一些"sentences",採用knowledge representation language (一種formal language)。所謂的sentence其實就是fact,或是assertion,世界(觀)是建立在一堆facts。
一個knowledge based agent擁有一個世界觀,也就是一個knowledge database,此database是對某個特定的世界(domain)擁有的事實,所以是一個domain-specific database。這個database依靠獨立於database之外的inference 演算法來infer出更多的事實,反饋來增益這個knowledge base:
這種製作agent的approach稱為declarative approach: 意思就是我們給agent 資訊(所謂的senstences),這個動作叫做Tell,agent就會藉由跟環境互動來增益其knowledge base。再來透過另一個基礎動作Ask,我們從agent那邊獲得agent 自己inference出來的知識,當然這就是我們不知道的知識 (要不然要他幹嘛??)。
General structure of a knowledge-based agent
下圖是一個普遍性的演算法:這個agent function接受一個percept,回傳一個action。
1. 首先我們利用TELL 告訴agent我們的percept,然後將此percept翻譯成knowledge sentence。
2. agent 對新的percept和已有的knowledge做出inference,得出一個action。
3. 把這個action變成一個新的knowledge sentence增益原本的database,因為這是一個inference出來的decision,等於是一個新的世界觀碎片。
注意這邊和state-based algorithm或是blackbox model不一樣之處在於domain knowledge的作用,所以這些TELL/ASK/MAKE-SENTENCE並不是獨立於percept或是environment或是knowledge base之外的operators。
Wumpus World
用一個有名的wumpus world例子來說明logical agents:這個世界只有4x4大小,玩家起始於(1,1),面向右。
世界中有一隻wumpus會吃人喔~~~~~ 恐怖喔~~~~ 而且有黑洞掉下去會gg。
但是有黃金啊,要不然我進來幹嘛? 玩家可以撿起或是放下黃金(誰要放啊?)
玩家有一支箭可以射死wumpus,要在同一個row或是column,牠的叫聲會傳遍整個世界。
緊鄰(row or column adjacent)wumpus的方格會有臭味(stench smell),而緊鄰黑洞會有微風......(冷風吹過我的洞?!)
PEAS: 懶得打成中文了
agent要怎麼透過logics來挖到寶藏?
沒有留言:
張貼留言