日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

基础算法 —— 调度问题 —— 多机并行调度问题

發(fā)布時(shí)間:2025/3/17 编程问答 45 豆豆
生活随笔 收集整理的這篇文章主要介紹了 基础算法 —— 调度问题 —— 多机并行调度问题 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

【概述】

多機(jī)調(diào)度問(wèn)題可表達(dá)為:n 個(gè)工件由 k 個(gè)可并行工作的機(jī)器加工,完成任務(wù) i 需要的時(shí)間為 ti,調(diào)度目標(biāo)是確定這 n 個(gè)工件完成的最佳加工順序,使得完成全部任務(wù)的時(shí)間最早,其可利用 回溯法 來(lái)求解

【問(wèn)題分析】

問(wèn)題實(shí)質(zhì)是要從 n 個(gè)作業(yè)中找出有最小完成時(shí)間和的作業(yè)調(diào)度,因此批處理作業(yè)調(diào)度問(wèn)題的解空間是一棵排列樹(shù)

開(kāi)始時(shí),所給的 t[n] 為 n 個(gè)作業(yè)的完成時(shí)間,則相應(yīng)的排列樹(shù)由 t[1:n] 的所有排列構(gòu)成

用數(shù)組 len[n] 存儲(chǔ)一組空間解,getTime() 計(jì)算一個(gè)完整調(diào)度的完成時(shí)間,res 記錄當(dāng)前最佳調(diào)度的完成時(shí)間

在進(jìn)行搜索時(shí),從第一個(gè)任務(wù)開(kāi)始,對(duì)樹(shù)的深度進(jìn)行遞歸:

  • 當(dāng) deep=n 時(shí),搜索至葉結(jié)點(diǎn),得到一個(gè)新的作業(yè)調(diào)度方案,此時(shí)更新最優(yōu)值與相應(yīng)的最佳調(diào)度
  • 當(dāng) deep<n 時(shí),若當(dāng)前擴(kuò)展結(jié)點(diǎn)位于排列樹(shù)的第 n-1 層,說(shuō)明需要對(duì)下一個(gè)要安排的作業(yè)進(jìn)行搜索,并向第 n-2 層回溯,從而對(duì)相應(yīng)子樹(shù)進(jìn)行搜索

【實(shí)現(xiàn)】

int n,k; int t[N]; int len[N]; int res=INF; int getTime() {int temp=0;for(int i=0; i<k; i++)temp=max(len[i],temp);return temp; } void dfs(int deep) {if(deep==n) {int temp=getTime();res=min(res,temp);return;}for(int i=0; i<k; i++) {len[i]+=t[deep];if(len[i]<res)dfs(deep+1);len[i]-=t[deep];} } int main() {scanf("%d%d",&n,&k);for(int i=0; i<n; i++)scanf("%d",&t[i]);dfs(0);printf("%d\n",res);return 0; }

?

總結(jié)

以上是生活随笔為你收集整理的基础算法 —— 调度问题 —— 多机并行调度问题的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。