
es.urjc.etsii.grafo.io.serializers.ResultsSerializer Maven / Gradle / Ivy
package es.urjc.etsii.grafo.io.serializers;
import es.urjc.etsii.grafo.annotations.InheritedComponent;
import es.urjc.etsii.grafo.events.types.SolutionGeneratedEvent;
import es.urjc.etsii.grafo.experiment.reference.ReferenceResultProvider;
import es.urjc.etsii.grafo.io.Instance;
import es.urjc.etsii.grafo.solution.Solution;
import java.nio.file.Path;
import java.util.List;
/**
* This class handles the transformation of the results of the experiments to a file in a specific format.
*/
@InheritedComponent
public abstract class ResultsSerializer, I extends Instance> {
/**
* Reference values from previous experiments or previous works
*/
protected final List referenceResultProviders;
/**
* Serializer config
*/
protected final AbstractResultSerializerConfig config;
/**
* Construct a result serializer given a specific configuration. {@see AbstractResultSerializerConfig.java}
*
* @param config serializer configuration
* @param referenceResultProviders reference values, previous to this solver execution, for example SOTA values.
*/
public ResultsSerializer(AbstractResultSerializerConfig config, List referenceResultProviders) {
this.config = config;
this.referenceResultProviders = referenceResultProviders;
}
/**
* Get current serializer configuration
* @return serializer configuration
*/
public AbstractResultSerializerConfig getConfig(){
return this.config;
}
/**
* Write experiment results to disk using the provided event list
* @param results Result data as a list of events.
* @param p Path where results file should be written. Could be a folder depending on the serializer.
*/
public void serializeResults(String experimentName, List> results, Path p){
this._serializeResults(experimentName, results, p);
}
/**
* This procedure serialize the list of results to a specific format and generate the resultant file in a given path
*
* @param results list of results
* @param p path
*/
protected abstract void _serializeResults(String experimentName, List> results, Path p);
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy