问题描述:
/*************************************************************
批处理作业调度
给定n个作业的集合{J1,J2,…,Jn}。
每个作业必须先由机器1处理,然后由机器2处理。
作业Ji需要机器j的处理时间为tji。
对于一个确定的作业调度,设Fji是作业i在机器j上完成处理的时间。
所有作业在机器2上完成处理的时间和称为该作业调度的完成时间和。
f = F21 + F22 + F23 + ... + F2n
批处理作业调度问题要求对于给定的n个作业,
制定最佳作业调度方案,使其完成时间和达到最小。
*************************************************************/
public class FlowShop
{
int n, //作业数;
f1, //机器1完成处理时间;
f, //完成时间和;
bestf; //当前最优值;
int [][]m; //各作业所需的处理时间;
int []x; //当前作业调度;
int []bestx; //当前最优作业调度;
int []f2; //机器2完成处理时间;
private void backtrack(int i)
{
if(i>n)