装配线调度(算法导论)
2011-10-24 22:19
246 查看
题目如算法导论第十五章动态规划所述
#include <iostream> using namespace std; double f1[6]; double f2[6]; int l1[5]; int l2[5]; void fastest_way(double e1,double a1[],double t1[],double x1, double e2,double a2[],double t2[],double x2, int num,double &minTime,int & l) { f1[0]=e1+a1[0]; f2[0]=e2+a2[0]; for (int j=1;j<num;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]=1; } else { f1[j]=f2[j-1]+t2[j-1]+a1[j]; l1[j-1]=2; } if (f2[j-1]+a2[j]<=f1[j-1]+t1[j-1]+a2[j]) { f2[j]=f2[j-1]+a2[j]; l2[j-1]=2; } else { f2[j]=f1[j-1]+t1[j-1]+a2[j]; l2[j-1]=1; } } if (f1[num-1]+x1<=f2[num-1]+x2) { minTime=f1[num-1]+x1; l=1; } else { minTime=f2[num-1]+x2; l=2; } } void print_station(int &l ,int num) { int i=l; cout<<"line"<<i<<",station"<<num<<endl; for(int j=num-1;j>0;j--) { if (i==1) { i=l1[j-1]; cout<<"line"<<i<<",station"<<j<<endl; } else { i=l2[j-1]; cout<<"line"<<i<<",station"<<j<<endl; } } } int main() { double e1=2; double e2=4; double x1=3; double x2=2; int num=6; double a1[6]={7,9,3,4,8,4}; double a2[6]={8,5,6,4,5,7}; double t1[5]={2,3,1,3,4}; double t2[5]={2,1,2,2,1}; double minTime=0; int l=0; fastest_way(e1,a1,t1,x1,e2,a2,t2,x2,6,minTime,l); print_station(l,6); }
相关文章推荐
- 【算法导论】动态规划--装配线调度问题
- 装配线调度问题 算法导论动态规划P194
- 动态规划解决——装配线调度(算法导论第15章)
- 算法导论15.1 装配线调度问题
- 【算法导论】动态规划算法之装配线调度
- 【算法导论】动态规划算法之装配线调度
- 算法导论 用拟阵求解任务调度问题
- 算法导论-15-7 达到最高效益的调度
- 流水线调度问题实现(动态规划基础---------问题取自算法导论)
- 装配线调度问题(算法导论+动态规划)
- 一个任务调度问题-----算法导论
- 装配线调度问题的算法解析和验证
- 算法导论---达到最大效益的调度
- 算法导论-任务调度问题
- 算法练习 动态规划 装配线调度
- 【算法】【动态规划】装配线调度
- 算法导论 15章 动态规划 装配线调度算法
- 动态规划: 装配线调度问题 (算法导…
- 【算法导论】装备线调度问题
- MIT 6.046J / 18.410J 2001秋季课程:算法导论(Introduction to Algorithms, Fall 2001)第一课