批處理作業排程問題
給定n個作業的集合J={J1,J2,…,Jn}。每一個作業有兩項任務分別在兩臺機器上完成。每個作業必須先由機器1處理,再由機器2處理。作業Ji需要機器j的處理時間為tji,i=1,2,…n,j=1,2。對於一個確定的作業排程,設Fji是作業i在機器j上完成處理的時間。則所有作業在機器2上完成處理的時間和f=F21+F22+…+F2n稱為該作業排程的完成時間和。
批處理作業排程問題要求,對於給定的n個作業,制定最佳的作業排程方案,使其完成時間和最小。
參考程式碼如下:
#include <stdio.h>
int f, f1,*f2,bestf;
int *bestX,*x;
int n;
int **M;
void backtrack(int t)
{
int i,j,k;
int temp;
if(t>n)
{
for(i=0;i<=n;i++)
bestX[i]=x[i];
bestf=f;
}
else
{
for(j=t;j<=n;j++)
{
f1+=M[x[j]][0];
f2[t]=(f2[t-1]>f1?f2[t-1]:f1)+M[x[j]][1];
f+=f2[t];
if(f<bestf){
temp=x[t]; x[t]=x[j]; x[j]=temp;
backtrack(t+1);
temp=x[t]; x[t]=x[j]; x[j]=temp;
}
f1-=M[x[j]][0];
f-=f2[t];
}
}
}
int main()
{
int i,j,k;
printf("input the number of homework:");
scanf("%d", &n);
M=new int *[n+1];
for(i=1;i<=n;i++)
M[i]=new int [2];
printf("input the time consumed:");
for(i=1;i<=n;i++)
{
for(j=0;j<2;j++)
scanf("%d",&M[i][j]);
}
f1=0; f=0; bestf=1000;
f2=new int[n+1];
bestX=new int [n+1];
x=new int[n+1];
for(i=0;i<=n;i++)
{
f2[i]=0;
x[i]=i;
}
backtrack(1);
for(i=1;i<=n;i++)
printf("%d ",bestX[i]);
printf("\n%d ",bestf);
return 0;
}
相關文章
- 批處理作業排程-分支界限法
- Oracle排程作業引起的空間驟增問題處理記錄Oracle
- 使用FUTURE 中的訊息避免計劃排程的批處理作業 - CodeOpinion
- 作業系統4——處理機排程與死鎖作業系統
- 基於任務排程的企業級分散式批處理方案分散式
- .NET Core Hangfire週期性作業排程問題
- 多機器人協作排程問題機器人
- 3.1處理機排程概述
- sqlldr標準輸出未處理導致批處理掛起問題SQL
- 猿考研之作業系統篇二(處理機排程)作業系統
- 使用Kafka分割槽擴充套件Spring Batch大資料排程批處理 – ArnoldKafka套件SpringBAT大資料
- Java後端開發中的任務排程:使用Spring Batch實現批處理Java後端SpringBAT
- 作業系統課程設計——處理機和程式排程演算法及記憶體分配回收機制作業系統演算法記憶體
- 如何使用Rust的gaffer實現優先順序的微批處理排程器 - njkRust
- oracle排程程式作業dbms_schedulerOracle
- oracle使用DBMS_SCHEDULER排程作業Oracle
- 2.2.1 處理機排程的概念及層次
- Jenkins執行遠端Windows批處理的許可權問題JenkinsWindows
- 批處理概述
- 一次線上問題處理過程記錄
- 前端開發分析-聊聊過程跨域問題處理前端跨域
- Apache Oozie 教程:使用 Oozie 排程 Hadoop 作業ApacheHadoop
- 作業系統之排程演算法作業系統演算法
- LOTO示波器動作程式設計功能(命令批處理)程式設計
- golang json處理問題GolangJSON
- [git] git問題處理Git
- async-await:協作排程 vs 搶佔排程AI
- 如何處理六西格瑪過程中遇到的問題?
- 實現Quartz.NET的HTTP作業排程quartzHTTP
- 作業系統精髓設計原理 程式排程作業系統
- GaussDB(DWS)應用實踐丨負載管理與作業排隊處理方法負載
- 併發問題處理方式
- Linux 問題處理集錦Linux
- 處理SQLServer errorlog滿問題SQLServerError
- 資料處理--pandas問題
- Ubuntu處理依賴問題Ubuntu
- Elastic-job實戰(分散式作業排程框架)AST分散式框架
- 【作業系統】4.程序排程演算法作業系統演算法
- Apache Beam,批處理和流式處理的融合!Apache