計算機算法設(shè)計與分析(第6版)-課件 ch0503批處理作業(yè)調(diào)度_第1頁
計算機算法設(shè)計與分析(第6版)-課件 ch0503批處理作業(yè)調(diào)度_第2頁
計算機算法設(shè)計與分析(第6版)-課件 ch0503批處理作業(yè)調(diào)度_第3頁
計算機算法設(shè)計與分析(第6版)-課件 ch0503批處理作業(yè)調(diào)度_第4頁
計算機算法設(shè)計與分析(第6版)-課件 ch0503批處理作業(yè)調(diào)度_第5頁
已閱讀5頁,還剩15頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)

文檔簡介

批處理作業(yè)調(diào)度LET'SEMBARKONTODAY'SSHARINGJOURNEYTOGETHER01問題描述Let'sembarkontoday'sjourneyofsharingandcommunicationtogether批處理作業(yè)調(diào)度場景在計算機系統(tǒng)中,每個作業(yè)需要先在CPU完成計算,再由打印機輸出。這正是批處理作業(yè)調(diào)度的典型場景,它要求作業(yè)先在機器1(CPU)處理,再在機器2(打印機)處理,目標(biāo)是使所有作業(yè)的完成時間和最小。計算機系統(tǒng)實例關(guān)鍵概念與符號定義作業(yè)與機器完成時間和n個作業(yè),分別在兩臺機器上處理。機器1和機器2分別對應(yīng)作業(yè)的兩個階段,每個作業(yè)在機器1處理時間用t_1i表示,在機器2處理時間用t_2i表示。完成時間和是指所有作業(yè)在機器2上完成處理的時間總和,記為ΣF_2i。我們的目標(biāo)是找到一種作業(yè)調(diào)度方案,使得這個完成時間和達(dá)到最小。02實例剖析Let'sembarkontoday'sjourneyofsharingandcommunicationtogether三作業(yè)實例全景三作業(yè)實例以n=3的實例為例,列出所有6種排列的完成時間和。通過比較19、18、20、21、19、19這組數(shù)據(jù),直觀感受不同調(diào)度順序?qū)偼瓿蓵r間的影響,凸顯優(yōu)化調(diào)度的必要性。最佳調(diào)度1→3→2解讀010203最優(yōu)解分析機器1處理機器2處理在三作業(yè)實例中,1→3→2的調(diào)度方案使總完成時間最小,為18。該方案通過合理安排作業(yè)順序,使機器1和機器2的處理時間緊密銜接,減少等待時間。機器1依次處理作業(yè)1、3、2,處理時間分別為t_11、t_13、t_12。作業(yè)1完成后,機器1立即處理作業(yè)3,作業(yè)3完成后處理作業(yè)2,確保機器1高效利用。機器2在作業(yè)1完成機器1處理后立即開始處理,作業(yè)3和作業(yè)2同理。通過合理安排,機器2的等待時間被最小化,從而實現(xiàn)總完成時間的最小化。03算法框架Let'sembarkontoday'sjourneyofsharingandcommunicationtogether排列樹與回溯思想n個作業(yè)的所有排列構(gòu)成一棵排列樹,樹的每條根到葉路徑對應(yīng)一種調(diào)度方案。通過遍歷這棵樹,可以找到最優(yōu)的作業(yè)調(diào)度方案。排列樹回溯法通過選擇-遞歸-撤銷的步驟,在排列樹中搜索最優(yōu)解。當(dāng)達(dá)到葉結(jié)點時,更新最優(yōu)解;在中間結(jié)點時,通過剪枝減少搜索空間?;厮菟枷?2010403

M矩陣存儲每個作業(yè)在兩臺機器上的處理時間,是算法輸入的關(guān)鍵數(shù)據(jù),為后續(xù)計算提供基礎(chǔ)。M矩陣x數(shù)組記錄當(dāng)前的作業(yè)調(diào)度方案,通過不斷調(diào)整x數(shù)組的順序,探索不同的調(diào)度可能性。x數(shù)組f2數(shù)組記錄機器2在每個作業(yè)完成時的累計時間,用于計算總完成時間和,是評估調(diào)度方案優(yōu)劣的重要依據(jù)。f2數(shù)組f1記錄機器1的累計時間,f記錄當(dāng)前總完成時間,bestf記錄當(dāng)前最優(yōu)的總完成時間,bestx記錄最優(yōu)調(diào)度方案。其他成員Flowshop類功能

04核心實現(xiàn)Let'sembarkontoday'sjourneyofsharingandcommunicationtogetherBacktrack遞歸流程葉結(jié)點處理當(dāng)遞歸到葉結(jié)點時,即i>n,更新當(dāng)前最優(yōu)解bestx和bestf,記錄當(dāng)前調(diào)度方案的總完成時間和。中間結(jié)點處理在中間結(jié)點,枚舉當(dāng)前作業(yè)的可能位置,計算當(dāng)前調(diào)度方案的總完成時間f,若f小于當(dāng)前最優(yōu)值bestf,則繼續(xù)遞歸搜索?;厮莶僮髟谶f歸返回時,撤銷當(dāng)前作業(yè)的調(diào)度選擇,恢復(fù)相關(guān)變量的值,以便嘗試其他調(diào)度方案。剪枝策略與復(fù)雜度復(fù)雜度分析雖然剪枝可以減少實際搜索的節(jié)點數(shù),但在最壞情況下,算法的時間復(fù)雜度仍為O(n!),因為需要遍歷所有可能的排列。當(dāng)當(dāng)前總完成時間f大于已知最優(yōu)值bestf時,剪去當(dāng)前分支,避免無效搜索,提高算法效率。剪枝策略05接口與調(diào)用Let'sembarkontoday'sjourneyofsharingandcommunicationtogetherFlow函數(shù)封裝初始化操作Flow函數(shù)初始化最優(yōu)值bestf為INT_MAX,創(chuàng)建Flowshop對象,分配x和f2數(shù)組,為算法運行做好準(zhǔn)備。調(diào)用BacktrackFlow函數(shù)調(diào)用Backtrack(1),從根結(jié)點開始遞歸搜索最優(yōu)調(diào)度方案,這是算法的核心執(zhí)行過程。返回結(jié)果搜索完成后,F(xiàn)low函數(shù)返回最優(yōu)的總完成時間bestf,為用戶提供最終的調(diào)度結(jié)果。010203內(nèi)存管理在實現(xiàn)中,需要注意new和delete[]的配對使用,避免內(nèi)存泄漏。同時,數(shù)組下標(biāo)從1開始,與C++習(xí)慣一致,確保代碼的正確性和穩(wěn)定性。內(nèi)存管理與異常點06小結(jié)Let'sembarkontoday'sjourneyofsharingandcommunicationtogether回溯法搜索回溯法在排列樹上進行深度優(yōu)先搜索,通過剪枝減少搜索空間,有效找到最優(yōu)調(diào)度方案。剪枝優(yōu)化剪枝策略在實際運行中顯著提高了算法效率,減少了不必要的計算,盡管最壞復(fù)雜度仍為O(n!)。優(yōu)化意義通過算法優(yōu)化,可以顯著降低總完成時間,如實例中的18與21的差距,體現(xiàn)了算法在實際應(yīng)用中的價值。算法價值回顧延伸思考方向啟發(fā)式算法探索啟發(fā)式或近似算法,突破n!的復(fù)雜度瓶頸,適用于大

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論