public final class GlobalSuffixFinders extends Object
GlobalSuffixFinder
Modifier and Type | Field and Description |
---|---|
static GlobalSuffixFinder<Object,Object> |
FIND_LINEAR
Adds the single suffix found by the access sequence transformation in ascending linear order.
|
static GlobalSuffixFinder<Object,Object> |
FIND_LINEAR_ALLSUFFIXES
Adds the suffix found by the access sequence transformation in ascending linear order, and all of its suffixes.
|
static GlobalSuffixFinder<Object,Object> |
FIND_LINEAR_REVERSE
Adds the single suffix found by the access sequence transformation in descending linear order.
|
static GlobalSuffixFinder<Object,Object> |
FIND_LINEAR_REVERSE_ALLSUFFIXES
Adds the suffix found by the access sequence transformation in descending linear order, and all of its suffixes.
|
static GlobalSuffixFinder<Object,Object> |
MALER_PNUELI
Adds all suffixes of the input word, as suggested by Maler & Pnueli.
|
static GlobalSuffixFinder<Object,Object> |
RIVEST_SCHAPIRE
Adds the single suffix found by the access sequence transformation using binary search.
|
static GlobalSuffixFinder<Object,Object> |
RIVEST_SCHAPIRE_ALLSUFFIXES
Adds the suffix found by the access sequence transformation using binary search, and all of its suffixes.
|
static GlobalSuffixFinder<Object,Object> |
SHAHBAZ
Adds all suffixes of the remainder of the input word, after stripping a maximal one-letter extension of an access
sequence.
|
Modifier and Type | Method and Description |
---|---|
static <I,D> List<Word<I>> |
findLinear(Query<I,D> ceQuery,
AccessSequenceTransformer<I> asTransformer,
SuffixOutput<I,D> hypOutput,
MembershipOracle<I,D> oracle,
boolean allSuffixes)
Returns the suffix (plus all of its suffixes, if
allSuffixes is true) found by the access sequence
transformation in ascending linear order. |
static <I,D> List<Word<I>> |
findLinearReverse(Query<I,D> ceQuery,
AccessSequenceTransformer<I> asTransformer,
SuffixOutput<I,D> hypOutput,
MembershipOracle<I,D> oracle,
boolean allSuffixes)
Returns the suffix (plus all of its suffixes, if
allSuffixes is true) found by the access sequence
transformation in descending linear order. |
static <I,D> List<Word<I>> |
findMalerPnueli(Query<I,D> ceQuery)
Returns all suffixes of the counterexample word as distinguishing suffixes, as suggested by Maler & Pnueli.
|
static <I,O> List<Word<I>> |
findRivestSchapire(Query<I,O> ceQuery,
AccessSequenceTransformer<I> asTransformer,
SuffixOutput<I,O> hypOutput,
MembershipOracle<I,O> oracle,
boolean allSuffixes)
Returns the suffix (plus all of its suffixes, if
allSuffixes is true) found by the binary search access
sequence transformation. |
static <I,D> List<Word<I>> |
findShahbaz(Query<I,D> ceQuery,
AccessSequenceTransformer<I> asTransformer)
Returns all suffixes of the counterexample word as distinguishing suffixes, after stripping a maximal one-letter
extension of an access sequence, as suggested by Shahbaz.
|
static <I,D> GlobalSuffixFinder<I,D> |
fromLocalFinder(LocalSuffixFinder<I,D> localFinder)
Transforms a
LocalSuffixFinder into a global one. |
static <I,D> GlobalSuffixFinder<I,D> |
fromLocalFinder(LocalSuffixFinder<I,D> localFinder,
boolean allSuffixes)
Transforms a
LocalSuffixFinder into a global one. |
static <I,D> List<Word<I>> |
suffixesForLocalOutput(Query<I,D> ceQuery,
int localSuffixIdx)
Transforms a suffix index returned by a
LocalSuffixFinder into a list containing the single
distinguishing suffix. |
static <I,D> List<Word<I>> |
suffixesForLocalOutput(Query<I,D> ceQuery,
int localSuffixIdx,
boolean allSuffixes)
Transforms a suffix index returned by a
LocalSuffixFinder into a list of distinguishing suffixes. |
static GlobalSuffixFinder<Object,Object>[] |
values() |
public static final GlobalSuffixFinder<Object,Object> MALER_PNUELI
findMalerPnueli(Query)
public static final GlobalSuffixFinder<Object,Object> SHAHBAZ
public static final GlobalSuffixFinder<Object,Object> FIND_LINEAR
public static final GlobalSuffixFinder<Object,Object> FIND_LINEAR_ALLSUFFIXES
public static final GlobalSuffixFinder<Object,Object> FIND_LINEAR_REVERSE
public static final GlobalSuffixFinder<Object,Object> FIND_LINEAR_REVERSE_ALLSUFFIXES
public static final GlobalSuffixFinder<Object,Object> RIVEST_SCHAPIRE
public static final GlobalSuffixFinder<Object,Object> RIVEST_SCHAPIRE_ALLSUFFIXES
public static <I,D> GlobalSuffixFinder<I,D> fromLocalFinder(LocalSuffixFinder<I,D> localFinder)
LocalSuffixFinder
into a global one. This is a convenience method, behaving like
fromLocalFinder(LocalSuffixFinder, boolean)
.public static <I,D> GlobalSuffixFinder<I,D> fromLocalFinder(LocalSuffixFinder<I,D> localFinder, boolean allSuffixes)
LocalSuffixFinder
into a global one. Since local suffix finders only return a single suffix,
suffix-closedness of the set of distinguishing suffixes might not be preserved. Note that for correctly
implemented local suffix finders, this does not impair correctness of the learning algorithm. However, without
suffix closedness, intermediate hypothesis models might be non-canonical, if no additional precautions are taken.
For that reasons, the allSuffixes
parameter can be specified to control whether or not the list returned
by GlobalSuffixFinder.findSuffixes(Query, AccessSequenceTransformer, SuffixOutput, MembershipOracle)
of
the returned global suffix finder should not only contain the single suffix, but also all of its suffixes,
ensuring suffix-closedness.localFinder
- the local suffix finderallSuffixes
- whether or not all suffixes of the found local suffix should be addedpublic static <I,D> List<Word<I>> suffixesForLocalOutput(Query<I,D> ceQuery, int localSuffixIdx)
LocalSuffixFinder
into a list containing the single
distinguishing suffix.public static <I,D> List<Word<I>> suffixesForLocalOutput(Query<I,D> ceQuery, int localSuffixIdx, boolean allSuffixes)
LocalSuffixFinder
into a list of distinguishing suffixes. This
list always contains the corresponding local suffix. Since local suffix finders only return a single suffix,
suffix-closedness of the set of distinguishing suffixes might not be preserved. Note that for correctly
implemented local suffix finders, this does not impair correctness of the learning algorithm. However, without
suffix closedness, intermediate hypothesis models might be non-canonical, if no additional precautions are taken.
For that reasons, the allSuffixes
parameter can be specified to control whether or not the list returned
by GlobalSuffixFinder.findSuffixes(Query, AccessSequenceTransformer, SuffixOutput, MembershipOracle)
of
the returned global suffix finder should not only contain the single suffix, but also all of its suffixes,
ensuring suffix-closedness.public static <I,D> List<Word<I>> findMalerPnueli(Query<I,D> ceQuery)
ceQuery
- the counterexample querypublic static <I,D> List<Word<I>> findShahbaz(Query<I,D> ceQuery, AccessSequenceTransformer<I> asTransformer)
ceQuery
- the counterexample queryasTransformer
- the access sequence transformerpublic static <I,D> List<Word<I>> findLinear(Query<I,D> ceQuery, AccessSequenceTransformer<I> asTransformer, SuffixOutput<I,D> hypOutput, MembershipOracle<I,D> oracle, boolean allSuffixes)
allSuffixes
is true) found by the access sequence
transformation in ascending linear order.ceQuery
- the counterexample queryasTransformer
- the access sequence transformerhypOutput
- interface to the hypothesis outputoracle
- interface to the SUL outputallSuffixes
- whether or not to include all suffixes of the found suffixLocalSuffixFinders.findLinear(Query, AccessSequenceTransformer, SuffixOutput, MembershipOracle)
public static <I,D> List<Word<I>> findLinearReverse(Query<I,D> ceQuery, AccessSequenceTransformer<I> asTransformer, SuffixOutput<I,D> hypOutput, MembershipOracle<I,D> oracle, boolean allSuffixes)
allSuffixes
is true) found by the access sequence
transformation in descending linear order.ceQuery
- the counterexample queryasTransformer
- the access sequence transformerhypOutput
- interface to the hypothesis outputoracle
- interface to the SUL outputallSuffixes
- whether or not to include all suffixes of the found suffixLocalSuffixFinders.findLinearReverse(Query, AccessSequenceTransformer, SuffixOutput, MembershipOracle)
public static <I,O> List<Word<I>> findRivestSchapire(Query<I,O> ceQuery, AccessSequenceTransformer<I> asTransformer, SuffixOutput<I,O> hypOutput, MembershipOracle<I,O> oracle, boolean allSuffixes)
allSuffixes
is true) found by the binary search access
sequence transformation.ceQuery
- the counterexample queryasTransformer
- the access sequence transformerhypOutput
- interface to the hypothesis outputoracle
- interface to the SUL outputallSuffixes
- whether or not to include all suffixes of the found suffixLocalSuffixFinders.findRivestSchapire(Query, AccessSequenceTransformer, SuffixOutput, MembershipOracle)
public static GlobalSuffixFinder<Object,Object>[] values()
Copyright © 2019. All rights reserved.