Overview | Package | Class | Use | Tree | Deprecated | Index | Help
| OptaPlanner distribution 6.2.0.Beta1
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## org.optaplanner.core.impl.solver
Class DefaultSolver

    java.lang.Object
      org.optaplanner.core.impl.solver.DefaultSolver

All Implemented Interfaces:
  Solver

    public class DefaultSolver

extends Object
implements Solver

Default implementation for `Solver`.

See Also:
  `Solver`

Field Summary
`protected BasicPlumbingTermination` | `basicPlumbingTermination`
`protected BestSolutionRecaller` | `bestSolutionRecaller`
`protected EnvironmentMode` | `environmentMode`
`protected org.slf4j.Logger` | `logger`
`protected List<Phase>` | `phaseList`
`protected RandomFactory` | `randomFactory`
`protected InnerScoreDirectorFactory` | `scoreDirectorFactory`
`protected SolverEventSupport` | `solverEventSupport`
`protected DefaultSolverScope` | `solverScope`
`protected AtomicBoolean` | `solving`
`protected Termination` | `termination`

Constructor Summary
`DefaultSolver()`

Method Summary
`void` | `addEventListener(SolverEventListener eventListener)`
`void` | `addPhaseLifecycleListener(PhaseLifecycleListener phaseLifecycleListener)`
`boolean` | `addProblemFactChange(ProblemFactChange problemFactChange)` Schedules a `ProblemFactChange` to be processed.
`Solution` | `getBestSolution()`
`BestSolutionRecaller` | `getBestSolutionRecaller()`
`EnvironmentMode` | `getEnvironmentMode()`
`List<Phase>` | `getPhaseList()`
`RandomFactory` | `getRandomFactory()`
`InnerScoreDirectorFactory` | `getScoreDirectorFactory()`
`DefaultSolverScope` | `getSolverScope()`
`long` | `getTimeMillisSpent()`
`boolean` | `isEveryProblemFactChangeProcessed()` Checks if all scheduled `ProblemFactChange`s have been processed.
`boolean` | `isSolving()` This method is thread-safe.
`boolean` | `isTerminateEarly()` This method is thread-safe.
`void` | `outerSolvingEnded(DefaultSolverScope solverScope)`
`void` | `outerSolvingStarted(DefaultSolverScope solverScope)`
`void` | `removeEventListener(SolverEventListener eventListener)`
`void` | `removePhaseLifecycleListener(PhaseLifecycleListener phaseLifecycleListener)`
`protected void` | `runPhases()`
`void` | `setBasicPlumbingTermination(BasicPlumbingTermination basicPlumbingTermination)`
`void` | `setBestSolutionRecaller(BestSolutionRecaller bestSolutionRecaller)`
`void` | `setEnvironmentMode(EnvironmentMode environmentMode)`
`void` | `setPhaseList(List<Phase> phaseList)`
`void` | `setRandomFactory(RandomFactory randomFactory)`
`void` | `setScoreDirectorFactory(InnerScoreDirectorFactory scoreDirectorFactory)`
`void` | `setTermination(Termination termination)`
`void` | `solve(Solution planningProblem)` Solves the planning problem.
`void` | `solvingEnded(DefaultSolverScope solverScope)`
`void` | `solvingStarted(DefaultSolverScope solverScope)`
`boolean` | `terminateEarly()` Notifies the solver that it should stop at its earliest convenience.

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Field Detail

### logger

    protected final transient org.slf4j.Logger logger

### solverEventSupport

    protected SolverEventSupport solverEventSupport

### environmentMode

    protected EnvironmentMode environmentMode

### randomFactory

    protected RandomFactory randomFactory

### scoreDirectorFactory

    protected InnerScoreDirectorFactory scoreDirectorFactory

### basicPlumbingTermination

    protected BasicPlumbingTermination basicPlumbingTermination

### termination

    protected Termination termination

### bestSolutionRecaller

    protected BestSolutionRecaller bestSolutionRecaller

### phaseList

    protected List<Phase> phaseList

### solving

    protected AtomicBoolean solving

### solverScope

    protected DefaultSolverScope solverScope

Constructor Detail

### DefaultSolver

    public DefaultSolver()

Method Detail

### getEnvironmentMode

    public EnvironmentMode getEnvironmentMode()

### setEnvironmentMode

    public void setEnvironmentMode(EnvironmentMode environmentMode)

### getRandomFactory

    public RandomFactory getRandomFactory()

### setRandomFactory

    public void setRandomFactory(RandomFactory randomFactory)

### getScoreDirectorFactory

    public InnerScoreDirectorFactory getScoreDirectorFactory()

  Specified by:
    `getScoreDirectorFactory` in interface `Solver`
  Returns:
    never null

### setScoreDirectorFactory

    public void setScoreDirectorFactory(InnerScoreDirectorFactory scoreDirectorFactory)

### setBasicPlumbingTermination

    public void setBasicPlumbingTermination(BasicPlumbingTermination basicPlumbingTermination)

### setTermination

    public void setTermination(Termination termination)

### getBestSolutionRecaller

    public BestSolutionRecaller getBestSolutionRecaller()

### setBestSolutionRecaller

    public void setBestSolutionRecaller(BestSolutionRecaller bestSolutionRecaller)

### getPhaseList

    public List<Phase> getPhaseList()

### setPhaseList

    public void setPhaseList(List<Phase> phaseList)

### getSolverScope

    public DefaultSolverScope getSolverScope()

### getBestSolution

    public Solution getBestSolution()

  Specified by:
    `getBestSolution` in interface `Solver`
  Returns:
    never null, but it can return the original, uninitialized `Solution` with a `Score` null.

### getTimeMillisSpent

    public long getTimeMillisSpent()

  Specified by:
    `getTimeMillisSpent` in interface `Solver`
  Returns:
    the amount of millis spent between when this solver started and ended

### isSolving

    public boolean isSolving()

  Description copied from interface: `Solver`
  This method is thread-safe.

  Specified by:
    `isSolving` in interface `Solver`
  Returns:
    true if the `Solver.solve(Solution)` method is still running.

### terminateEarly

    public boolean terminateEarly()

  Description copied from interface: `Solver`
  Notifies the solver that it should stop at its earliest convenience. This method returns immediately, but it takes an undetermined time for the `Solver.solve(Solution)` to actually return.

  This method is thread-safe.

  Specified by:
    `terminateEarly` in interface `Solver`
  Returns:
    true if successful
  See Also:
    `Solver.isTerminateEarly()`, `Future.cancel(boolean)`

### isTerminateEarly

    public boolean isTerminateEarly()

  Description copied from interface: `Solver`
  This method is thread-safe.

  Specified by:
    `isTerminateEarly` in interface `Solver`
  Returns:
    true if terminateEarly has been called since the started.
  See Also:
    `Future.isCancelled()`

### addProblemFactChange

    public boolean addProblemFactChange(ProblemFactChange problemFactChange)

  Description copied from interface: `Solver`
  Schedules a `ProblemFactChange` to be processed.

  As a side-effect, this restarts the `Solver`, effectively resetting all `Termination`s, but not `Solver.terminateEarly()`.

  This method is thread-safe. Follows specifications of `BlockingQueue.add(Object)` with by default a capacity of `Integer.MAX_VALUE`.

  Specified by:
    `addProblemFactChange` in interface `Solver`
  Parameters:
    `problemFactChange` - never null
  Returns:
    true (as specified by `Collection.add(E)`)

### isEveryProblemFactChangeProcessed

    public boolean isEveryProblemFactChangeProcessed()

  Description copied from interface: `Solver`
  Checks if all scheduled `ProblemFactChange`s have been processed.

  This method is thread-safe.

  Specified by:
    `isEveryProblemFactChangeProcessed` in interface `Solver`
  Returns:
    true if there are no `ProblemFactChange`s left to do

### solve

    public final void solve(Solution planningProblem)

  Description copied from interface: `Solver`
  Solves the planning problem. It can take minutes, even hours or days before this method returns, depending on the termination configuration. To terminate a `Solver` early, call `Solver.terminateEarly()`.

  Specified by:
    `solve` in interface `Solver`
  Parameters:
    `planningProblem` - never null, usually its planning variables are uninitialized
  See Also:
    `Solver.terminateEarly()`

### outerSolvingStarted

    public void outerSolvingStarted(DefaultSolverScope solverScope)

### solvingStarted

    public void solvingStarted(DefaultSolverScope solverScope)

### runPhases

    protected void runPhases()

### solvingEnded

    public void solvingEnded(DefaultSolverScope solverScope)

### outerSolvingEnded

    public void outerSolvingEnded(DefaultSolverScope solverScope)

### addEventListener

    public void addEventListener(SolverEventListener eventListener)

  Specified by:
    `addEventListener` in interface `Solver`
  Parameters:
    `eventListener` - never null

### removeEventListener

    public void removeEventListener(SolverEventListener eventListener)

  Specified by:
    `removeEventListener` in interface `Solver`
  Parameters:
    `eventListener` - never null

### addPhaseLifecycleListener

    public void addPhaseLifecycleListener(PhaseLifecycleListener phaseLifecycleListener)

### removePhaseLifecycleListener

    public void removePhaseLifecycleListener(PhaseLifecycleListener phaseLifecycleListener)

Overview | Package | Class | Use | Tree | Deprecated | Index | Help
| OptaPlanner distribution 6.2.0.Beta1
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

Copyright © 2006-2014 JBoss by Red Hat. All Rights Reserved.