public double[][] getReferenceSet() { openga.applications.data.parallelMachine data1 = new openga.applications.data.parallelMachine(); if (numberOfJob == 35) { return data1.getParetoJob35M10(); } else if (numberOfJob == 50) { return data1.getParetoJob50M15(); } else { // for job = 65 return data1.getParetoJob65M18(); } }
public void initiateVars() { // initiate scheduling data. We use the benchmark problem. openga.applications.data.parallelMachine data1 = new openga.applications.data.parallelMachine(); dueDay = data1.getTestData3_DueDay(numberOfJob); processingTime = data1.getTestData3_processingTime(numberOfJob); weights = new double[numberOfSubPopulations][numberOfObjs]; objectiveMinimization = new boolean[numberOfObjs]; objectiveMinimization[0] = true; objectiveMinimization[1] = true; encodeType = true; // GA objects GaMain = new MainWeightScalarizationI[numberOfSubPopulations]; Population = new populationI[numberOfSubPopulations]; Selection = new SelectI[numberOfSubPopulations]; Crossover = new CrossoverI[numberOfSubPopulations]; // Crossover2 = new CrossoverI[numberOfSubPopulations]; Mutation = new MutationI[numberOfSubPopulations]; // Mutation2 = new MutationI[numberOfSubPopulations]; // clone1 = new cloneI[numberOfSubPopulations]; ObjectiveFunction = new ObjectiveFunctionScheduleI[numberOfSubPopulations][numberOfObjs]; Fitness = new FitnessI[numberOfSubPopulations]; for (int i = 0; i < numberOfSubPopulations; i++) { GaMain[i] = new SPGAwithSharedParetoSet(); // singleThreadGA SPGAwithSharedParetoSet adaptiveGA Population[i] = new population(); if (tournamentSize == 2) { // binaryTournament similaritySelection2 tenaryTournament varySizeTournament Selection[i] = new binaryTournament(); } else if (tournamentSize == 5) { Selection[i] = new quintetTournament(); } else if (tournamentSize == 10) { Selection[i] = new tenaryTournament(); } else { Selection[i] = new twentyTournament(); } // random generate solutionVectorClone solutionVectorCloneWithMutation // solutionVectorCloneAdjacentSwapWithMutation solutionVectorCloneWithMiningGene clone1 = new solutionVectorCloneWithMutation(); Crossover[i] = new twoPointCrossover2(); // oneByOneChromosomeCrossover twoPointCrossover2 // twoPointCrossover2withAdpative Crossover2 = new PMX(); Mutation[i] = new swapMutation(); // swapMutation shiftMutation swapMutationWithAdaptive Mutation2 = new shiftMutation(); // shiftMutation ObjectiveFunction[i] = new ObjectiveFunctionScheduleI[numberOfObjs]; ObjectiveFunction[i][0] = new ObjectiveMakeSpan(); // the first objective, makespan ObjectiveFunction[i][1] = new ObjectiveTardiness(); // the second one. Fitness[i] = new FitnessByScalarizedM_objectives(); // set schedule data to the objectives ObjectiveFunction[i][0].setScheduleData(processingTime, numberOfMachines); ObjectiveFunction[i][1].setScheduleData(dueDay, processingTime, numberOfMachines); // set the data to the GA main program. GaMain[i].setData( Population[i], Selection[i], Crossover[i], Mutation[i], ObjectiveFunction[i], Fitness[i], firstIteration, DEFAULT_PopSize * 2, DEFAULT_PopSize, numberOfJob, DEFAULT_crossoverRate, DEFAULT_mutationRate, objectiveMinimization, numberOfObjs, encodeType, elitism); // set weight data weights[i] = calcWeightsForEachSubPop(i); GaMain[i].setWeight(weights[i]); // set secondary crossover and mutation operator. GaMain[i].setSecondaryCrossoverOperator(Crossover2, applySecCRX); GaMain[i].setSecondaryMutationOperator(Mutation2, applySecMutation); // GaMain[i].setCloneOperatpr(clone1, applyClone); } }