? ? ?智能體,即擁有智能的個體。無論是從定義還是從對其實際功能來分析,都它都離不開和人之間的比較與對比。本章主要介紹智能體的基本定義、理性的概念、環境的本質和智能體的結構。
何為智能體?
? ? ? ?和人一樣,智能體是能夠感知外界環境并作出相應動作的個體。離開環境談智能體是沒有意義的,正如單個存在的人類(以及任意個體)。
何為理性?
? ? ?理性,即為效能最大化,而這個最大化是有條件的,即智能體已知的信息和當前的環境。因此理性可以定義為:
對每一個可能的感知序列,根據已知的感知序列和智能體內建的先驗知識,理性智能體應該選擇期望能使其性能度量最大化的行動。
何為環境?
? ?智能體的環境可以先狹義的定義為任務環境,稱之為PEAS(Performance、Environment、Actors、Sensors)。在構建智能體時,首先要規定任務環境。而構建任務環境的法則是抽象與拋棄。兩者實際相輔相成,是將任務環境的實質內容表示出來,例如構建一個求兩地之間路線的智能體時,太陽耀斑爆發與否一般來說可以忽略掉。其實質為在一定的約束條件(實際路線)下,求兩點的連通路線,最佳情況一般為最短路徑,或者最短時間等。
? ? ? ? 任務環境的屬性有:
- 完全觀察與部分可觀察
- 確定的與隨機的
- 片段式的與延續的
- 靜態的與動態的
- 離散的與連續的
- 單智能體與多智能體
智能體結構
智能體=智能體結構+智能體程序
智能體程序
? ? ? ? 典型的智能體程序有兩種,最基本是表驅動型。智能體由一張表驅動,而該表中記錄了智能體當前時間點以前接受到的所有感知序列與外界環境組成的輸入和需要采取的行動(輸出)。
function TABLE-DRIVEN-AGENT(percept) returns an action static percepts,輸入序列,初始為空 table,動作列表,以感知序列為索引,初始完全指定 將percept加入到percepts中 action <--- LOOK-UP(percepts,table) return action
? ? ?上述偽代碼描述了表驅動程序如何運作:表中儲存了所有序列和所對應的應該采取的行動。智能體通過將當前獲得感知加入到感知序列中來在表中查詢應該采取的行動。以上!
? ? ? 表驅動智能體最大的缺點:空間爆炸!!!不解釋!
? ? ?除去表驅動,基礎的智能體程序還有簡單反射型智能體。其特點是只根據當前的感知序列來采取行動而不管感知序列歷史。這種假設很傻很天真,但效果還不錯。它可以被看做是表驅動智能體程序的一階馬爾科夫版本。
智能體結構
? ? ? ? ?使用簡單反射模式可以構建出簡單反射型智能體。
? ? ? ? 條件-行動規則實際就是簡化的表。
? ? ? ? 對付可觀測環境最好的方法就是讓智能體追蹤記錄當時無法觀測到的那部分世界。也就是說,智能體應該維持取決于感知歷史的內部狀態。更新內部狀態需要兩種知識:
- 世界獨立于智能體將如何發展的信息
- 智能體行動將如何影響世界的信息
? ? ? ?它的特點是條件-行動規則不再是通過當前感知查詢,而是根據當前狀態查詢。如下偽代碼所述。
function REFLEX-AGENT-WITH-STATE(percept) returns action static state,對當前世界的描述 rules,條件-動作規則的集合 action,最近的動作,初始為空 state <--- UPDATE-STATE(state,action,percept) rule <--- RULE-MATCH(state,rules) action <--- RULE-ACTION(rule) return action
? ? ? ??
? ? ? ?有時知道世界的信息還不足以知道如何行動——如同人一樣,沒有目標———>基于目標的智能體。
? ? ? ?為了提高效率,還有基于效用的智能體。
? ? ?類人形態:學習型智能體。
重點總結:智能體=智能體結構+智能體程序、智能體程序、智能體結構。