人工智慧第十一章 現實世界的規劃與行動

2021-08-21 06:30:17 字數 1303 閱讀 8182

經典規劃能做:

1)做什麼動作

2)按什麼順序做

不能做:

1)動作何時發生

2)持續多久

3)考慮資源約束

不同討論時間,故而不能解決排程問題

不能討論資源約束。

那麼如何解決呢?

先規劃,後排程。

把整個問題分解為乙個規劃階段和乙個接下來的排程階段。

在規劃階段選動作,考慮次序約束,滿足問題目標。

在排程階段把時間資訊加入到規劃中以滿足資源和期限約束。

每個動作有乙個持續時間,一組動作所要求的資源約束

解必須規定每個動作開始時間,必須滿足時間次序約束+資源約束

假設代價函式是完工時間

1.2.1 忽略資源約束的時間排程問題:關鍵路徑方法

穿過偏序規劃圖的一條路徑從start開始,以finish結束。

關鍵路徑是時間跨度最長的路徑,延誤關鍵路徑上任一動作開始時間就會延長規劃時間。

不在關鍵路徑上的每個動作有個時間視窗,給出該動作最早可能開始時間es和最晚可能開始時間ls。

——所有動作的es和ls一起構成問題的排程。

1.2.2 有資源約束的時間排程問題

當引入資源約束的時候,同乙個資源就不能重疊使用了。

層次化分解——為什麼需要在更高抽象層次上規劃?

答案:將乙個任務分解為大量的單個行動;對於大規模問題,這完全是不切實際的

原語動作(pa,primitive action):不能再細化,具有標準的前提-效果模式。

高層動作(hla,high level action):每個hla有乙個或多個可能的細化動作序列,其中每個動作可以是乙個hla或乙個pa。

當乙個hla恰好有乙個實現時,我們能夠從該實現的前提和效果中計算出這個hla的是前提和效果,然後這個hla本身就可看做是乙個原語動作。

當乙個hla有多個可能的實現時,有兩種選項:1)搜尋原語解:搜尋乙個可以工作的實現;2)搜尋抽象解:直接推理,無須搜尋實現

如何搜尋原語解?

答案:反覆在當前規劃中選乙個hla,用它的細化替換它,直到規劃達到目標。

對於乙個非層次化的、每個狀態有b個可用動作的前向狀態空間規劃器,代價為o(

bd) o(b

d)

。對於乙個htn(層次任務網路)規劃器,則複雜度要小些。

如何搜尋抽象解?

如果得到的高層規劃可證明能達到目標,那麼這個高層規劃就是抽象解。

憑仗清淮,分明到海,中有相思淚。

——蘇軾《永遇樂·長憶別時》

第十一章 類的封裝

目錄從封裝本身的意思去理解,封裝就好像是拿來乙個麻袋,把小貓,小狗,小王八,還有alex一起裝進麻袋,然後把麻袋封上口子。照這種邏輯看,封裝 隱藏 這種理解是相當片面的 在python中用雙下劃線開頭的方式將屬性隱藏起來 設定成私有的 其實這僅僅這是一種變形操作且僅僅只在類定義階段發生變形 類中所有...

第十一章 Spring的事務管理

11.1 資料庫事務基礎知識 spring 雖然提供了靈活的事務管理功能,但這些功能都是基於底層資料庫本身的事物處理機制工作的。11.1.1何為資料庫事務 資料庫事務有嚴格的定義,它必須滿足四個特性 原子性 一致性 隔離性和永續性 11.1.2 資料庫併發問題 乙個資料庫可能擁有多個訪問客戶端,這些...

第十一章 body中的標籤(五)

使用out new html5 中的新屬性。屬性值 描述 accept mime type html5 不支援。規定伺服器接收到的檔案的型別。檔案是通過檔案上傳提交的 accept charset character set 規定伺服器可處理的表單資料字符集。action url規定當提交表單時向何...