1. 程式人生 > >動態規劃之獨立任務最優排程問題 問題描述

動態規劃之獨立任務最優排程問題 問題描述

1.問題描述

用2 臺處理機A 和B 處理n個作業。設第i 個作業交給機器A 處理時需要時間ai,若由機器B來處理,則需要時間bi。由於各作業的特點和機器的效能關係,很可能對於某些i,有ai>=bi,而對於某些j,j≠i,有aj<bj,既不能將一個作業分開由2 臺機器處理,也沒有一臺機器能同時處理2 個作業。設計一個動態規劃演算法,使得這2 臺機器處理完這n個作業的時間最短(從任何一臺機器開工到最後一臺機器停工的總時間)。

研究一個例項:

(a1,a2,a3,a4,a5,a6)=(2,5,7,10,5,2);

(b1,b2,b3,b4,b5,b6)=(3,8,4,11,3,4)。

2.程式設計任務

對於給定的2 臺處理機A 和B處理n個作業,找出一個最優排程方案,使2臺機器處理完這n個作業的時間最短。

3.實驗提示

(1)首先計算出 (日圖貼不上)

(2)設布林量p(i,j,k)表示前k個作業可以在處理機A用時不超過i且處理機B用時不超過j時間內完成。用動態規劃演算法計算下面的式子

(3)由(2)的結果可以計算最短處理時間為:

輸入檔案示例  輸出檔案示例
input.txt     output.txt
6             15
2 5 7 10 5 2
3 8 4 11 3 4

相關推薦

動態規劃獨立任務排程問題 問題描述

1.問題描述 用2 臺處理機A 和B 處理n個作業。設第i 個作業交給機器A 處理時需要時間ai,若由機器B來處理,則需要時間bi。由於各作業的特點和機器的效能關係,很可能對於某些i,有ai>=bi,而對於某些j,j≠i,有aj<bj,既不能將一個作業分開由2 臺機器處理,也沒有一臺機器能同時處

演算法_動態規劃_獨立任務排程問題

問題描述   用2 臺處理機A 和B 處理n個作業。設第i 個作業交給機器A 處理時需要時間ai,若由機器B來處理,則需要時間bi。由於各作業的特點和機器的效能關係,很可能對於某些i,有ai>=bi,而對於某些j,j≠i,有aj import java

獨立任務排程動態規劃

題目: 用兩臺處理機A和B處理n個作業。設A和B處理第k個作業的時間分別為ak和bk。由於各個作業的特點和機器效能的關係,對某些作業,在A上的處理時間長;而對另一些作業,在B上的處理時間更長。一臺

動態規劃凸多邊形三角剖分”

 問題描述 多邊形是平面上一條分段線性的閉曲線。也就是說,多邊形是由一系列首尾相接的直線段組成的。組成多邊形的各直線段稱為該多邊形的邊。多邊形相接兩條邊的連線點稱為多邊形的頂點。若多邊形的邊之間除了連線頂點外沒有別的公共點,則稱該多邊形為簡單多邊形。一個簡單多邊形將平面分為3個部分:被包圍

獨立任務排程(雙機排程)問題

    用兩臺處理機AAA和BBB處理nnn個作業。設AAA和BBB處理第kkk個作業的時間分別為aka_kak​和bkb_kbk​。由於各個作業的特點和機器效能的關係,對某些作業,在AAA上的處理時間長;而對另一些作業,在BBB上的處理時間更長。一臺處理機在某

王曉東 獨立任務排程問題

方法1: #include "stdio.h" #include "string.h" #define MX 10 #define MAX(a, b) ((a)>(b)?(a):(b)) #define MIN(a, b) ((a)<(b)?(a):(b))

獨立任務排程問題

問題:獨立任務最優排程,又稱雙機排程問題:用兩臺處理機A和B處理n個作業。設第i個作業交給機器A處理時所需要的時間是a[i],若由機器B來處理,則所需要的時間是b[i]。現在要求每個作業只能由一臺機器處理,每臺機器都不能同時處理兩個作業。設計一個動態規劃演算法,使得這兩

南郵 OJ 1220 獨立任務排程問題

獨立任務最優排程問題 時間限制(普通/Java) : 1000 MS/ 3000 MS          執行記憶體限制 : 65536 KByte 總提交 : 164            測試通

獨立任務調度問題

can i++ 任務 ase turn ret n) ++ ber #include <stdio.h> int main() { int n; int *a, *b,*t; int i,k; int s

SDNUOJ 1292 動態規劃LDS(長下降子序列)

Description 昨天是平安夜,聖誕老人從房頂上的煙囪裡爬到小朋友床邊把禮物送給夢鄉中的小朋友,但是今年的聖誕老人是處女座的,他有很嚴重的強迫症,他從一條街的一端開始,每次送禮物進的煙囪都不能比之前進的煙囪高,而且他還想要送出最多的禮物。 Input 輸入資料只有一行,該行包含若干個資

動態規劃——求數字三角形解和路徑

給定一個由n行數字組成的數字三角形如下圖所示。試設計一個演算法,對於給定的由 n行數字組成的數字三角形, 計算從三角形的頂至底的路徑經過的數字和的最大值。 注意:對於第i層的第j個數字,其所在路徑的下一個數字只能是第i+1層的第j個或第j+1個數字。

利用動態規劃的思想求

源自《劍指offer》中的剪繩子問題,書中使用的是C++,但是我更喜歡用python實現。這裡按照從上而下的順序計算,也就是說我們先得到f(2)、f(3),再得到f(4)、f(5),直到得到f(n)... # -*- coding:utf-8 -*- #利用動態規劃的思

動態規劃】凸多邊形三角剖分

 經典dp問題  1、問題相關定義:  (1)凸多邊形的三角剖分:將凸多邊形分割成互不相交的三角形的弦的集合T。 (2)最優剖分:給定凸多邊形P,以及定義在由多邊形的邊和絃組成的三角形上的權函式w。要求確定該凸多邊形的三角剖分,使得該三角剖分中諸三角形上權之和為最小。

動態規劃 (二) 矩陣鏈乘

背景分析 最優矩陣鏈乘是二維的動態規劃問題,也是較為經典的動態規劃入門問題。《演算法導論》和劉汝佳的《演算法競賽入門經典》中都有詳細描述。 問題描述 線上性代數裡,我們都學過矩陣的乘法。矩陣的乘法不滿足分配律,但是滿足結合律,因此 (A x B)x C 與 A x(B

0014演算法筆記——【動態規劃】凸多邊形三角剖分

1、問題相關定義: (1)凸多邊形的三角剖分:將凸多邊形分割成互不相交的三角形的弦的集合T。 (2)最優剖分:給定凸多邊形P,以及定義在由多邊形的邊和絃組成的三角形上的權函式w。要求確定該凸多邊形的三角剖分,使得該三角剖分中諸三角形上權之和為最小。      凸多邊形三

第十五章動態規劃二叉查詢樹”

本書從文字翻譯的案例切入,假設把英文翻譯為法文,每個英文單詞為關鍵字,其對應法文為衛星資料。用二叉查詢樹儲存,該怎麼設計這個查詢樹。即使是紅黑樹,查詢的時間複雜度也為O(lgn)即樹的深度。但是因為文章中某個單詞出現的頻率不同,所以可能有些頻率很高的單詞比如the的深度可能

[C++] 動態規劃矩陣連乘、長公共子序列、大子段和、長單調遞增子序列

每次 種子 () return 避免 amp 可能 text com 一、動態規劃的基本思想   動態規劃算法通常用於求解具有某種最優性質的問題。在這類問題中,可能會有許多可行解。每一個解都對應於一個值,我們希望找到具有最優值的解。   將待求解問題分解成若幹個子問題,先求

動態規劃長遞增子序列(LIS)

lib sca while -c -o 組成 describe log ret 在一個已知的序列{ a1,a2,……am}中,取出若幹數組成新的序列{ ai1, ai2,…… aim},其中下標 i1,i2, ……im保持遞增,即新數列中的各個數之間依舊保持原

動態規劃長公共子序列(LCS)

int tdi -s can 數組下標 include har 遞推 最長公共子序列 在字符串S中按照其先後順序依次取出若幹個字符,並講它們排列成一個新的字符串,這個字符串就被稱為原字符串的子串 有兩個字符串S1和S2,求一個最長公共子串

動態規劃長公共子序列

圖片 輔助 length ret %s csp TP 子序列 輸出 原理請參考《算法導論》 定義常量 enum {upper_left, up, left}; #define LENGTHA (sizeof(A)/sizeof(A[0])) #define LENGTHB