org.eclipse.viatra.dse.api.strategy.interfaces

## Interface IStrategy

- All Known Subinterfaces:
    IInitialPopulationSelector
  All Known Implementing Classes:
    BestFirstStrategy, BfsInitialSelector, BreadthFirstStrategy, DepthFirstStrategy, EvolutionaryStrategy, FixedPriorityInitialSelector, FixedPriorityStrategy, HillClimbingStrategy, RandomInitalSelector, RandomSearchStrategy

      public interface IStrategy

  This high level interface is responsible for defining basic operations of an exploration strategy.

- - ### Method Summary

    All Methods Instance Methods Abstract Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `explore()` This method explores the design space as the implementation specifies.
    `void` | `initStrategy(ThreadContext context)` Initializes the strategy with a specific `ThreadContext`.
    `void` | `interruptStrategy()` The implementation of this interface should be ready to be interrupted.

- - ### Method Detail

    - #### initStrategy

          void initStrategy(ThreadContext context)

      Initializes the strategy with a specific `ThreadContext`.
      Parameters:
        `context` - The context.

    - #### explore

          void explore()

      This method explores the design space as the implementation specifies. It will be called only once, hence the exploration loop is run by the implementation. The termination condition is also specified by the implementation and when it returns the exploration thread will be disposed.

    - #### interruptStrategy

          void interruptStrategy()

      The implementation of this interface should be ready to be interrupted. If this method is called, the `explore()` method should return ASAP. This method is also called by the `SolutionStore` class if enough solutions are found.