trait LazyStructured extends StructuredAlgorithm

Structured algorithms that are lazy. This changes the checkConstraintBounds method to requires all constraints to be in the range [0.0, 1.0]. Additionally, one-time and anytime versions of the algorithm are modified to use the respective lazy ranging strategies.

Linear Supertypes
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. LazyStructured
  2. StructuredAlgorithm
  3. Algorithm
  4. AnyRef
  5. Any
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. All

Abstract Value Members

  1. abstract def doKill(): Unit
    Attributes
    protected[com.cra.figaro.algorithm]
    Definition Classes
    Algorithm
  2. abstract def doResume(): Unit
    Attributes
    protected[com.cra.figaro.algorithm]
    Definition Classes
    Algorithm
  3. abstract def doStart(): Unit
    Attributes
    protected[com.cra.figaro.algorithm]
    Definition Classes
    Algorithm
  4. abstract def doStop(): Unit
    Attributes
    protected[com.cra.figaro.algorithm]
    Definition Classes
    Algorithm
  5. abstract def problemTargets: List[Element[_]]

    List of targets that should not be eliminated when solving the problem.

    List of targets that should not be eliminated when solving the problem.

    returns

    Targets for the problem.

    Definition Classes
    StructuredAlgorithm
  6. abstract def processSolutions(solutions: Map[Bounds, Solution]): Unit

    Extract the solution in a way that allows fast queries to the algorithm.

    Extract the solution in a way that allows fast queries to the algorithm. This usually involves storing some form of the solution in a variable, but the exact implementation is up to the algorithm that overrides this.

    solutions

    A map from bounds to computed solutions for those bounds. Contains one key for each of the bounds needed, according to neededBounds().

    Definition Classes
    StructuredAlgorithm
  7. abstract def rangingStrategy: RangingStrategy

    Strategy to use for ranging atomic components.

    Strategy to use for ranging atomic components. This is only called once. Note that this is called during initialization, so subclasses that override this can declare this as a lazy val or a def but not a val.

    Definition Classes
    StructuredAlgorithm
  8. abstract def refiningStrategy(): RefiningStrategy

    Strategy to use for refinement at a single iteration.

    Strategy to use for refinement at a single iteration. This may return a new strategy for each iteration.

    returns

    A refining strategy to be used for a single iteration.

    Definition Classes
    StructuredAlgorithm
  9. abstract def solvingStrategy(): SolvingStrategy

    Strategy to use for solving at a single iteration.

    Strategy to use for solving at a single iteration. This may return a new strategy for each iteration.

    returns

    A solving strategy to be used for a single iteration.

    Definition Classes
    StructuredAlgorithm

Concrete Value Members

  1. final def !=(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  2. final def ##(): Int
    Definition Classes
    AnyRef → Any
  3. final def ==(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  4. val active: Boolean
    Attributes
    protected
    Definition Classes
    Algorithm
  5. final def asInstanceOf[T0]: T0
    Definition Classes
    Any
  6. def checkConstraintBounds(): Unit

    Verify that all constraint factors satisfy the bounds needed for the correctness of this algorithm.

    Verify that all constraint factors satisfy the bounds needed for the correctness of this algorithm. This gets executed before solving. By default, this method does nothing; subclasses can override this to throw an exception if the bounds requirements are not met.

    Definition Classes
    LazyStructuredStructuredAlgorithm
  7. def cleanUp(): Unit

    Called when the algorithm is killed.

    Called when the algorithm is killed. By default, does nothing. Can be overridden.

    Definition Classes
    Algorithm
  8. def clone(): AnyRef
    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  9. val collection: ComponentCollection
    Definition Classes
    StructuredAlgorithm
  10. final def eq(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  11. def equals(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  12. def finalize(): Unit
    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( classOf[java.lang.Throwable] )
  13. final def getClass(): Class[_]
    Definition Classes
    AnyRef → Any
  14. def hashCode(): Int
    Definition Classes
    AnyRef → Any
  15. def initialize(): Unit

    Initialize the problem by adding all permanent elements to it.

    Initialize the problem by adding all permanent elements to it. This is to ensure that all top-level elements are correctly added to the top-level problem.

    Definition Classes
    StructuredAlgorithmAlgorithm
  16. def isActive: Boolean
    Definition Classes
    Algorithm
  17. final def isInstanceOf[T0]: Boolean
    Definition Classes
    Any
  18. def kill(): Unit

    Kill the algorithm so that it is inactive.

    Kill the algorithm so that it is inactive. It will no longer be able to provide answers.Throws AlgorithmInactiveException if the algorithm is not active.

    Definition Classes
    Algorithm
  19. final def ne(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  20. def neededBounds(): Set[Bounds]

    All bounds for which this algorithm needs to compute solutions.

    All bounds for which this algorithm needs to compute solutions. This is determined by looking for components that have * in their range, and have constraint factors associated with them. If such a component exists, we need both lower and upper bounds. Otherwise, just one of the bounds suffices because they are equivalent; it defaults to lower in this case.

    returns

    All bounds for which this algorithm should compute solutions.

    Definition Classes
    StructuredAlgorithm
  21. final def notify(): Unit
    Definition Classes
    AnyRef
  22. final def notifyAll(): Unit
    Definition Classes
    AnyRef
  23. val problem: Problem

    Inference problem to be solved.

    Inference problem to be solved.

    Definition Classes
    StructuredAlgorithm
  24. def resume(): Unit

    Resume the computation of the algorithm, if it has been stopped.

    Resume the computation of the algorithm, if it has been stopped. Throws AlgorithmInactiveException if the algorithm is not active.

    Definition Classes
    Algorithm
  25. def runStep(): Unit

    Run a single iteration of refinement/solving, then record the solutions.

    Run a single iteration of refinement/solving, then record the solutions.

    Definition Classes
    StructuredAlgorithm
  26. def start(): Unit

    Start the algorithm and make it active.

    Start the algorithm and make it active. After it returns, the algorithm must be ready to provide answers. Throws AlgorithmActiveException if the algorithm is already active.

    Definition Classes
    Algorithm
  27. def stop(): Unit

    Stop the algorithm from computing.

    Stop the algorithm from computing. The algorithm is still ready to provide answers after it returns. Throws AlgorithmInactiveException if the algorithm is not active.

    Definition Classes
    Algorithm
  28. final def synchronized[T0](arg0: ⇒ T0): T0
    Definition Classes
    AnyRef
  29. def toString(): String
    Definition Classes
    AnyRef → Any
  30. val universe: Universe
    Definition Classes
    StructuredAlgorithm
  31. final def wait(): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  32. final def wait(arg0: Long, arg1: Int): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  33. final def wait(arg0: Long): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )

Inherited from StructuredAlgorithm

Inherited from Algorithm

Inherited from AnyRef

Inherited from Any

Ungrouped