當前位置:編程學習大全網 - 編程軟體 - 用C語言動態規劃算法實現:某壹印刷廠有六項加工任務,對印刷車間和裝訂車間所需時間見下表

用C語言動態規劃算法實現:某壹印刷廠有六項加工任務,對印刷車間和裝訂車間所需時間見下表

#include<stdio.h>

int job[6][2]={

{3,8},

{12,10},

{5,9},

{2,6},

{9.3},

{11,1}

};

int x[6],bestx[6],f1=0,bestf,f2[7]={0};

void try(int i);

void swap(int a,int b);

int main(void)

{

int i,j;

bestf=32767;

for(i=0;i<6;i++)

x[i]=i;

try(0);

for(i=0;i<6;i++)

printf("%d ",bestx[i]);

printf("\nbestf=%d\n",bestf);

return 0;

}

void try(int i)

{

int j;

if(i==6)

{

for(j=0;j<6;j++)

bestx[j]=x[j];

bestf=f2[i];

}

else

{

for(j=i;j<6;j++)

{

f1=f1+job[x[j]][0];

if(f2[i]>f1)

f2[i+1]=f2[i]+job[x[j]][1];

else

f2[i+1]=f1+job[x[j]][1];

if(f2[i+1]<bestf)

{

swap(i,j);

try(i+1);

swap(i,j);

}

f1=f1-job[x[j]][0];

}

}

}

void swap(int i,int j)

{

int temp;

temp=x[i];

x[i]=x[j];

x[j]=temp;

}

  • 上一篇:#首例免疫艾滋病基因編輯嬰兒在中國誕生#基因編輯實驗是瘋狂的嘗試還是人類的轉折?
  • 下一篇:關於RP牌吉他
  • copyright 2024編程學習大全網