Skip to main content

Notice: This Wiki is now read only and edits are no longer possible. Please see: https://gitlab.eclipse.org/eclipsefdn/helpdesk/-/wikis/Wiki-shutdown-plan for the plan.

Jump to: navigation, search

Difference between revisions of "VIATRA/DSE/UserGuide/Strategy"

< VIATRA‎ | DSE
(Using the Strategy class)
(Using the Strategy class)
Line 1: Line 1:
= Using the Strategy class =
+
= Exploration strategies =
 
+
In this section the components of the <code>Strategy</code> class are explained including the following four interfaces and its built in implementations:
+
* <code>ICheckConstraints</code>
+
* <code>INextTransition</code>
+
 
+
Its only responsibility is the call delegation to the four interfaces. Implementation of these interfaces can be set via simple set methods. The only exception is the <code>INextTransition</code> interface which is a required parameter in the constructor.
+
 
+
== ICheckConstraints ==
+
 
+
This interface has only one method and it is responsible for deciding whether the current state satisfies the global constraints returning true if the answer is yes:
+
 
+
<source lang="java">
+
boolean checkConstraints(ThreadContext context);
+
</source>
+
 
+
This method called every time a new state is traversed and if it returns false the current state will be marked as "shouldn't explore further" for the traversal strategy. Default implementation of this interface is the <code>CheckAllConstraints</code> class, which simply checks all the given constraints and return false if at least one constraint is failed to be satisfied.
+
 
+
Override this implementation if the "AND" logic between the constraints is not suitable or a global constraint cannot be defined using IncQuery.
+
 
+
 
+
== INextTransition ==
+

Revision as of 11:28, 6 February 2015

Exploration strategies

Back to the top