All Downloads are FREE. Search and download functionalities are using the official Maven repository.

es.urjc.etsii.grafo.experiment.reference.ReferenceResultProvider Maven / Gradle / Ivy

package es.urjc.etsii.grafo.experiment.reference;

import es.urjc.etsii.grafo.annotations.InheritedComponent;

/**
 * If implemented, used when comparing experiment results
 */
@InheritedComponent
public abstract class ReferenceResultProvider {

    /**
     * Empty reference result to be used when the given provider does not have a value for an instance,
     * and it is valid to have instances without reference values
     */
    public static final ReferenceResult EMPTY_REFERENCE_RESULT = new ReferenceResult();

    /**
     * Get reference f.o value for a given instance
     *
     * @param instanceName Instance name, as in Instance::getName
     * @return reference objective value for the given instance. If the instance is not solved by the given algorithm,
     * return an empty ReferenceResult
     */
    public abstract ReferenceResult getValueFor(String instanceName);

    /**
     * How would you call the source of this data? A previous paper? An exact solver?.
     * Examples: Gurobi, SOTA, PacoEtAl, etc.
     *
     * @return Name for this Provider
     */
    public abstract String getProviderName();

    @Override
    public String toString() {
        return this.getProviderName();
    }
}






© 2015 - 2025 Weber Informatics LLC | Privacy Policy