c

# StructuredAlgorithm 

#### abstract class StructuredAlgorithm extends Algorithm

Structured algorithms that perform inference on a problem by a sequence of refining and solving steps. The algorithm runs in a single universe.

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

### Instance Constructors

1. new StructuredAlgorithm(universe: Universe, collection: ComponentCollection)

universe

Universe to which elements in the corresponding problem belong.

collection

Collection of problem components for this inference problem. Defaults to a new, empty, collection for non-recursive models.

### 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.

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()`.

7. abstract def 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`.

8. abstract def 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.

9. abstract def 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.

### 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.

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
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.

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

Inference problem to be solved.

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.

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
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( ... )