Annotation Type PlanningSolution
-
@Target(TYPE) @Retention(RUNTIME) public @interface PlanningSolution
Specifies that the class is a planning solution. A solution represents a problem and a possible solution of that problem. A possible solution does not need to be optimal or even feasible. A solution's planning variables might not be initialized (especially when delivered as a problem).A solution is mutable. For scalability reasons (to facilitate incremental score calculation), the same solution instance (called the working solution per move thread) is continuously modified. It's cloned to recall the best solution.
Each planning solution must have exactly 1
PlanningScore
property.Each planning solution must have at least 1
PlanningEntityCollectionProperty
orPlanningEntityProperty
property.Each planning solution is recommended to have 1
ConstraintConfigurationProvider
property too.Each planning solution used with Drools score calculation must have at least 1
ProblemFactCollectionProperty
orProblemFactProperty
property.The class should have a public no-arg constructor, so it can be cloned (unless the
solutionCloner()
is specified).
-
-
Optional Element Summary
Optional Elements Modifier and Type Optional Element Description AutoDiscoverMemberType
autoDiscoverMemberType
Enable reflection through the members of the class to automatically assumePlanningScore
,PlanningEntityCollectionProperty
,PlanningEntityProperty
,ProblemFactCollectionProperty
,ProblemFactProperty
andConstraintConfigurationProvider
annotations based on the member type.LookUpStrategyType
lookUpStrategyType
Class<? extends SolutionCloner>
solutionCloner
Overrides the defaultSolutionCloner
to implement a customPlanningSolution
cloning implementation.
-
-
-
Element Detail
-
autoDiscoverMemberType
AutoDiscoverMemberType autoDiscoverMemberType
Enable reflection through the members of the class to automatically assumePlanningScore
,PlanningEntityCollectionProperty
,PlanningEntityProperty
,ProblemFactCollectionProperty
,ProblemFactProperty
andConstraintConfigurationProvider
annotations based on the member type.- Returns:
- never null
- Default:
- org.optaplanner.core.api.domain.autodiscover.AutoDiscoverMemberType.NONE
-
-
-
solutionCloner
Class<? extends SolutionCloner> solutionCloner
Overrides the defaultSolutionCloner
to implement a customPlanningSolution
cloning implementation.If this is not specified, then the default reflection-based
SolutionCloner
is used, so you don't have to worry about it.- Returns:
PlanningSolution.NullSolutionCloner
when it is null (workaround for annotation limitation)
- Default:
- org.optaplanner.core.api.domain.solution.PlanningSolution.NullSolutionCloner.class
-
-
-
lookUpStrategyType
LookUpStrategyType lookUpStrategyType
- Returns:
- never null
- Default:
- org.optaplanner.core.api.domain.lookup.LookUpStrategyType.PLANNING_ID_OR_NONE
-
-