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

es.urjc.etsii.grafo.services.TimeLimitCalculator Maven / Gradle / Ivy

package es.urjc.etsii.grafo.services;

import es.urjc.etsii.grafo.algorithms.Algorithm;
import es.urjc.etsii.grafo.annotations.InheritedComponent;
import es.urjc.etsii.grafo.io.Instance;
import es.urjc.etsii.grafo.solution.Solution;

/**
 * Time limit
 * @param  Solution class
 * @param  Instance class
 */
@InheritedComponent
public abstract class TimeLimitCalculator, I extends Instance> {

    /**
     * Calculate timelimit in milliseconds, can be customized per instance and algorithm
     * @param instance current instance being solved
     * @param algorithm algorithm that is going to be executed
     */
    public abstract long timeLimitInMillis(I instance, Algorithm algorithm);
}