装配线调度问题
2013-06-15 16:35
281 查看
/*装配线调度问题*/ public class AssemblyLine { public static final int N = 6; public static void main(String[] args) { int[] f1 = new int[N+1]; int[] f2 = new int[N+1]; int[] l1 = new int[N+1]; int[] l2 = new int[N+1]; int[] a1 = new int[]{0,7,9,3,4,8,4}; int[] a2 = new int[]{0,8,5,6,4,5,7}; int[] t1 = new int[]{0,2,3,1,3,4}; int[] t2 = new int[]{0,2,1,2,2,1}; int x1=3, x2=2; int e1=2, e2=4; int f; int l; f1[1] = e1 + a1[1]; f2[1] = e2 + a2[1]; for(int i=2; i<=N; i++) { if(f1[i-1] + a1[i] <= f2[i-1] + t2[i-1] + a1[i]) { f1[i] = f1[i-1] + a1[i]; l1[i] = 1; } else { f1[i] = f2[i-1] + t2[i-1] + a1[i]; l1[i] = 2; } if(f2[i-1] + a2[i] <= f1[i-1] + t1[i-1] + a2[i]) { f2[i] = f2[i-1] + a2[i]; l2[i] = 2; } else { f2[i] = f1[i-1] + t1[i-1] + a2[i]; l2[i] = 1; } } if(f1 + x1 <= f2 + x2) { f = f1 + x1; l = 1; } else { f = f2 + x2; l = 2; } int j = l; System.out.println("line: " + j + ",station " + N); for(int i=N; i>=2; i--) { if(j == 1) j = l1[i]; else j = l2[i]; System.out.println("line: " + j + ",station " + (i-1)); } } }
相关文章推荐
- 动态规划--装配线调度问题
- 动态规划-装配线调度问题
- 装配线调度问题 算法导论动态规划P194
- [算法导论读书笔记]装配线调度问题
- 装配线调度问题のBrute Force解法~~~~
- 装配线调度问题
- 动态规划--装配线调度问题
- 流水线调度最优问题(装配线调度问题)动态规划 O(n)时间(线性时间)C++实现
- 动态规划--装配线调度问题
- 【算法导论】动态规划--装配线调度问题
- 动态规划之装配线调度问题
- 算法导论15.1 装配线调度问题
- 算法导论-装配线调度问题
- 动态规划 - 装配线调度问题
- 动态规划——装配线调度问题
- 流水线调度最优问题(装配线调度问题)动态规划 O(n)时间(线性时间)C++实现
- 动态规划--装配线调度问题
- 动态规划 - 装配线调度问题
- [动态规划] 《算法导论》中的装配线调度问题实现
- 动态规划之 装配线调度问题