那我們剛剛講到是 就是 belief state裡面的transition的方式。那transition 其實如果我們把它 切細一點來看的話,它其實我們可以分三個步驟,部分來講。那基本上是三個stage各是- ,一個叫Prediction Stage 一個是Observation Prediction Stage, 還有Update Stage。那這三個stage要做的事情,其實各別就是這樣 就是你given我一個belief state。 好,然後那你執行某個action,我會,應該會到哪一個 belief state。如果在sensor-less的話,那後面這兩個就沒有,如果在 sensor-less的話,因為你們要observation 基本上就是直接拿到下一個狀態的那個 belief state。但是如果你有observation的時候 下一次我們會做一件事情,就是你這belief state裡面還有很多的state麼,所以我們在對所有這個 belief state裡面所有的 s 你都去拿它可以觀測到的東西,就是這裡面可以拿到觀測 把這些觀測的集合全部合在一起,就是我們的這個possible percepts 就在這個belief state b-hat裡面,可能有的所有的觀測,應該這樣講 那最後一個就是,你如果拿到某一個observation o 這個update就是你拿到這個belief state,又拿到這個新的觀測o 那麼你就可以,因為我們剛剛有偵測,有預測說可能的 observation,所以你就把那裡面符合你真正觀測到的 那個S拿出來,這樣就可以把整個belief state裡面的 set數量縮減,也就是說,這裡面基本上就是所有S屬於b-hat的 而且,你的他的percept就是你剛剛觀測的這個 o 好,這樣的話,我們把它稱為一個b-o。就是這個部分在縮減,這個地方在shrink。 okay 這個部分在shrink,好。那你的結果呢,我們寫成一個transition,就是一- 個result。 就是等於說我們從一個belief state,我們做成一個action a, 您拿到result 我們就可以重新定義。 大家要注意一下,這個跟我們之前講過的result的差別最重要的, 我們之前的result到這邊是個state,你是哪一個action 那我們現在的差別是這邊是一個belief state, 就是一個set of states 好,那這邊的話,整個就是把剛剛我們的三個stage和在一起 基本上就是你會先執行這個a的話,從b執行a,你會拿到這所有的, 這邊是一個belief state 然後之後你會算它可能的所有的possible的percept,就可以觀測到的東西, 全部拿出來,這是一個觀測的集合。然後你再看,你拿到的那個觀測呢 這個o真的屬於這裡面,然後你再拿這個o去update你的 b-hat,這個predict就是b-hat,之後你就會,這個部分就會把你,根據你的觀測 把belief state整個縮小 這邊只是一些數學的式子啦。我們看一下實際的例子。 譬如說,我們現在又給吸塵器加一個sensor,這個sensor可以偵測說它的位置, 就是說他在哪個房間,在左邊還在右邊,它在的房間的 那個房間的灰塵的狀態,有灰塵或者沒灰塵 譬如說,如果是原來,如果是原來的狀態 就是說原來的吸塵器世界,那你往右就是往右了,這沒甚麼關係 然後,之後,如果你的belief state是這個樣,就是1和3,那你往右就是往右, 那你之後就會有這兩個 就是這邊如果是你的belief state,這邊是action, 那這一個 就是b-hat,就是我們剛剛說你執行了這一個a以後拿到的, 所在的belief state 那這邊有,那這兩個belief state更可能觀測到, 在這個地方你觀測到就是,你在b而且dirty 這個時間,這個地方,你觀測到就是你在b而且clean 這邊就是我們寫的剛剛那個o的那個集合,就是我們前一頁的這個possible percept 就是這個b-hat的possible percept,okay, 然後根據你的o,你實際上的o可能就只有一個麼 either是b-dirty either是 b-clean,那你如果observe到這一個, 那之後,這是最後的b o,okay, 就是這一個 那在這個deterministic的話是還好, 我們看一下在non-deterministic的話, 其實還蠻不錯的,就是因為你原本這是你的b,你執行一個a, 這是你的b-hat 你會發現因為是non-deterministic 所以你的belief state原本只有兩個狀態,然後你增長到一四個狀態的set 就真的有點多,可是在這四個狀態裡面呢。 有趣的是,你的observation 只可能有三個 你可以看到,像這兩個state其實你的observation是一樣的, 都是a-dirty,因為你不知道,看不到b嗎。 其實就是這三個。那這三個裡面就是一樣是possible percept。 你會觀測到其中一個,譬如你如果觀測到中間這個o,這是你真正的o, 那這個最後就是你的b o given 這個o,你看到的,最後的belief state, 你會發現belief state執行一個non-deterministic action後,你最後state的 size會增長, 之後如果你有sensor的話, 你就可以根據你的observation,把你的belief state size 再縮小,你如果觀測到是其中這一個的話, 你就更開心,縮得更嚴重 那在這種情況下,你比較有可能devise出一個,一條solution去執行。 那我們也可以把剛剛的三個stage縮得 精簡一點,那基本上,你是predict一個 從b執行a以後predict的結果就是b-hat麼。這邊你去update,你拿- 到o以後 你把這個given b-hat以後,拿 o, 然後去得到這個新的belief state,就是given observation 這個b'就是我們前一頁的b-o啦,我們把它寫在一起的話,就是新的,新的b 之後你就不斷做這個遞迴式,所以我們,這個式子我們 稱為recursive state estimator 你一開始是這個belief state,經過obersvate 執行了a,然後看到新的觀察以後,你把b改到b’ okay,就是這裡面的,這裡面原本早期是一個s, 執行一個a,到s‘。那我們現在的話,中間過程先不管的話 對不起,就是一個b,然後你執行一個a,你會到中間的一個b-hat 好,之後你看了一個o之後,這個observation之後,會回到一個b'。這邊可能- 在non-deterministic會變大 這邊會變大,那麼在這裡的時候會縮小回來 那你就不斷的用這個去替換前面的,你相信的的事件狀態不斷進行下去。 下面這個是課本的一個例子,這個例子是 kindergarten的vacuum world 反正是你吸過的地,因為是kindergarten麼,小孩子麼,所以吸過乾淨的, 可能不久又會有灰塵 如果是這樣的話,這個例子,你原本 belief state在這邊 然後你去吸,吸了之後就是either這個或是這一個麼 okay,因為你吸完之後,就是你的另外一邊就是有可能,就是像這個例子,原本3的 右邊原本是乾淨的,對不對。吸完之後,左邊那個房間當然是沒灰塵 可是,這個還是有可能走這一邊,原因是kindergarten右邊的房間有可能會再出現灰塵 好,所以這個圖是這樣畫 之後你會去用sensor,然後你會發現,a是clean的,你的observation都是同一個, 因為這兩個state的observation是同一個 所以你就知道,這兩個就是從b-hat到b-o 現在在我們這個例子就是b' 就是你看到這個o以後,雖然沒有reduce甚麼,但是就是這邊的case, 好這邊你走了right以後,基本上你都會走到right 但是你的case又變多了,因為你一旦走right以後,左邊的房間又會有可能出現灰塵,就kindergarten麼 如果這時候,你看到的是,像這兩個的話,這兩個的observation是b clean 好,那你如果這時候偵測 observe到是b dirty的話, 你又可以把這4個,size是四個belief state縮成兩個。我們會,之後會這樣一直下去, 像這個例子裡面沒有goal state,就是不太容易存在, 也就是一直一直,因為你有可能清完了又會出現,清完了又會出現, 所以這個agent簡單講就是在這邊,如果在這個世界裡面比較合理的行為就是不斷 往右走,吸,往左走,吸 往右走,吸,往左走,吸,如果你,真的run 完,應該是這個樣子的情況 好,那我們再舉一個例子 這是一個迷宮的例子,有些時候就是我們是一個,迷宮有很多種case,這邊的case是一個 定位,就是你在一個迷宮,你如果有這個迷宮的地圖,但是你不知道自己身在何處 這也是蠻常見的一個case麼 有些時候大家有沒有走過那種公園草叢做的那種迷宮, 有些case是,你進去之前,人家會給你,你會在入口拿一個 迷宮的,草叢搭的迷宮的map。可是你一開始還能trace, 可是走一走就搞不清楚自己在哪裡了,這種情況下你也可以做這件事 假設,譬如說,你的map是知道的,然後,你有4個sensor,你可以偵測到你的 agent可以偵測到東西南北四個方向有沒有牆壁 那如果你現在 不是很肯定自己在哪裡,譬如說,你自己你知道 你可能在這裡,或是在這裡,或這裡,或這裡 然後,這是你認為的可能的4個位置,那你怎麼樣知道你在哪裡呢? 很簡單,你就做個move。這個例子里假設move不能決定向上下左右 你的move其實是一個,某異種non-deterministic的action,我你的move 就只能說我是randomly 但是一定會移到旁邊 我不知道是上下左右哪一個,因為如果你在這一個 這裡的話,move你就在這邊,你在下邊的話,move的結果是這裡,另外一個move的 結果,只能在這邊,雖然是non-deterministic,但是你相信你是在這4個角落, 你move的結果,就是在這4個 然後你再重新偵測,偵測的結果如果是ns 就是說你北邊有牆,南邊有牆,然後左右,東西兩邊沒有牆,如果是這樣的話,你可以看一下, 這4個裡面唯一符合的只有這一個。 只有這一個,所以這個地方是你經過一次move,雖然是non-deterministic的move 然後再經過一次observation,你就可以很清楚的知道你在哪裡 之後你可以再做一次move,再偵測,因為,然後你還是會很清楚知道你在哪裡 因為你move,下次你可能是在這邊,可能是在這邊,那麼在這裡的話 你的observation只會是N和East,你有牆壁就是北邊和東邊 這邊的話你會偵測到,北邊,南邊和西邊,這兩個會不一樣,你會,你可以random移動 再根據你的observation,如果你觀察到的是N1,那你知道你現在在這個位置, 好,這樣繼續下去 好,這樣繼續下去