Package de.learnlib.counterexample
Class AcexLocalSuffixFinder
- java.lang.Object
-
- de.learnlib.counterexample.AcexLocalSuffixFinder
-
- All Implemented Interfaces:
LocalSuffixFinder<@Nullable Object,@Nullable Object>
public class AcexLocalSuffixFinder extends Object implements LocalSuffixFinder<@Nullable Object,@Nullable Object>
Wraps aAbstractNamedAcexAnalyzer
. This class is both responsible for adapting it to the standard LearnLibLocalSuffixFinder
interface, and for maintaining statistics. Hence, a new object of this class should be instantiated for every learning process.
-
-
Constructor Summary
Constructors Constructor Description AcexLocalSuffixFinder(AcexAnalyzer analyzer, boolean reduce, String name)
Constructor.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description static <RI,RO>
intfindSuffixIndex(AcexAnalyzer analyzer, boolean reduce, Query<RI,RO> ceQuery, AccessSequenceTransformer<RI> asTransformer, SuffixOutput<RI,RO> hypOutput, MembershipOracle<RI,RO> oracle)
<RI,RO>
intfindSuffixIndex(Query<RI,RO> ceQuery, AccessSequenceTransformer<RI> asTransformer, SuffixOutput<RI,RO> hypOutput, MembershipOracle<RI,RO> oracle)
Finds, for a given counterexample, a "split index", such that: - the part of the query word before this index leads to the state being split - the part of the query word from this index on is a suffix capable of splitting this state.String
toString()
-
-
-
Constructor Detail
-
AcexLocalSuffixFinder
public AcexLocalSuffixFinder(AcexAnalyzer analyzer, boolean reduce, String name)
Constructor.- Parameters:
analyzer
- the analyzer to be wrappedreduce
- whether to reduce counterexamples
-
-
Method Detail
-
findSuffixIndex
public <RI,RO> int findSuffixIndex(Query<RI,RO> ceQuery, AccessSequenceTransformer<RI> asTransformer, SuffixOutput<RI,RO> hypOutput, MembershipOracle<RI,RO> oracle)
Description copied from interface:LocalSuffixFinder
Finds, for a given counterexample, a "split index", such that: - the part of the query word before this index leads to the state being split - the part of the query word from this index on is a suffix capable of splitting this state.- Specified by:
findSuffixIndex
in interfaceLocalSuffixFinder<@Nullable Object,@Nullable Object>
- Type Parameters:
RI
- real input symbol class used for *this* counterexample analysisRO
- real output class used for *this* counterexample analysis- Parameters:
ceQuery
- the counterexample query that triggered the refinement. Note that the same restrictions as inLearningAlgorithm.refineHypothesis(DefaultQuery)
apply.asTransformer
- anAccessSequenceTransformer
used for access sequence transformation, if applicable.hypOutput
- interface to the output generation of the hypothesis, with the aim of comparing outputs of the hypothesis and the SUL.oracle
- interface to the System Under Learning (SUL).- Returns:
- an adequate split index, or
-1
if the counterexample could not be analyzed.
-
findSuffixIndex
public static <RI,RO> int findSuffixIndex(AcexAnalyzer analyzer, boolean reduce, Query<RI,RO> ceQuery, AccessSequenceTransformer<RI> asTransformer, SuffixOutput<RI,RO> hypOutput, MembershipOracle<RI,RO> oracle)
-
-