最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

《算法設(shè)計與分析》實驗報告5

2022-08-05 10:29 作者:老師-忘記密碼  | 我要投稿

算法設(shè)計與分析》實驗報告5

?

實驗名稱: 作業(yè)調(diào)度問題

系????別:xxx???????????

專????業(yè):xxx? ? ? ? ? ?

班????級:xxx

姓????名:xxx? ? ? ? ??

學(xué)????號:xxx

實驗日期:xx年xx月xx日


1. ?算法題目

根據(jù)回溯法的設(shè)計思想和算法步驟,要求學(xué)生設(shè)計一個回溯算法,用于解決作業(yè)調(diào)度的問題。作業(yè)調(diào)度問題,作為經(jīng)典的組合問題,需要考慮所有任務(wù)的全排列。帶有回溯的遞歸調(diào)用,可以在中間環(huán)節(jié)中發(fā)現(xiàn)回溯后的后續(xù)操作是否還有必要繼續(xù)進行的可能性,從而實現(xiàn)剪枝,減少搜索n!空間的范圍。因此帶回溯的搜索算法可以解決該問題,至少在時間效率上有很大的提高。

?

2. ?設(shè)計思路與步驟

答:1 初始化變量X[i]

?2 設(shè)置解空間的第一個位置的值

3 對每一個x屬于Sk 循環(huán)執(zhí)行下列操作 k>=1

??3.1 Xk=x

??3.2 將Xk加入X

??3.3 if(X是最終解) 輸出結(jié)果bestTime

??3.4 if(X是部分解) 填寫下一個位置 k = k + 1;

??3.5 else 回溯,恢Xk和k:x[k] = -1; k = k - 1; ??

?

3. ?算法實現(xiàn)與代碼

?

#include<stdio.h>

//const int n = 3;

#define N 3

int BatchJob(int a[], int b[], int n);

?

int main()

{

int a[N] = { 2, 5, 4 }, b[N] = { 3, 2, 1 };

int bestTime = BatchJob(a, b, 3);


printf("最短作業(yè)時間是:%d\n", bestTime);

return 0;

}

?

int BatchJob(int a[], int b[], int n)

{

int i, j, k;

int x[10], sum1[10], sum2[10];

int bestTime = 1000; ????????????????????//假定最后完成時間不超過1000

for (i = 1; i <= n; i++)

{

x[i] = -1;

sum1[i] = 0;

sum2[i] = 0;

}

sum1[0] = 0; sum2[0] = 0;

k = 1;

while (k >= 1)

{

x[k] = x[k] + 1;

while (x[k] < n)

{

for (i = 1; i < k; i++) ??????//檢測作業(yè)x[k]是否重復(fù)處理

if (x[i] == x[k])

break;

if (i == k) { ?????????????//作業(yè)x[k]尚未處理

sum1[k] = sum1[k - 1] + a[x[k]];

if (sum1[k] > sum2[k - 1]) sum2[k] = sum1[k] + b[x[k]];

else sum2[k] = sum2[k - 1] + b[x[k]];

if (sum2[k] < bestTime)

break;

else

x[k] = x[k] + 1;//剪枝

}

else x[k] = x[k] + 1; ????????????//作業(yè)x[k]已處理

}

if (x[k] < n && k == n) ???????//得到一個作業(yè)安排

if (bestTime > sum2[k]){

bestTime = sum2[k];

printf("最短的作業(yè)安排是:");

for (j = 1; j <= n; j++)

printf("%d ",x[j] + 1);

////數(shù)組下標從0開始,打印作業(yè)編號從1開始

}

?

if (x[k] < n && k < n)

k = k + 1; ????????????????????//是解的子集,安排下一個作業(yè)

else { ?

x[k] = -1; k = k - 1; ????????????//重置x[k],回溯

}

}

return bestTime;

}

?

4. ?測試用例與結(jié)果

?


5. ?問題與總結(jié)

答:xxx。

《算法設(shè)計與分析》實驗報告5的評論 (共 條)

分享到微博請遵守國家法律
乌什县| 凌云县| 柞水县| 津市市| 桂阳县| 大新县| 松桃| 于田县| 辛集市| 屯留县| 漠河县| 武鸣县| 永城市| 抚松县| 和田县| 延寿县| 礼泉县| 永德县| 社旗县| 蒙自县| 怀集县| 五河县| 南皮县| 乌恰县| 高要市| 同仁县| 九龙坡区| 湘乡市| 永济市| 周至县| 偃师市| 孝义市| 建水县| 金秀| 汝城县| 交城县| 洪雅县| 瓦房店市| 海原县| 安庆市| 日土县|