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.heuristic.selector.value.decorator
Class ProbabilityValueSelector

    java.lang.Object
      org.drools.planner.core.heuristic.selector.AbstractSelector
          org.drools.planner.core.heuristic.selector.value.AbstractValueSelector
              org.drools.planner.core.heuristic.selector.value.decorator.ProbabilityValueSelector

All Implemented Interfaces:
  Iterable<Object>, EventListener, SelectionCacheLifecycleListener, Selector, ValueSelector, SolverPhaseLifecycleListener, SolverLifecycleListener

    public class ProbabilityValueSelector

extends AbstractValueSelector
implements SelectionCacheLifecycleListener

Field Summary
`protected NavigableMap<Double,Object>` | `cachedEntityMap`
`protected SelectionCacheType` | `cacheType`
`protected ValueSelector` | `childValueSelector`
`protected double` | `probabilityWeightTotal`
`protected SelectionProbabilityWeightFactory` | `valueProbabilityWeightFactory`

Fields inherited from class org.drools.planner.core.heuristic.selector.AbstractSelector
`logger, solverPhaseLifecycleSupport, workingRandom`

Constructor Summary
`ProbabilityValueSelector(ValueSelector childValueSelector, SelectionCacheType cacheType, SelectionProbabilityWeightFactory valueProbabilityWeightFactory)`

Method Summary
`void` | `constructCache(DefaultSolverScope solverScope)`
`void` | `disposeCache(DefaultSolverScope solverScope)`
`long` | `getSize()` A random JIT `Selector` with `Selector.isNeverEnding()` true should return a size as if it would be able to return each distinct element only once, because the size can be used in `SelectionProbabilityWeightFactory`.
`PlanningVariableDescriptor` | `getVariableDescriptor()`
`boolean` | `isContinuous()` If true, then `Selector.isNeverEnding()` is also true.
`boolean` | `isNeverEnding()` Is true if `Selector.isContinuous()` is true or if this selector is in random order (for most cases).
`ValueIterator` | `iterator()`
`String` | `toString()`

Methods inherited from class org.drools.planner.core.heuristic.selector.AbstractSelector
`phaseEnded, phaseStarted, solvingEnded, solvingStarted, stepEnded, stepStarted`

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

Methods inherited from interface org.drools.planner.core.phase.event.SolverPhaseLifecycleListener
`phaseEnded, phaseStarted, stepEnded, stepStarted`

Methods inherited from interface org.drools.planner.core.solver.event.SolverLifecycleListener
`solvingEnded, solvingStarted`

Field Detail

### childValueSelector

    protected final ValueSelector childValueSelector

### cacheType

    protected final SelectionCacheType cacheType

### valueProbabilityWeightFactory

    protected final SelectionProbabilityWeightFactory valueProbabilityWeightFactory

### cachedEntityMap

    protected NavigableMap<Double,Object> cachedEntityMap

### probabilityWeightTotal

    protected double probabilityWeightTotal

Constructor Detail

### ProbabilityValueSelector

    public ProbabilityValueSelector(ValueSelector childValueSelector,
                                    SelectionCacheType cacheType,
                                    SelectionProbabilityWeightFactory valueProbabilityWeightFactory)

Method Detail

### constructCache

    public void constructCache(DefaultSolverScope solverScope)

  Specified by:
    `constructCache` in interface `SelectionCacheLifecycleListener`

### disposeCache

    public void disposeCache(DefaultSolverScope solverScope)

  Specified by:
    `disposeCache` in interface `SelectionCacheLifecycleListener`

### getVariableDescriptor

    public PlanningVariableDescriptor getVariableDescriptor()

  Specified by:
    `getVariableDescriptor` in interface `ValueSelector`
  Returns:
    never null

### isContinuous

    public boolean isContinuous()

  Description copied from interface: `Selector`
  If true, then `Selector.isNeverEnding()` is also true.

  Specified by:
    `isContinuous` in interface `Selector`
  Returns:
    true if any of the value ranges are continuous (as in for example every double value between 1.2 and 1.4)

### isNeverEnding

    public boolean isNeverEnding()

  Description copied from interface: `Selector`
  Is true if `Selector.isContinuous()` is true or if this selector is in random order (for most cases). Is never true when this selector is in shuffled order (which is less scalable but more exact).

  Specified by:
    `isNeverEnding` in interface `Selector`
  Returns:
    true if the `Iterator.hasNext()` of the `Iterator` created by `Iterable.iterator()` never returns false.

### getSize

    public long getSize()

  Description copied from interface: `Selector`
  A random JIT `Selector` with `Selector.isNeverEnding()` true should return a size as if it would be able to return each distinct element only once, because the size can be used in `SelectionProbabilityWeightFactory`.

  Specified by:
    `getSize` in interface `Selector`
  Returns:
    the approximate number of elements generated by this `Selector`, always >= 0

### iterator

    public ValueIterator iterator()

  Specified by:
    `iterator` in interface `Iterable<Object>`
  Specified by:
    `iterator` in interface `ValueSelector`

### toString

    public String toString()

  Overrides:
    `toString` in class `Object`

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-2012 JBoss by Red Hat. All Rights Reserved.