經典規劃能做:
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規定當提交表單時向何...