Class EarlyExitEQOracle<I,O>
java.lang.Object
de.learnlib.oracle.equivalence.mealy.EarlyExitEQOracle<I,O>
- Type Parameters:
I- input symbol typeO- output symbol type
- All Implemented Interfaces:
EquivalenceOracle<MealyMachine<?,,I, ?, O>, I, Word<O>> EquivalenceOracle.MealyEquivalenceOracle<I,O>
public class EarlyExitEQOracle<I,O>
extends Object
implements EquivalenceOracle.MealyEquivalenceOracle<I,O>
This
EquivalenceOracle.MealyEquivalenceOracle evaluates test words generated by the given TestWordGenerator on a
symbol-by-symbol basis (via the provided AdaptiveMembershipOracle) and returns a counterexample on the first
observed mismatch. It can be used to improve the symbol performance of equivalence oracles which tend to generate
long testing sequences.
Note that this implementation does not support query parallelization via batching, even if the provided
AdaptiveMembershipOracle does.
-
Nested Class Summary
Nested classes/interfaces inherited from interface de.learnlib.oracle.EquivalenceOracle
EquivalenceOracle.DFAEquivalenceOracle<I>, EquivalenceOracle.MealyEquivalenceOracle<I,O>, EquivalenceOracle.MMLTEquivalenceOracle<I, O>, EquivalenceOracle.MooreEquivalenceOracle<I, O> -
Constructor Summary
ConstructorsConstructorDescriptionEarlyExitEQOracle(AdaptiveMembershipOracle<I, O> oracle, TestWordGenerator<? super MealyMachine<?, I, ?, O>, I> delegate) -
Method Summary
Modifier and TypeMethodDescriptionfindCounterExample(MealyMachine<?, I, ?, O> hypothesis, Collection<? extends I> inputs) Searches for a counterexample disproving the subjected hypothesis.
-
Constructor Details
-
EarlyExitEQOracle
public EarlyExitEQOracle(AdaptiveMembershipOracle<I, O> oracle, TestWordGenerator<? super MealyMachine<?, I, ?, O>, I> delegate)
-
-
Method Details
-
findCounterExample
public @Nullable DefaultQuery<I,Word<O>> findCounterExample(MealyMachine<?, I, ?, O> hypothesis, Collection<? extends I> inputs) Description copied from interface:EquivalenceOracleSearches for a counterexample disproving the subjected hypothesis. A counterexample is query which, when performed on the SUL, yields a different output than what was predicted by the hypothesis. If no counterexample could be found (this does not necessarily mean that none exists),nullis returned.- Specified by:
findCounterExamplein interfaceEquivalenceOracle<MealyMachine<?,I, ?, O>, I, Word<O>> - Parameters:
hypothesis- the conjectureinputs- the set of inputs to consider, this should be a subset of the input alphabet of the provided hypothesis- Returns:
- a query exposing different behavior, or
nullif no counterexample could be found. In case a non-nullvalue is returned, the output field in theDefaultQuerycontains the SUL output for the respective query.
-