public abstract 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<? extends 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<? extends 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<? extends 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<? extends 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<? extends 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<? extends 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<? extends 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, 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> GlobalSuffixFinder<I,D> fromLocalFinder(LocalSuffixFinder<I,D> localFinder)
LocalSuffixFinder
into a global one. This is a convenience method,
behaving like fromLocalFinder(localFinder, false).public static <I,D> List<? extends Word<I>> findMalerPnueli(Query<I,D> ceQuery)
ceQuery
- the counterexample querypublic static <I,D> List<? extends Word<I>> findShahbaz(Query<I,D> ceQuery, AccessSequenceTransformer<I> asTransformer)
ceQuery
- the counterexample queryasTransformer
- the access sequence transformerpublic static <I,D> List<? extends Word<I>> findLinear(Query<I,D> ceQuery, AccessSequenceTransformer<I> asTransformer, SuffixOutput<I,D> hypOutput, MembershipOracle<I,D> oracle, boolean allSuffixes)
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<? extends Word<I>> findLinearReverse(Query<I,D> ceQuery, AccessSequenceTransformer<I> asTransformer, SuffixOutput<I,D> hypOutput, MembershipOracle<I,D> oracle, boolean allSuffixes)
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<? extends Word<I>> findRivestSchapire(Query<I,O> ceQuery, AccessSequenceTransformer<I> asTransformer, SuffixOutput<I,O> hypOutput, MembershipOracle<I,O> oracle, boolean allSuffixes)
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 <I,D> List<? extends Word<I>> suffixesForLocalOutput(Query<I,D> ceQuery, int localSuffixIdx)
LocalSuffixFinder
into a list containing
the single distinguishing suffix.public static <I,D> List<? extends 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 GlobalSuffixFinder<Object,Object>[] values()
Copyright © 2015. All rights reserved.