有信息的搜索和探索

??在本章中作儿,我們將看到關(guān)于狀態(tài)空間的信息是如何能夠防止算法在黑暗中跌跌撞撞的拘悦。

1.有信息的搜索策略

? ?我們要考慮的通用算法叫做“最佳優(yōu)先搜索”(名字古老而不太準(zhǔn)確)塌忽。它一般是將TREE-SEARCH和GRAPTH-SEARCH結(jié)合起來(lái),它要擴(kuò)展的節(jié)點(diǎn)是基于評(píng)價(jià)函數(shù)f(n)來(lái)決定的绍在。

? 注意:評(píng)價(jià)函數(shù)有時(shí)不能真正的評(píng)價(jià)優(yōu)劣感帅,這將將搜索引入歧途斗锭。

? ?BEST-FIRST-SEARCH算法有一整個(gè)家族,其中不同的方法是使用不同的評(píng)價(jià)函數(shù)失球,這些算法的一個(gè)關(guān)鍵點(diǎn)為啟發(fā)函數(shù)heuristic function)岖是,標(biāo)記為h(n)

? h(n)=從節(jié)點(diǎn)n到目標(biāo)節(jié)點(diǎn)的最低耗散路徑的耗散值。

1.1貪婪最佳優(yōu)先搜索

? ?貪婪最佳優(yōu)先搜索实苞,從名字可以知道貪婪算法的思想豺撑。每次搜索擴(kuò)展節(jié)點(diǎn)的時(shí)候,試圖擴(kuò)展離目標(biāo)節(jié)點(diǎn)最近的節(jié)點(diǎn)黔牵,因此它只用啟發(fā)函數(shù)f(n)=h(n)來(lái)評(píng)價(jià)節(jié)點(diǎn)聪轿。

? 例子:尋路問(wèn)題--在一個(gè)國(guó)家中尋找由城市A到城市B最近的路線。當(dāng)然猾浦,你有一副地圖陆错。路線結(jié)果為從A城市到B城市所要經(jīng)過(guò)的城市的順序列表灯抛。小路神馬就不考慮了。

? 貪婪最佳優(yōu)先搜索首先會(huì)列出從A出發(fā)能直接到達(dá)的所有城市音瓷, 并計(jì)算每一個(gè)能直接到達(dá)的城市距離和B的距離对嚼,然后選擇最近的那個(gè)城市作為從A出發(fā)所到達(dá)的第一個(gè)城市,然后依次類推绳慎,直至到達(dá)城市B纵竖。

? 該搜索方法很簡(jiǎn)單,簡(jiǎn)單到明顯有很多缺點(diǎn):不能保證最優(yōu)偷线,不具有完備性磨确,如果不注意重復(fù)可能會(huì)出現(xiàn)震蕩的情況……但它畢竟讓我們邁出了第一步沽甥,壞的東西總比沒(méi)有的好声邦。

1.2A*搜索:最小化總的估計(jì)解耗散

? 它把到達(dá)節(jié)點(diǎn)的耗散g(n)和從該節(jié)點(diǎn)到目標(biāo)節(jié)點(diǎn)的耗散h(n)結(jié)合起來(lái)進(jìn)行評(píng)價(jià)。

f(n) = g(n) + h(n)

? 該搜索算法很合理摆舟、很優(yōu)秀亥曹。以至于我不知道該怎么摘錄《人工智能:一種現(xiàn)代方法》中的文字、或者利用自己的問(wèn)題來(lái)形容恨诱。具體分析請(qǐng)見(jiàn)《人工智能:一種現(xiàn)代方法》中內(nèi)容媳瞪。

1.3儲(chǔ)存限制的啟發(fā)式搜索

? ?A*算法減少儲(chǔ)存/空間復(fù)雜度的辦法就是把迭代深入的思想用在啟發(fā)式搜索上。我們稱之為迭代深入A*算法或者IDA*算法照宝。IDA*算法和典型的迭代深入算法最主要的區(qū)別就是蛇受,所用的截?cái)嘀挡皇撬阉魃疃龋呛纳⒅礷 = g + h厕鹃。IDA*對(duì)很多單位耗散問(wèn)題都適用兢仰,但在實(shí)數(shù)耗散值的時(shí)候會(huì)出現(xiàn)困難(具體見(jiàn)《人工智能:一種現(xiàn)代方法》習(xí)題3.11)。以下考慮兩種儲(chǔ)存限制搜索算法剂碴,RBFS和MA*把将。

? function RECRSIVE-BEST-FIRST-SEARCH(problem) returns a solution, or failure
       RBFS(problem,MAKE-NODE(INITIAL-STATE[problem]),∞)

  function RBFS(problem,node,f_limit) returns a solution, or failure and a new f_cost limit
        if GOAL-TEST[problem](state) then return node
        successors <--- EXPAND(node,problem)
        if successors is empty then return failure,∞
        for each s in successors do
           f[s] <--- max(g(s)+f(s),f[node])
        repeat
           best <--- the lowest f-value node in successors
           if f[best] > f_limit then return failure, f[best]
           alternative <--- the second lowest f-value among successors
           result, f[best] <--- RBFS(problem,best,min(f_limit,alternative))
           if result ≠failure then return result

? ? RBFS的特點(diǎn)可以說(shuō)是“一步一回頭”忆矛,它會(huì)通過(guò)“alternative <--- the second lowest f-value among successors”來(lái)記錄與當(dāng)前節(jié)點(diǎn)相平行層次的次優(yōu)節(jié)點(diǎn)值察蹲,當(dāng)向下搜索,當(dāng)前最優(yōu)點(diǎn)的后繼的評(píng)價(jià)函數(shù)值大于次優(yōu)解時(shí)催训,放棄當(dāng)前最優(yōu)解洽议,轉(zhuǎn)而向次優(yōu)解。但上述代碼有一點(diǎn)問(wèn)題漫拭,應(yīng)該在最后“if result ≠failure then return result”之后加上“best <--- alternative, remove the lowest f-value node in successors”亚兄。將舍棄的最優(yōu)解從successors中刪除,repeat才有意義嫂侍,否則repeat會(huì)重復(fù)循環(huán)而失去了篩選最優(yōu)解的意義儿捧。

? ? IDA*和RBFS的優(yōu)點(diǎn)是空間復(fù)雜度底荚坞,缺點(diǎn)是……太低了……IDA*只保留一個(gè)數(shù)字:當(dāng)前的f耗散值。RBFS保留的多一些菲盾。為了充分利用內(nèi)存颓影,由此改進(jìn)出了兩個(gè)算法,MA*(儲(chǔ)存限制A*)和SMA*(簡(jiǎn)化MA*)懒鉴。SMA*和A*一樣會(huì)擴(kuò)展最佳節(jié)點(diǎn)诡挂,直至內(nèi)存放滿為止,但當(dāng)內(nèi)存放滿之后临谱,它會(huì)像RBFS一樣遺忘一個(gè)最差的節(jié)點(diǎn)璃俗,并將它備份到父節(jié)點(diǎn)。當(dāng)其他所有路徑比被遺忘的節(jié)點(diǎn)都差的時(shí)候悉默,SMA*才會(huì)利用那個(gè)節(jié)點(diǎn)重新生成子樹(shù)城豁。具體算法略(原書(shū)中也省略了,比較復(fù)雜抄课,原文是“完整的算法在這里浮現(xiàn)太復(fù)雜了唱星!”)。

2.啟發(fā)函數(shù)

? ? 如何設(shè)計(jì)一個(gè)啟發(fā)函數(shù)跟磨?

? ? 首先設(shè)計(jì)一個(gè)松弛問(wèn)題间聊,即降低了限制的問(wèn)題。然后設(shè)計(jì)該松弛問(wèn)題的最優(yōu)解抵拘。該最優(yōu)解的耗散值哎榴,是一個(gè)可采納的啟發(fā)函數(shù)。當(dāng)設(shè)計(jì)了多個(gè)啟發(fā)函數(shù)時(shí)僵蛛,可以采用如下公式:

? ? h(n) = max{h1(n),h2(n),...,hm(n)}

? ? 可采納的啟發(fā)式也可以通過(guò)給定問(wèn)題的子問(wèn)題的最優(yōu)解的耗散得到尚蝌。模式數(shù)據(jù)庫(kù)就是儲(chǔ)存每個(gè)可能的子問(wèn)題的實(shí)例的精確耗散。這樣墩瞳,每個(gè)搜索的開(kāi)銷就分?jǐn)偟搅嗣總€(gè)子問(wèn)題上驼壶。這里也可以采取上述最大值原則。

? ? 總結(jié):設(shè)計(jì)啟發(fā)函數(shù)方法有松弛問(wèn)題法子問(wèn)題法(不限于這兩種)喉酌,綜合啟發(fā)函數(shù)的方法有最大值法平均數(shù)法(不限于這兩種)热凹。

3.超越經(jīng)典搜索算法

3.1 局部搜索和最優(yōu)化問(wèn)題

? ? 在搜索問(wèn)題中,如果到目標(biāo)的路徑無(wú)關(guān)緊要泪电,那么將引出不關(guān)心路徑的算法般妙。局部搜索算法從單獨(dú)的一個(gè)當(dāng)前狀態(tài)(而不是多條路徑)出發(fā),通常只移動(dòng)到與之相鄰的狀態(tài)相速。典型情況下碟渺,搜索的路徑是不保留的,雖然局部搜索算法不是最優(yōu)化的突诬,但是它有兩個(gè)關(guān)鍵的優(yōu)點(diǎn):(1)只用很少的內(nèi)存苫拍,通常是一個(gè)常數(shù)芜繁。它們經(jīng)常能夠在不適合或者不能用系統(tǒng)化算法的很大的或者無(wú)限的狀態(tài)空間中找到合理的解。除了找到目標(biāo)绒极,局部搜索算法對(duì)于解決純粹的最優(yōu)化問(wèn)題很有用骏令,其目標(biāo)是根據(jù)一個(gè)目標(biāo)函數(shù)找到最佳的狀態(tài)。

? 3.1.1爬山法搜索

function HILL-CLIMBING(problem) returns a state that is local maximum
  inputs:problem, a problem
  local variables:current, a node
                  neighbor,a node

 current <--- MAKE-NODE(INITIAL-STATE[problem])
 loop do
   neighbor <--- a higest-valued successor of current
   if VALUE[neighbor] =< VALUE(current) then return STATE[current]
   current <--- neighbor

? 爬山搜索算法垄提,節(jié)點(diǎn)的后繼中榔袋,如果存在目標(biāo)函數(shù)的值大于當(dāng)前節(jié)點(diǎn)的,移動(dòng)到該后繼節(jié)點(diǎn)铡俐,如此循環(huán)凰兑。最終會(huì)返回一個(gè)局部最大值。該搜索算法的最大缺點(diǎn)是:局部最大值不一定是全局最大值审丘。

3.1.2模擬退火算法

function SIMULATED-ANNEALING(problem,schedule) returns a solution state
  inputs:problem, a problem
         schedule, a mapping from time to "temperature"
  local variables:current, a node
                  next, a node
                  T, a "temperature" controlling the probability of downward steps
  
  current <--- MAKE-NODE(INITISL-STATE[problem])
  for t <--- 1 to ∞ do
    T <--- schedule[t]
    if T = 0 then return current
    next <--- a random selected successor of current
    ΔE  <--- VALUE[next] - VALUE[current]
    if ΔE > 0 then current <--- next
    else current <--- next only with probability e^(ΔE/T)

? ?模擬退火算法和爬山搜索算法很像吏够,不同之處在于(1)模擬退火算法的后繼是隨機(jī)選取的,而爬山算法是選擇目標(biāo)函數(shù)最大且大于當(dāng)前目標(biāo)節(jié)點(diǎn)值的备恤。(2)模擬退火算法最終的返回的時(shí)刻由函數(shù)schedule[t]來(lái)決定稿饰,而不是由后繼達(dá)到某種狀態(tài)來(lái)決定的。(3)當(dāng)后繼的目標(biāo)函數(shù)值大于當(dāng)前節(jié)點(diǎn)的目標(biāo)函數(shù)值時(shí)露泊,兩者都會(huì)將節(jié)點(diǎn)移動(dòng)到后繼,但當(dāng)后繼的值小于當(dāng)前節(jié)點(diǎn)時(shí)旅择,模擬退火算法按照一定的概率(e^(ΔE/T))來(lái)確定是否將節(jié)點(diǎn)移動(dòng)到后繼節(jié)點(diǎn)惭笑。

3.1.3局部剪枝搜索

? ?局部剪枝搜索記錄k個(gè)狀態(tài),而不是一個(gè)狀態(tài)生真。局部剪枝搜索由k個(gè)隨機(jī)的生成的狀態(tài)開(kāi)始沉噩,每一個(gè)步都生成k個(gè)狀態(tài)的所有后繼,如果其中有一個(gè)是目標(biāo)狀態(tài)柱蟀,那么搜索就停止川蒙,否則從所有生成的后繼中選擇k個(gè)最佳的后繼,如此重復(fù)长已。

? ?注意:它和爬山算法很類似的一點(diǎn)就是畜眨,很容易將某一個(gè)一步較差的節(jié)點(diǎn)剪枝,即使這個(gè)節(jié)點(diǎn)的后繼表現(xiàn)很好术瓮。如果一個(gè)狀態(tài)的后繼很好康聂,而其他k-1個(gè)狀態(tài)的后繼都不好,那么所有的機(jī)會(huì)就都集中到了這個(gè)節(jié)點(diǎn)后面胞四,那么搜索就變得單一沒(méi)有多樣性恬汁。這和重新開(kāi)始k次隨機(jī)搜索是不同的,局部剪枝搜索中信息在這k個(gè)并的搜索之間傳遞辜伟。這個(gè)算法的一個(gè)改進(jìn)是隨機(jī)剪枝搜索氓侧。

3.1.4遺傳算法

function GENETIC-ALGORITHM( population, FITNESS-FN) returns an individual
  inputs: population, a set of individuals
          FITNESS-FN, a function that measures the fitness of an individual

  repeat
    new_population <--- empty set
    for a <--- 1 to SIZE(popuitition) do
      x RANDOM-SELECTION(populatio, FITNIESS-FN)
      y RANDOM-SELECTION(popuLtion, FITNEss-FN)
      child <--- REPRODUCE(x, y)
      if (small random probability) then child <--- MUTATE( child)
      add child to new_population
    population <--- new_population
  until some individual is fit enough, or enough time has elapsed
  return the best individual in population, according to FITNESS-FN
-------------------------------------------------------------------------------------
function REPRODUCE(x, y) returns an individual
  inputs: x,y, parent individuals

  n <--- LENCTII(x)
  c <--- random number from 1 to n
  return APPEND(SUBSTRING(x, 1, c),SUBSTRING(y, c + 1, n))

3.2連續(xù)空間的局部搜索

(1)微分方程

(2)離散化

3.3非確定動(dòng)作搜索

? ?對(duì)非確定動(dòng)作脊另,通過(guò)構(gòu)造與-或樹(shù)來(lái)描述。以一個(gè)自動(dòng)除塵器對(duì)含有多個(gè)房間的屋子進(jìn)行打掃為例约巷。該屋子中所有房間之間都是相鄰的尝蠕,以九宮格排布,除塵器在房屋之間可以相互自由移動(dòng)载庭。除塵器可以以LEFT看彼、RIGHT、UP囚聚、DOWN來(lái)行動(dòng)靖榕。它可以執(zhí)行SUCK來(lái)除塵。在某個(gè)房間里執(zhí)行SUCK時(shí)顽铸,如果房間里有灰塵茁计,SUCK動(dòng)作將清除所有灰塵,偶爾還有可能將相鄰放假的灰塵一并清除谓松;如果房間里沒(méi)有灰塵星压,那么它有時(shí)候會(huì)在房間里釋放一些灰塵。

? ?我們使用與-或樹(shù)來(lái)描述整個(gè)可能的清理過(guò)程鬼譬。

? ?在房間里執(zhí)行動(dòng)作時(shí)娜膘,只是選擇一個(gè)動(dòng)作,動(dòng)作之間是互斥的优质,我們將搜索時(shí)只用考慮一個(gè)后繼的節(jié)點(diǎn)成為或節(jié)點(diǎn)竣贪;當(dāng)執(zhí)行一個(gè)動(dòng)作時(shí),可能會(huì)有兩種情況巩螃,我們?cè)谒阉鲿r(shí)必須同時(shí)考慮兩種情況演怎,我們將這種節(jié)點(diǎn)稱為與節(jié)點(diǎn)。具體參見(jiàn)《artificial intelligence a modern approach V3》page135避乏。與節(jié)點(diǎn)域或節(jié)點(diǎn)組成搜索樹(shù)爷耀,稱之為與-或樹(shù)。

? ?與-或樹(shù)的一個(gè)搜索算法如下

function AND-OR-GRAM-SEARCH(problem) returns a conditional plan, or failure
      OR-SEARCH(problem.INITIAL-STATE, problem,[ ])
function OR-SEARCH(state, problem, path) returns a conditional plan., or failure 
      if problem.GOAL-TEST(state) then return the empty plan
      if state is on path then return failure
      for each action in problem.ACTIONS(state) do
          plan <--- AND-SEARCH(RESULTS(state, action), problem, [state | path])
          if plan ≠ failure then return [action | plan]
      return failure
function AND-SEARCH(states, problem, path) returns a conditional plan, or failure
      for each s_i in states do
           plan_i <--- OR-SEARCH(s_i, problem, path)
           if plan_i = failure then return failure
      return [if s_1 then plan_1, else if s_2 then plan_2, else ... if s_n-1 then plan_n-1, else plan_n]

3.4部分觀測(cè)

? ? 解決部分觀測(cè)的關(guān)鍵概念在于置信狀態(tài)拍皮,它是在給出動(dòng)作序列和到目前為止的感知情況下歹叮,表征智能體對(duì)其所處物理狀態(tài)的信度。置信狀態(tài)通俗的說(shuō)春缕,就是智能體所有可能的物理的狀態(tài)的集合盗胀。

3.4.1無(wú)觀測(cè)的搜索

? ? 和常識(shí)相反,無(wú)觀測(cè)搜索大多數(shù)情況下是可解的锄贼,而且具有重要的實(shí)際意義票灰。首先是不依賴傳感器,當(dāng)傳感器發(fā)生故障的時(shí)候,這是相當(dāng)重要的屑迂。第二是傳感器成本太高或者無(wú)法使用傳感器的情況浸策。

? ? 為了解決無(wú)觀測(cè)問(wèn)題,我們?cè)谥眯艩顟B(tài)空間中搜索惹盼,而不是在物理狀態(tài)空間中搜索庸汗。需要注意的是,在置信狀態(tài)空間中手报,是完全可觀測(cè)的蚯舱,因?yàn)橹悄荏w知道它處于哪一個(gè)置信狀態(tài)。而且結(jié)構(gòu)也只是一個(gè)動(dòng)作序列掩蛤,因?yàn)闆](méi)有感知枉昏,所以沒(méi)有和前面使用與-非樹(shù)時(shí)一樣的通過(guò)輸入改變動(dòng)作的部分了。

? ? 假定潛在的物理問(wèn)題P可以通過(guò)以下定義:ACTIONp,RESULTp,GOAL-TESTp,STEP-COSTp揍鸟。那么我們可以通過(guò)按照如下所述來(lái)定義相應(yīng)的無(wú)感知問(wèn)題:

  • 置信狀態(tài)Belief States ? 整個(gè)置信空間包含所有可能物理狀態(tài)的集合兄裂,如果問(wèn)題P含有N個(gè)狀態(tài),那么置信空間將包含2exp(N)(由排列組合公式可以得出)個(gè)狀態(tài)阳藻。
  • 初始狀態(tài)Initial State ? 典型情況是問(wèn)題P所有狀態(tài)的集合晰奖。
  • 動(dòng)作Actions ? ? ? 首先,規(guī)定對(duì)環(huán)境無(wú)影響的動(dòng)作是非法的腥泥,那么一個(gè)置信狀態(tài)的動(dòng)作匾南,是置信狀態(tài)中所有狀態(tài)的合法動(dòng)作的和。
  • 轉(zhuǎn)移模型Transition Model ?
    對(duì)確定性動(dòng)作:b' = RESULT(b,a) = {s':s'= RESULTp(s,a) and s∈b}
    其中b'是轉(zhuǎn)移之后的置信狀態(tài)道川,b為轉(zhuǎn)移之前的置信狀態(tài)午衰,a為轉(zhuǎn)移發(fā)生的動(dòng)作。
    生成新的置信空間的過(guò)程稱為預(yù)測(cè):b' = PREDICTp(b,a)
    對(duì)非確定性動(dòng)作:
  • 目標(biāo)測(cè)試Goal-Test ? 一個(gè)置信狀態(tài)中所有物理狀態(tài)都符合GOAL-TESTp時(shí)冒萄,即達(dá)到目標(biāo)。
  • 路徑耗散Path Cost ? 如果相同的動(dòng)作在不同的狀態(tài)下有不同的耗散橙数,那么置信狀態(tài)中執(zhí)行一個(gè)動(dòng)作的耗散將是許多值中的一個(gè)尊流。目前我們假定一個(gè)動(dòng)作在所有狀態(tài)下的耗散都是一樣的。
  • ? ? 通過(guò)置信狀態(tài)來(lái)搜索無(wú)疑仍舊是一個(gè)笨辦法……稍稍的改進(jìn)搜索是灯帮,首先假定一個(gè)狀態(tài)為初始狀態(tài)崖技,然后搜索出一個(gè)可行方案,將方案應(yīng)用到另一個(gè)狀態(tài)為初始狀態(tài)的環(huán)境下钟哥,如果方案能夠成立迎献,則應(yīng)用于第三個(gè)狀態(tài)為初始狀態(tài)的環(huán)境下,否則返回原點(diǎn)重新尋找一個(gè)方案腻贰,直至找到一個(gè)能夠滿足所有初始狀態(tài)的方案吁恍。

    3.4.2有觀測(cè)的搜索

    ? ?在有觀測(cè)的搜索當(dāng)中,ACTIONS、STEP-COST和GOAL-TEST同無(wú)觀測(cè)搜索一致冀瓦,轉(zhuǎn)移模型Transition Model則稍顯復(fù)雜伴奥。我們將在特定動(dòng)作下由一個(gè)置信狀態(tài)到下一個(gè)置信狀態(tài)的轉(zhuǎn)移劃分為三個(gè)階段。

  • 預(yù)測(cè) ? ?同無(wú)觀測(cè)的搜索一樣b'= PREDICT(b,a)
  • 感知預(yù)測(cè) ? ?POSSIBLE-PERCEPTS(b') = {o : o = PERCEPT(s) and s∈b'}
  • 更新 ? ?將感知預(yù)測(cè)和實(shí)際感知結(jié)合起來(lái)翼闽,新的置信狀態(tài)為能夠預(yù)測(cè)到的并且和實(shí)際感知相一致的置信狀態(tài)拾徙。
    b'' = UPDATE(b',o) = {s : o=PERCEPT(s) and?s∈b'}
  • ? ?將這三步合起來(lái)就是:

    3.5在線搜索智能體和未知環(huán)境

    ? ? 到目前為止,我們一直在使用離線搜索算法感局,它在涉足真實(shí)世界之前先計(jì)算出解決方案尼啡,之后執(zhí)行。與之相反询微,在線搜索智能體計(jì)算與行動(dòng)交錯(cuò)進(jìn)行崖瞭。首先它采取一個(gè)行動(dòng),然后再觀測(cè)拓提,通過(guò)觀測(cè)值再計(jì)算出下一步行動(dòng)動(dòng)作读恃。在線搜索對(duì)未知環(huán)境問(wèn)題至關(guān)重要,同時(shí)對(duì)常規(guī)問(wèn)題也很重要代态,它可以使智能體的計(jì)算集中于已經(jīng)發(fā)生的事情上寺惫,而不是可能發(fā)生但最終沒(méi)有發(fā)生的事情上。當(dāng)環(huán)境未知時(shí)蹦疑,智能體面臨探索問(wèn)題西雀。

    ? 3.5.1在線搜索問(wèn)題

    ? ? 在線搜索問(wèn)題是必須通過(guò)執(zhí)行動(dòng)作來(lái)完成的,而不能僅僅通過(guò)計(jì)算得到答案歉摧。我們假定一個(gè)確定并且完全可觀測(cè)的環(huán)境艇肴。但是智能體只能知道如下信息:

  • ACTIONS(s),它返回的是在狀態(tài)s的情況下叁温,可以執(zhí)行的行動(dòng)列表再悼。
  • step-cost function c(s,a,s'),注意,該函數(shù)只能在智能體知道s'這一結(jié)果的前提下使用膝但。
  • GOAL-TEST(s)
  • 注意:智能體不能決定RESULT(s冲九,a),除非它處于s狀態(tài)且執(zhí)行了a動(dòng)作跟束,它才能知道結(jié)果莺奸。

    ? ? 最后,智能體肯那個(gè)擁有一個(gè)啟發(fā)函數(shù)h(s)冀宴,用于評(píng)估從當(dāng)前狀態(tài)到目標(biāo)狀態(tài)的距離灭贷。我們把在線搜索的路徑耗散和如果已知環(huán)境尋找到路徑的耗散的比值稱為競(jìng)爭(zhēng)比。當(dāng)搜索路徑中有“死胡同”時(shí)略贮,競(jìng)爭(zhēng)比為無(wú)窮大甚疟。為簡(jiǎn)單起見(jiàn)仗岖,我們假設(shè)搜索空間是安全搜索的,也就是說(shuō)沒(méi)有“死胡同”古拴。

    ? 3.5.2在線搜索智能體

    function ONLINE-DFS-AGENT(s?) returns an action
      inputs: s', a percept that identifies the current state
      persistent: result , a table indexed by state and action, initially empty
                  untried, a table that lists, for each state, the actions not yet tried
                  unbacktracked, a table that lists, for each state, the backtracks not yet tried
                  s, a, the previous state and action, initially null
      if GOAL-TEST(s'?) then return stop
      if s'? is a new state (not in untried) then untried[s?]←ACTIONS(s?)
      if s is not null then
         result [s, a]←s?'
         add s to the front of unbacktracked[s'?]
      if untried[s?'] is empty then
         if unbacktracked[s?] is empty then return stop
         else a←an action b such that result [s?, b] = POP(unbacktracked[s?])
      else a←POP(untried[s?])
      s ←s?'
      return a
    

    ? ? 以上為使用深度優(yōu)先搜索策略的在線搜索算法箩帚。

    ? 3.5.3在線局部搜索

    ? ?深度優(yōu)先策略能夠應(yīng)用于在線搜索,是因?yàn)槠湔归_(kāi)節(jié)點(diǎn)策略的局部性黄痪,不必回溯去展開(kāi)所有的狀態(tài)的后繼節(jié)點(diǎn)以便搜索紧帕。與此類似,爬山算法也有著良好的局部性桅打。事實(shí)上是嗜,由于爬山算法保存了當(dāng)前狀態(tài)值,它已經(jīng)是一個(gè)在線搜索算法了挺尾。但最簡(jiǎn)單的爬山算法并不適用于在線局部搜索鹅搪。首先它會(huì)是智能體處于啟發(fā)函數(shù)值最大或最小的地方,但不會(huì)到新的地方去遭铺,這樣無(wú)法到達(dá)目的地丽柿。其次它隨機(jī)開(kāi)始的特性不適用于在線搜索,因?yàn)橹悄荏w不能讓自己突然移動(dòng)到任何位置魂挂。一下為一個(gè)改進(jìn)后的使用爬山策略的在線局部搜索算法甫题。

    3.5.3學(xué)習(xí)

    ? ?智能體起初對(duì)環(huán)境一無(wú)所知,但隨著其對(duì)環(huán)境的探索涂召,它會(huì)逐漸生成對(duì)環(huán)境的地圖坠非,這就是學(xué)習(xí)。在采用啟發(fā)式的情況下果正,其記錄每個(gè)位置的耗散炎码,也是一種學(xué)習(xí)。

    4.總結(jié)

    ? 本章主要講解了以下內(nèi)容秋泳。

  • 局部搜索策略:爬山潦闲、模擬退火、局部剪枝迫皱、遺傳
  • 部分觀測(cè)情況下的搜索策略

  • 最后編輯于
    ?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
    • 序言:七十年代末矫钓,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子舍杜,更是在濱河造成了極大的恐慌,老刑警劉巖赵辕,帶你破解...
      沈念sama閱讀 219,188評(píng)論 6 508
    • 序言:濱河連續(xù)發(fā)生了三起死亡事件既绩,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡还惠,警方通過(guò)查閱死者的電腦和手機(jī)饲握,發(fā)現(xiàn)死者居然都...
      沈念sama閱讀 93,464評(píng)論 3 395
    • 文/潘曉璐 我一進(jìn)店門(mén),熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人救欧,你說(shuō)我怎么就攤上這事衰粹。” “怎么了笆怠?”我有些...
      開(kāi)封第一講書(shū)人閱讀 165,562評(píng)論 0 356
    • 文/不壞的土叔 我叫張陵铝耻,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我蹬刷,道長(zhǎng)瓢捉,這世上最難降的妖魔是什么? 我笑而不...
      開(kāi)封第一講書(shū)人閱讀 58,893評(píng)論 1 295
    • 正文 為了忘掉前任办成,我火速辦了婚禮泡态,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘迂卢。我一直安慰自己某弦,他們只是感情好,可當(dāng)我...
      茶點(diǎn)故事閱讀 67,917評(píng)論 6 392
    • 文/花漫 我一把揭開(kāi)白布而克。 她就那樣靜靜地躺著靶壮,像睡著了一般。 火紅的嫁衣襯著肌膚如雪拍摇。 梳的紋絲不亂的頭發(fā)上亮钦,一...
      開(kāi)封第一講書(shū)人閱讀 51,708評(píng)論 1 305
    • 那天,我揣著相機(jī)與錄音充活,去河邊找鬼蜂莉。 笑死,一個(gè)胖子當(dāng)著我的面吹牛混卵,可吹牛的內(nèi)容都是我干的映穗。 我是一名探鬼主播,決...
      沈念sama閱讀 40,430評(píng)論 3 420
    • 文/蒼蘭香墨 我猛地睜開(kāi)眼幕随,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼蚁滋!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起赘淮,我...
      開(kāi)封第一講書(shū)人閱讀 39,342評(píng)論 0 276
    • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤辕录,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后梢卸,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體走诞,經(jīng)...
      沈念sama閱讀 45,801評(píng)論 1 317
    • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
      茶點(diǎn)故事閱讀 37,976評(píng)論 3 337
    • 正文 我和宋清朗相戀三年蛤高,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了蚣旱。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片碑幅。...
      茶點(diǎn)故事閱讀 40,115評(píng)論 1 351
    • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖塞绿,靈堂內(nèi)的尸體忽然破棺而出沟涨,到底是詐尸還是另有隱情,我是刑警寧澤异吻,帶...
      沈念sama閱讀 35,804評(píng)論 5 346
    • 正文 年R本政府宣布裹赴,位于F島的核電站,受9級(jí)特大地震影響涧黄,放射性物質(zhì)發(fā)生泄漏篮昧。R本人自食惡果不足惜,卻給世界環(huán)境...
      茶點(diǎn)故事閱讀 41,458評(píng)論 3 331
    • 文/蒙蒙 一笋妥、第九天 我趴在偏房一處隱蔽的房頂上張望懊昨。 院中可真熱鬧,春花似錦春宣、人聲如沸酵颁。這莊子的主人今日做“春日...
      開(kāi)封第一講書(shū)人閱讀 32,008評(píng)論 0 22
    • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)躏惋。三九已至,卻和暖如春嚷辅,著一層夾襖步出監(jiān)牢的瞬間簿姨,已是汗流浹背。 一陣腳步聲響...
      開(kāi)封第一講書(shū)人閱讀 33,135評(píng)論 1 272
    • 我被黑心中介騙來(lái)泰國(guó)打工簸搞, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留扁位,地道東北人。 一個(gè)月前我還...
      沈念sama閱讀 48,365評(píng)論 3 373
    • 正文 我出身青樓趁俊,卻偏偏與公主長(zhǎng)得像域仇,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子寺擂,可洞房花燭夜當(dāng)晚...
      茶點(diǎn)故事閱讀 45,055評(píng)論 2 355

    推薦閱讀更多精彩內(nèi)容

    • 本章將描述一種基于目標(biāo)的智能體暇务,稱為問(wèn)題求解智能體。將會(huì)提出幾個(gè)通用的搜索算法怔软,但這些算法是無(wú)信息的垦细,除了問(wèn)...
      張文峰閱讀 1,752評(píng)論 1 2
    • 前面的文章主要從理論的角度介紹了自然語(yǔ)言人機(jī)對(duì)話系統(tǒng)所可能涉及到的多個(gè)領(lǐng)域的經(jīng)典模型和基礎(chǔ)知識(shí)。這篇文章挡逼,甚至之后...
      我偏笑_NSNirvana閱讀 13,914評(píng)論 2 64
    • 1 序 2016年6月25日夜蝠检,帝都,天下著大雨挚瘟,拖著行李箱和同學(xué)在校門(mén)口照了最后一張合照叹谁,搬離寢室打車去了提前租...
      RichardJieChen閱讀 5,105評(píng)論 0 12
    • 有首歌寫(xiě)到:風(fēng)雨之后必有彩虹。它告訴我們乘盖,挫折過(guò)后必是光明焰檩,必是順暢。其實(shí)不然也订框。 人有夢(mèng)想固然是好析苫。因?yàn)橛?..
      城南花已開(kāi)__閱讀 367評(píng)論 0 1
    • 江河早晨乘坐的電梯卡在7樓和八樓之間的時(shí)候,仍是漫不經(jīng)心的穿扳。 她還在琢磨前幾天做的那個(gè)夢(mèng)衩侥。那是一棟燃著熊熊大火的房...
      格子墨閱讀 731評(píng)論 1 5