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

## org.drools.planner.core.solution
Interface Solution<S extends Score>

    public interface Solution<S extends Score>

A Solution represents a problem and a possible solution of that problem. A possible solution does not need to optimal or even feasible. A Solution does not even have to be initialized with a possible solution.

A Solution is mutable. Drools Planner will continuously modify the same solution for scalability reasons and clone it to recall the best solution.

Method Summary
`Solution<S>` | `cloneSolution()` Called by the `Solver` when the solution needs to be cloned, for example to store a clone of the current solution as the best solution.
`Collection<? extends Object>` | `getProblemFacts()` Called by the `Solver` when the solution needs to be asserted into an empty WorkingMemory.
`S` | `getScore()` Returns the Score of this Solution.
`void` | `setScore(S score)` Called by the `Solver` when the Score of this Solution has been calculated.

Method Detail

### getScore

    S getScore()

  Returns the Score of this Solution.

  Returns:
    null if the Solution is uninitialized or the last calculated Score is dirty the new Score has not yet been recalculated

### setScore

    void setScore(S score)

  Called by the `Solver` when the Score of this Solution has been calculated.

  Parameters:
    `score` - null if the Solution has changed and the new Score has not yet been recalculated

### getProblemFacts

    Collection<? extends Object> getProblemFacts()

  Called by the `Solver` when the solution needs to be asserted into an empty WorkingMemory. These facts can be used by the score rules. Do not include the planning entities as facts: they are automatically inserted into the WorkingMemory if and only if they are initialized. When they are initialized later, they are also automatically inserted.

  Returns:
    never null (although an empty collection is allowed), all the facts of this solution except for the planning entities

### cloneSolution

    Solution<S> cloneSolution()

  Called by the `Solver` when the solution needs to be cloned, for example to store a clone of the current solution as the best solution.

  A clone must also shallow copy the score.

  Returns:
    never null, a clone of which the properties that change during solving are deep cloned

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

Copyright © 2001-2011 JBoss by Red Hat. All Rights Reserved.