Class ATCS

  • All Implemented Interfaces:
    ConstructiveHeuristic<Permutation>

    public final class ATCS
    extends WeightedShortestProcessingTime

    This is an implementation of the ATCS (Apparent Tardiness Cost with Setups) heuristic. ATCS is defined as: h(j) = (w[j]/p[j]) exp( -max(0,d[j] - T - p[j]) / (k1 p̄) ) exp( -s[i][j] / (k2 s̄)), where w[j] is the weight of job j, p[j] is its processing time, d[j] is the job's due date, T is the current time, and s[i][j] is any setup time of the job if it follows job i. The k1 and k2 are parameters that can be tuned based on problem instance characteristics, p̄ is the average processing time of all jobs, and s̄ is the average setup time of all jobs. The p̄ and s̄ are computed once at the start. For a version of the heuristic that dynamically updates these, see the DynamicATCS class.

    The constant MIN_H defines the minimum value the heuristic will return, preventing h(j)=0 in support of stochastic sampling algorithms for which h(j)=0 is problematic. This implementation returns max( MIN_H, h(j)), where MIN_H is a small non-zero value.