Commit 61b4aace authored by Tong Li's avatar Tong Li

遗传算法-优化

parent d4ace4ca
......@@ -97,10 +97,10 @@ public class GeneticAlgorithm {
// .orElse(null);
WriteKpis(fronts,"初始");
best = fronts.get(0).stream()
.sorted((c1, c2) -> Double.compare(c1.getWeightedObjective(), c2.getWeightedObjective()))
.sorted((c1, c2) -> Double.compare(c2.getWeightedObjective(), c1.getWeightedObjective()))
.findFirst()
.orElse(null);
WriteKpi(best);
WriteKpi(best,"最大");
double bestFitness=best.getWeightedObjective();
int Iteration=0;
// 步骤2:迭代进化
......@@ -184,11 +184,11 @@ public class GeneticAlgorithm {
fronts = _nsgaIIUtils.parallelFastNonDominatedSort(population);
WriteKpis(fronts,String.valueOf(iter));
best = fronts.get(0).stream()
.sorted((c1, c2) -> Double.compare(c1.getWeightedObjective(), c2.getWeightedObjective()))
.sorted((c1, c2) -> Double.compare(c2.getWeightedObjective(), c1.getWeightedObjective()))
.findFirst()
.orElse(null);
WriteKpi(best);
if(bestFitness>best.getWeightedObjective())
WriteKpi(best,"最大");
if(bestFitness<best.getWeightedObjective())
{
bestFitness=best.getWeightedObjective();
......@@ -228,14 +228,14 @@ public class GeneticAlgorithm {
FileHelper.writeLogFile(String.format("KPI---%s--------%d----",index,i));
for (Chromosome chromosome:fronts.get(i)) {
WriteKpi(chromosome);
WriteKpi(chromosome,"");
}
}
}
private void WriteKpi(Chromosome chromosome)
private void WriteKpi(Chromosome chromosome,String desc)
{
FileHelper.writeLogFile(String.format("KPI---%f--------%s----",chromosome.getWeightedObjective(),chromosome.getID()));
FileHelper.writeLogFile(String.format("KPI---%f----%f----%s----%s",chromosome.getWeightedObjective(),chromosome.getFitness(), chromosome.getID(),desc));
for (double d: chromosome.getObjectives()) {
FileHelper.writeLogFile(String.format(" KPI---%f-------",d));
}
......
......@@ -371,7 +371,7 @@ if(finishedOrder==null||finishedOrder.size()==0)
int preTime = machineOption.getPreTime();
int setupTime = calculateSetupTime(chromosome.getResult(), operation, machine, machineOption);
FileHelper.writeLogFile (" "+operation.getGroupId()+" : "+operation.getId()+",处理时间: " + processingTime + ", 后处理: " + teardownTime +
FileHelper.writeLogFile(" "+operation.getGroupId()+" : "+operation.getId()+",处理时间: " + processingTime + ", 后处理: " + teardownTime +
", 前处理: " + preTime + ", 换型: " + setupTime+ ", 数量: " + operation.getQuantity()+ ", 设备: "+machine.getId());
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment