国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

獨立任務(wù)的最優(yōu)調(diào)度問題(動態(tài)規(guī)劃)

這篇具有很好參考價值的文章主要介紹了獨立任務(wù)的最優(yōu)調(diào)度問題(動態(tài)規(guī)劃)。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

問題描述:

用2臺處理機A和B處理n個作業(yè)。設(shè)第i個作業(yè)交給機器A處理時需要時間ai,若由機器B來處理,則需要時間bi。由于各作業(yè)的特點和機器的性能關(guān)系,很可能對于某些i,有ai>bi,而對于某些j,j≠i,有aj>bj。既不能將一個作業(yè)分開由2臺機器處理,也沒有一臺機器能同時處理2個作業(yè)。設(shè)計一個動態(tài)規(guī)劃算法,使得這2臺機器處理完這n個作業(yè)的時間最短(從任何一臺機器開工到最后一臺機器停工的總時間)。對于給定的2臺處理機A和B處理n個作業(yè),找出一個最優(yōu)調(diào)度方案,使2臺機器處理完這n個作業(yè)的時間最短。

算法講解:

?一、首先,搞懂p是干嘛的,二維數(shù)組p存儲的內(nèi)容到底是什么

1、p數(shù)組的列坐標(biāo)k記錄n個作業(yè),橫坐標(biāo)t是a機器單獨處理所需要的時間 *

2、p數(shù)組元素值來記錄加上b機器后,每次添加一個作業(yè)后,在a機器單獨處理的每個時刻上加上b后的最優(yōu)解?

3、p數(shù)組是一列一列更新的,即每次增加一個作業(yè),在不同的時間下,b機器的最優(yōu)用時 *

二、所以每次更新的值就是兩種情況:

?1、新加入的k作業(yè),當(dāng)用時t<a[k]時,說明此時a機器根本無法處理k,只能是b來處理,所以就是直接更新p[t][k]的值為p[t][k-1]+b[k]; *

2、新加入的k作業(yè),t>=a[k]時,此時a機器有直接處理k的能力,所以就要進行比較,比較的雙方就是

?(1)a不處理k,b接著在t時刻,k-1次作業(yè)后繼續(xù)處理k(也就是情況1) p[t][k]=p[t][k-1]+b[k];

?(2)a處理k,b此時的值就直接繼承:a處理k用時后的剩余時間(t-a[k]),對應(yīng)的前k-1個作業(yè)的用時 p[t][k]=p[t-a[k]][k-1]; *

三、動態(tài)更新完p數(shù)組之后,我們就得到了最后一列的值?

1、橫坐標(biāo)t結(jié)合數(shù)組內(nèi)元素值p[t][n]分別是t時間內(nèi)a機器單獨處理用時 和b機器在a機器處理的基礎(chǔ)上最優(yōu)用時 ,說白了就是橫坐標(biāo)t就是a單獨處理a的用時,p內(nèi)值就是a、b并行工作后b的最優(yōu)用時 2、分別比較每一行的兩個數(shù)值,記錄每一行的最大值,用一個變量min記錄所有最大值的最小值,就得到了最優(yōu)解

研究一個實例:(a1,a2,a3,a4,a5,a6)=(2,5,7,10,5,2);(b1,b2,b3,b4,b5,b6)=(3,8,4,11,3,4)。

(給張圖片,Excel搞的,沒畫完,只畫了前三列,不過應(yīng)該已經(jīng)足夠你理解了,豎著一列一列的畫,最重要的還是搞懂p里面記錄的到底是什么,橫坐標(biāo)t到底是什么)

獨立任務(wù)最優(yōu)調(diào)度問題,動態(tài)規(guī)劃,算法?

?代碼如下:

#include<bits/stdc++.h>
using namespace std;
#define MAXTIME 500
int p[MAXTIME][MAXTIME];

int Dynamic(int a[],int b[],int n){
    int aTime = 0;//作業(yè)僅在機器a上運行是所需要的時間
    for(int k = 1;k<=n;k++){//從1開始,到n,方便操作
        aTime += a[k];//記錄此時a機器單獨操作需要的最大時間
        for(int t = 0;t<=aTime;t++){//一列一列的更新
            if(t<a[k]){//此時時間條件不允許a單獨處理k
                p[t][k]=p[t][k-1]+b[k];//此處p元素值直接是b處理完k-1后繼續(xù)處理k
            } else{//此時時間條件允許a處理新加入的k,進行比較
                p[t][k]=p[t-a[k]][k-1]>p[t][k-1]+b[k]?p[t][k-1]+b[k]:p[t-a[k]][k-1];
            }
        }
    }
    int minTime = 999999;
    for(int t = 0;t<aTime;t++){
        int maxt = max(t,p[t][n]);//找到每個時間段對應(yīng)的兩者的最大值
        minTime = minTime>maxt?maxt:minTime;//minTime每次更新,記錄最小值
    }//說白了就是橫坐標(biāo)t就是a單獨處理a的用時,p內(nèi)值就是a、b并行工作后b的最優(yōu)用時
    //在考慮到所有作業(yè)時,比較最后一列每一行兩者的大小就能得到最優(yōu)用時
    return minTime;
}
int main(){
    int n;//n個作業(yè)
    cin >> n; //讀入作業(yè)個數(shù)
    int a[n+1];
    int b[n+1];
    for(int i=1;i<=n;i++)//讀入機器A運行時間
        cin >> a[i];
    for(int i=1;i<=n;i++)//讀入機器B運行時間
        cin >> b[i];
    int minTime = Dynamic(a,b,n);
    cout << minTime;
    return 0;
}
/*
 * 算法描述:
 * 一、首先,搞懂p是干嘛的,二維數(shù)組p存儲的內(nèi)容到底是什么
 * 1、p數(shù)組的列坐標(biāo)k記錄n個作業(yè),橫坐標(biāo)t是a機器單獨處理所需要的時間
 * 2、p數(shù)組元素值來記錄加上b機器后,每次添加一個作業(yè)后,在a機器單獨處理的每個時刻上加上b后的最優(yōu)解
 * 3、p數(shù)組是一列一列更新的,即每次增加一個作業(yè),在不同的時間下,b機器的最優(yōu)用時
 * 二、所以每次更新的值就是兩種情況:
 * 1、新加入的k作業(yè),當(dāng)用時t<a[k]時,說明此時a機器根本無法處理k,只能是b來處理,所以就是直接更新p[t][k]的值為p[t][k-1]+b[k];
 * 2、新加入的k作業(yè),t>=a[k]時,此時a機器有直接處理k的能力,所以就要進行比較,比較的雙方就是
 *   (1)a不處理k,b接著在t時刻,k-1次作業(yè)后繼續(xù)處理k(也就是情況1)  p[t][k]=p[t][k-1]+b[k];
 *   (2)a處理k,b此時的值就直接繼承:a處理k用時后的剩余時間(t-a[k]),對應(yīng)的前k-1個作業(yè)的用時 p[t][k]=p[t-a[k]][k-1];
 * 三、動態(tài)更新完p數(shù)組之后,我們就得到了最后一列的值
 * 1、橫坐標(biāo)t結(jié)合數(shù)組內(nèi)元素值p[t][n]分別是t時間內(nèi)a機器單獨處理用時 和b機器在a機器處理的基礎(chǔ)上最優(yōu)用時
 *    說白了就是橫坐標(biāo)t就是a單獨處理a的用時,p內(nèi)值就是a、b并行工作后b的最優(yōu)用時
 * 2、分別比較每一行的兩個數(shù)值,記錄每一行的最大值,用一個變量min記錄所有最大值的最小值,就得到了最優(yōu)解
*/

運行結(jié)果如下:

獨立任務(wù)最優(yōu)調(diào)度問題,動態(tài)規(guī)劃,算法?

?文章來源地址http://www.zghlxwxcb.cn/news/detail-756070.html

到了這里,關(guān)于獨立任務(wù)的最優(yōu)調(diào)度問題(動態(tài)規(guī)劃)的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • 高等工程數(shù)學(xué) —— 第五章 (2)非線性規(guī)劃的最優(yōu)條件

    高等工程數(shù)學(xué) —— 第五章 (2)非線性規(guī)劃的最優(yōu)條件

    無約束規(guī)劃問題的最優(yōu)性條件 簡單說就是先用一階必要條件求駐點,再用二階充分條件來驗證。 其實就是一階導(dǎo)數(shù)為0然后解未知量的值 這里的Hesse矩陣如下: 再簡單說說判斷矩陣是否正定的兩種方法: 求出A的所有特征值。若A的特征值均為正數(shù),則A是正定的;若A的特征值

    2024年02月03日
    瀏覽(18)
  • 【最優(yōu)化算法】基于【MATLAB】的最速下降仿真

    【最優(yōu)化算法】基于【MATLAB】的最速下降仿真

    無約束問題的求解過程一般都是通過一系列的一維搜索來實現(xiàn),搜索方向的不同,形成了不同的最優(yōu)化方法。這篇文章從最速下降法入手,來進行搜索。 最速下降法又叫梯度法,通過梯度下降法來一步步的迭代求解,得到最小化的損失函數(shù)和模型參數(shù)值。如果我們需要求解損

    2024年02月05日
    瀏覽(24)
  • Floyd算法實現(xiàn)實際問題——18個城市間最優(yōu)路線規(guī)劃

    Floyd算法實現(xiàn)實際問題——18個城市間最優(yōu)路線規(guī)劃

    離散數(shù)學(xué)大作業(yè) ? —— 利用Floyd算法計算兩城市間最優(yōu)路徑及距離 ? 代碼在最下面 一. 提出問題 在交通網(wǎng)絡(luò)非常發(fā)達、交通工具和交通方式不斷更新的今天,人們在出差、旅游或做其他出行時,不僅關(guān)心節(jié)省交通費用,而且對里程和所需要的時間等問題也感興趣。對于這樣

    2024年02月10日
    瀏覽(15)
  • 11.動態(tài)規(guī)劃:樹形DP問題、樹上最大獨立集、樹上最小支配集、換根DP、樹上倍增(LCA)【靈神基礎(chǔ)精講】

    11.動態(tài)規(guī)劃:樹形DP問題、樹上最大獨立集、樹上最小支配集、換根DP、樹上倍增(LCA)【靈神基礎(chǔ)精講】

    回溯和樹形DP的區(qū)別(什么時候需要return結(jié)果?):對于回溯,通常是在「遞」的過程中增量地構(gòu)建答案,并在失敗時能夠回退,例如八皇后。對于遞歸,是把原問題分解為若干個相似的子問題,通常會在「歸」的過程中有一些計算。如果一個遞歸能考慮用記憶化來優(yōu)化,就

    2024年02月04日
    瀏覽(19)
  • 基于拉格朗日-遺傳算法的最優(yōu)分布式能源DG選址與定容(Matlab代碼實現(xiàn))

    基于拉格朗日-遺傳算法的最優(yōu)分布式能源DG選址與定容(Matlab代碼實現(xiàn))

    目錄 1 概述 2 數(shù)學(xué)模型 2.1 問題表述 2.2 DG的最佳位置和容量(解析法) 2.3 使用 GA 進行最佳功率因數(shù)確定和 DG 分配? 3 仿真結(jié)果與討論 ?3.1 33 節(jié)點測試配電系統(tǒng)的仿真 3.2 69 節(jié)點測試配電系統(tǒng)仿真 ?4 結(jié)論 為了使系統(tǒng)網(wǎng)損達到最低值,人們提出了多種方法來確定分布式發(fā)電機

    2024年02月15日
    瀏覽(19)
  • 使用C語言構(gòu)建一個獨立棧協(xié)程和共享棧協(xié)程的任務(wù)調(diào)度系統(tǒng)

    使用了標(biāo)準(zhǔn)庫頭文件 setjmp.h 中的 setjmp 和 longjmp 兩個函數(shù),構(gòu)建了一個簡單的查詢式協(xié)作多任務(wù)系統(tǒng),支持 獨立棧 和 共享棧 兩種任務(wù)。 其中涉及到獲取和設(shè)置棧的地址操作,因此還需要根據(jù)不同平臺提供獲取和設(shè)置棧的地址操作(一般是匯編語言,因為涉及到寄存器) 該

    2024年02月19日
    瀏覽(25)
  • 動態(tài)規(guī)劃(dp)-最優(yōu)路徑

    動態(tài)規(guī)劃(dp)-最優(yōu)路徑

    蒜頭君要回家,已知蒜頭君在 左下角(1,1)位置,家在 右上角(n,n)坐標(biāo)處。蒜頭君走上一個格子就會花費相應(yīng)體力,而且蒜頭君只會往家的方向走,也就是只能往上,或者往右走。蒜頭君想知道他回到家需要花費的最少體力是多少。 例如下圖所示,格子中的數(shù)字代表走上該格子

    2024年04月24日
    瀏覽(23)
  • 動態(tài)規(guī)劃:最優(yōu)二叉搜索樹

    動態(tài)規(guī)劃:最優(yōu)二叉搜索樹

    給定一個序列 有n個有序且各不相同的鍵, 集合 表示在K中成功的搜索的概率; 為n+1 個不同的啞鍵,表示所有在和 之間的值, 表示不成功的搜索的概率. 創(chuàng)建二叉搜索樹, 使得其期望搜索花費最小。 如果一棵最優(yōu)二叉搜索樹T的子樹T’含有鍵那么這個子樹T’肯定是子問題鍵

    2024年01月20日
    瀏覽(26)
  • 最優(yōu)控制理論 九、Bellman動態(tài)規(guī)劃法用于最優(yōu)控制

    最優(yōu)控制理論 九、Bellman動態(tài)規(guī)劃法用于最優(yōu)控制

    盡管DP也是最優(yōu)控制理論的三大基石之一,但長久以來,動態(tài)規(guī)劃法(Dynamic Programming)被認(rèn)為只能在較少控制變量的多階段決策問題中使用,維數(shù)災(zāi)難使他不可能搜索得了整個連續(xù)最優(yōu)控制問題的高維狀態(tài)空間,因此仍然只能在一些維數(shù)較低的離散決策變量最優(yōu)選擇中取得較好

    2024年02月01日
    瀏覽(19)
  • 【動態(tài)規(guī)劃】【廣度優(yōu)先搜索】【狀態(tài)壓縮】847 訪問所有節(jié)點的最短路徑

    【動態(tài)規(guī)劃】【廣度優(yōu)先搜索】【狀態(tài)壓縮】847 訪問所有節(jié)點的最短路徑

    視頻算法專題 動態(tài)規(guī)劃匯總 廣度優(yōu)先搜索 狀態(tài)壓縮 存在一個由 n 個節(jié)點組成的無向連通圖,圖中的節(jié)點按從 0 到 n - 1 編號。 給你一個數(shù)組 graph 表示這個圖。其中,graph[i] 是一個列表,由所有與節(jié)點 i 直接相連的節(jié)點組成。 返回能夠訪問所有節(jié)點的最短路徑的長度。你可

    2024年01月23日
    瀏覽(18)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包