YamlStatistics mostly implemented.

This commit is contained in:
Fabian Becker 2014-11-13 18:22:14 +01:00
parent c3eddfbee4
commit 2e1f862718

View File

@ -20,6 +20,7 @@ import java.io.IOException;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.LinkedHashMap; import java.util.LinkedHashMap;
import java.util.List; import java.util.List;
import java.util.Map;
import java.util.logging.Logger; import java.util.logging.Logger;
/** /**
@ -67,27 +68,40 @@ public class Main {
final class YamlStatistics implements InterfaceStatistics { final class YamlStatistics implements InterfaceStatistics {
private static final Logger LOGGER = Logger.getLogger(YamlStatistics.class.getName()); private static final Logger LOGGER = Logger.getLogger(YamlStatistics.class.getName());
private InterfaceStatisticsParameters statisticsParameters; private InterfaceStatisticsParameters statisticsParameters;
private List<LinkedHashMap<String, Object>> runs = new ArrayList<>(); private List<LinkedHashMap<String, Object>> runs;
private LinkedHashMap<String, Object> currentRun;
private ArrayList<Map<String, Object>> currentGenerations;
private InterfaceOptimizationParameters currentParameters;
private int currentGeneration;
public YamlStatistics(InterfaceStatisticsParameters statisticsParameters) { public YamlStatistics(InterfaceStatisticsParameters statisticsParameters) {
super(); super();
this.statisticsParameters = statisticsParameters; this.statisticsParameters = statisticsParameters;
this.runs = new ArrayList<>(statisticsParameters.getMultiRuns());
} }
@Override @Override
public void startOptimizationPerformed(String infoString, int runNumber, InterfaceOptimizationParameters params, List<InterfaceAdditionalPopulationInformer> informerList) { public void startOptimizationPerformed(String infoString, int runNumber, InterfaceOptimizationParameters params, List<InterfaceAdditionalPopulationInformer> informerList) {
this.currentRun = new LinkedHashMap<>();
this.currentRun.put("name", infoString);
this.currentRun.put("runNumber", runNumber + 1);
this.currentGenerations = new ArrayList<>();
this.currentGeneration = 0;
this.currentParameters = params;
} }
@Override @Override
public void stopOptimizationPerformed(boolean normal, String stopMessage) { public void stopOptimizationPerformed(boolean normal, String stopMessage) {
this.currentRun.put("stopMessage", stopMessage);
this.currentRun.put("totalFunctionCalls", this.currentParameters.getOptimizer().getPopulation().getFunctionCalls());
this.currentRun.put("generations", currentGenerations);
this.runs.add(currentRun);
} }
@Override @Override
public void addDataListener(InterfaceStatisticsListener listener) { public void addDataListener(InterfaceStatisticsListener listener) {
// We don't support that.
} }
@Override @Override
@ -97,7 +111,7 @@ final class YamlStatistics implements InterfaceStatistics {
@Override @Override
public void addTextListener(InterfaceTextListener listener) { public void addTextListener(InterfaceTextListener listener) {
// We don't support that.
} }
@Override @Override
@ -111,8 +125,14 @@ final class YamlStatistics implements InterfaceStatistics {
} }
@Override @Override
public void createNextGenerationPerformed(PopulationInterface Pop, InterfaceOptimizer opt, List<InterfaceAdditionalPopulationInformer> informerList) { public void createNextGenerationPerformed(PopulationInterface pop, InterfaceOptimizer opt, List<InterfaceAdditionalPopulationInformer> informerList) {
LinkedHashMap<String, Object> generation = new LinkedHashMap<>();
generation.put("bestFitness", pop.getBestFitness());
generation.put("meanFitness", pop.getMeanFitness());
generation.put("functionCalls", pop.getFunctionCalls());
generation.put("generation", currentGeneration);
this.currentGenerations.add(generation);
this.currentGeneration++;
} }
@Override @Override