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

遗传算法-优化

parent d4ace4ca
...@@ -97,10 +97,10 @@ public class GeneticAlgorithm { ...@@ -97,10 +97,10 @@ public class GeneticAlgorithm {
// .orElse(null); // .orElse(null);
WriteKpis(fronts,"初始"); WriteKpis(fronts,"初始");
best = fronts.get(0).stream() best = fronts.get(0).stream()
.sorted((c1, c2) -> Double.compare(c1.getWeightedObjective(), c2.getWeightedObjective())) .sorted((c1, c2) -> Double.compare(c2.getWeightedObjective(), c1.getWeightedObjective()))
.findFirst() .findFirst()
.orElse(null); .orElse(null);
WriteKpi(best); WriteKpi(best,"最大");
double bestFitness=best.getWeightedObjective(); double bestFitness=best.getWeightedObjective();
int Iteration=0; int Iteration=0;
// 步骤2:迭代进化 // 步骤2:迭代进化
...@@ -184,11 +184,11 @@ public class GeneticAlgorithm { ...@@ -184,11 +184,11 @@ public class GeneticAlgorithm {
fronts = _nsgaIIUtils.parallelFastNonDominatedSort(population); fronts = _nsgaIIUtils.parallelFastNonDominatedSort(population);
WriteKpis(fronts,String.valueOf(iter)); WriteKpis(fronts,String.valueOf(iter));
best = fronts.get(0).stream() best = fronts.get(0).stream()
.sorted((c1, c2) -> Double.compare(c1.getWeightedObjective(), c2.getWeightedObjective())) .sorted((c1, c2) -> Double.compare(c2.getWeightedObjective(), c1.getWeightedObjective()))
.findFirst() .findFirst()
.orElse(null); .orElse(null);
WriteKpi(best); WriteKpi(best,"最大");
if(bestFitness>best.getWeightedObjective()) if(bestFitness<best.getWeightedObjective())
{ {
bestFitness=best.getWeightedObjective(); bestFitness=best.getWeightedObjective();
...@@ -228,14 +228,14 @@ public class GeneticAlgorithm { ...@@ -228,14 +228,14 @@ public class GeneticAlgorithm {
FileHelper.writeLogFile(String.format("KPI---%s--------%d----",index,i)); FileHelper.writeLogFile(String.format("KPI---%s--------%d----",index,i));
for (Chromosome chromosome:fronts.get(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()) { for (double d: chromosome.getObjectives()) {
FileHelper.writeLogFile(String.format(" KPI---%f-------",d)); FileHelper.writeLogFile(String.format(" KPI---%f-------",d));
} }
......
...@@ -371,7 +371,7 @@ if(finishedOrder==null||finishedOrder.size()==0) ...@@ -371,7 +371,7 @@ if(finishedOrder==null||finishedOrder.size()==0)
int preTime = machineOption.getPreTime(); int preTime = machineOption.getPreTime();
int setupTime = calculateSetupTime(chromosome.getResult(), operation, machine, machineOption); 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()); ", 前处理: " + 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