装配线调度问题
2017-03-27 09:26
162 查看
题目描述
有两条装配线,编号分别为1和2。每一条装配线上有个n装配点,将第i条线上的第个j装配点记为Si,j,设在装配点Si,j的装配时间为Ai,j。假设要装配一辆汽车,将汽车底盘从进厂点送入第i号装配线,需要时间Ei。在装配点Si,j装配后,如果汽车传送到同一号装配线的装配点Si,j+1进行装配,则传送不需要时间。如果汽车完成装配点Si,j的工作后传送到另一号装配线进行下一步的工作,则需要传送时间Ti,j。汽车在装配点Si,n装配后,将汽车成品从装配线上退下来,需要花费时间Xi。装配线调度问题是如何确定每一个装配点的装配需要在哪号线上进行,使得当汽车成品出来时,花费的总时间最少。输入
输入的第一行包含一个正整数n(1<=n<=1000)第二行包含四个正整数,分别是传入装配线所用时间E1,E2和退出装配线所用时间X1,X2。(0<E1,E2,X1,X2<=1000)
接下来的两行每行有n个正整数,分别描述装配时间A1,j和A2,j(0<Ai,j<=1000)(1<=j<=n)。
接下来的两行每行有n - 1个正整数,分别描述传送时间T1,j和T2,j(0<=Ti,j<=150)(1<=j<=n-1)。
输出
输出一个正整数表示一辆汽车最快需要多少时间出厂。样例输入
410 20 40 30
50 100 1000 50
200 200 200 65
10 10 10
20 20 20
样例输出
465#include #include using namespace std; const int N=1000; int f1 , f2 , l1 , l2 , f, l; //f数组存放当前子问题最快装配问题,l数组存放子问题前一点的装配线 void DPFastestWay(int a1[], int a2[], int t1[], int t2[], int e1, int e2, int x1, int x2, int n) { f1[1]=e1+a1[1]; f2[1]=e2+a2[1]; for(int j=2; j<=n; j++) { if(f1[j-1]+a1[j]<=f2[j-1]+t2[j-1]+a1[j]) { f1[j]=f1[j-1]+a1[j]; l1[j]=1; } else { f1[j]=f2[j-1]+t2[j-1]+a1[j]; l1[j]=2; } if(f2[j-1]+a2[j]<=f1[j-1]+t1[j-1]+a2[j]) { f2[j]=f2[j-1]+a2[j]; l2[j]=2; } else { f2[j]=f1[j-1]+t1[j-1]+a2[j]; l2[j]=1; } } if(f1 +x1<=f2 +x2) { f=f1 +x1; l=1; } else { f=f2 +x2; l=2; } } void PrintStation(int l1[], int l2[],int l, int n) //打印路线 { int i=l; cout<<"line "<1; j--) { if(i==1) { i=l1[j]; cout<<"line "<[i]>n; //n个装配点 int e1, e2, x1, x2; cin>>e1>>e2>>x1>>x2; //进出场时间 int a1 , a2 ; //每个点的装配时间 for(int i=1; i<=n; i++) cin>>a1[i]; for(int i=1; i<=n; i++) cin>>a2[i]; int t1 , t2 ; //换线时间 for(int i=1; i>t1[i]; for(int i=1; i>t2[i]; DPFastestWay(a1,a2,t1,t2,e1,e2,x1,x2,n); cout<[/i]
相关文章推荐
- 动态规划 - 装配线调度问题
- 动态规划-装配线调度问题
- 算法导论 动态规划入门之装配线调度问题
- 装配线调度问题的算法解析和验证
- 装配线调度问题 的 动态规划实现
- 动态规划--装配线调度问题
- 装配线调度问题 算法导论动态规划P194
- 动态规划(DP)-装配线调度问题
- 动态规划——装配线调度问题
- 流水线调度最优问题(装配线调度问题)动态规划 O(n)时间(线性时间)C++实现
- [置顶] 算法导论 之 动态规划 - 装配线调度问题[C语言]
- 装配线调度问题
- 动态规划: 装配线调度问题 (算法导…
- 《算法设计》第15章-动态规划—装配线调度问题
- 算法导论15.1节 装配线调度问题
- 动态规划--装配线调度问题
- 算法导论 第15章 动态规划 装配线调度问题
- 动态规划--装配线调度问题
- 算法导论-装配线调度问题
- [动态规划] 《算法导论》中的装配线调度问题实现