Class Destructive<S extends Solution<S,I>,I extends Instance>

java.lang.Object
es.urjc.etsii.grafo.shake.Destructive<S,I>
Type Parameters:
S - Solution class
I - Instance class
Direct Known Subclasses:
Destructive.NullDestructive

public abstract class Destructive<S extends Solution<S,I>,I extends Instance> extends Object
Method that destroys a solution, in part or completely.
  • Constructor Details

    • Destructive

      public Destructive()
  • Method Details

    • destroy

      public abstract S destroy(S solution, int k)
      Destroy a part of the solution. Usually involves deassigning parts of the solution to be rebuilt later by a reconstructive method
      Parameters:
      solution - original solution
      k - destroy intensity, may be ignored by the implementing class
      Returns:
      reference to the modified solution. Can be modified in placed or cloned before. // TODO clone always or not? decided by the caller?
    • nul

      public static <S extends Solution<S, I>, I extends Instance> Destructive<S,I> nul()
      Create a no operation destructive method Returns the solution immediately without executing any operation
      Type Parameters:
      S - Solution class
      I - Instance class
      Returns:
      Null destructive method