Class IncrementalPCDFADAGBuilder<I>
- java.lang.Object
-
- net.automatalib.incremental.dfa.AbstractIncrementalDFABuilder<I>
-
- net.automatalib.incremental.dfa.dag.IncrementalPCDFADAGBuilder<I>
-
- Type Parameters:
I
- input symbol class
- All Implemented Interfaces:
SupportsGrowingAlphabet<I>
,InputAlphabetHolder<I>
,IncrementalDFABuilder<I>
,IncrementalConstruction<DFA<?,I>,I>
public class IncrementalPCDFADAGBuilder<I> extends AbstractIncrementalDFABuilder<I>
The prefix-closed version ofIncrementalDFADAGBuilder
. Contrary to the regular lookup semantics, where an exact response to a lookup can only be given, if the exact word has been observed before, the prefix-closed semantics behave as follows:- prefixes of previously observed accepted words will result in a
Acceptance.TRUE
response as well. - continuations of previously observed rejected words will result in a
Acceptance.FALSE
response as well.
-
-
Field Summary
-
Fields inherited from class net.automatalib.incremental.dfa.AbstractIncrementalDFABuilder
alphabetSize, inputAlphabet
-
-
Constructor Summary
Constructors Constructor Description IncrementalPCDFADAGBuilder(Alphabet<I> inputAlphabet)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
addAlphabetSymbol(I symbol)
Notifies the data structure that a new symbol should be added to the alphabet.Graph<?,?>
asGraph()
Retrieves a graph view of the current state of the construction.UniversalDTS<?,I,?,Acceptance,Void>
asTransitionSystem()
Retrieves a transition system view of the current state of the construction.@Nullable Word<I>
findSeparatingWord(DFA<?,I> target, Collection<? extends I> inputs, boolean omitUndefined)
Checks the current state of the construction against a given target model, and returns a word exposing a difference if there is one.void
insert(Word<? extends I> word, boolean accepting)
Inserts a new word into the automaton, with a given acceptance value.Acceptance
lookup(Word<? extends I> word)
Looks up the tri-state acceptance value for a given word.-
Methods inherited from class net.automatalib.incremental.dfa.AbstractIncrementalDFABuilder
getInputAlphabet
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface net.automatalib.incremental.dfa.IncrementalDFABuilder
hasDefinitiveInformation, insert
-
-
-
-
Method Detail
-
lookup
public Acceptance lookup(Word<? extends I> word)
Description copied from interface:IncrementalDFABuilder
Looks up the tri-state acceptance value for a given word.- Parameters:
word
- the word- Returns:
- the tri-state acceptance value for this word.
-
insert
public void insert(Word<? extends I> word, boolean accepting)
Description copied from interface:IncrementalDFABuilder
Inserts a new word into the automaton, with a given acceptance value.- Parameters:
word
- the word to insertaccepting
- whether this word should be marked as accepting
-
addAlphabetSymbol
public void addAlphabetSymbol(I symbol)
Description copied from interface:SupportsGrowingAlphabet
Notifies the data structure that a new symbol should be added to the alphabet. Behavior depends on the implementation:- After adding a new symbol, the symbol-related data may either be initialized with default values or undefined.
- Duplicate symbols may: (1) be handled accordingly, (2) be ignored or (3) result in an error.
GrowingAlphabet
) to handle potentially shared state across multiple instances. If the needed requirements are not met, aGrowingAlphabetNotSupportedException
can be thrown.- Specified by:
addAlphabetSymbol
in interfaceSupportsGrowingAlphabet<I>
- Overrides:
addAlphabetSymbol
in classAbstractIncrementalDFABuilder<I>
- Parameters:
symbol
- the symbol to add to the alphabet.
-
findSeparatingWord
public @Nullable Word<I> findSeparatingWord(DFA<?,I> target, Collection<? extends I> inputs, boolean omitUndefined)
Description copied from interface:IncrementalConstruction
Checks the current state of the construction against a given target model, and returns a word exposing a difference if there is one.- Parameters:
target
- the target automaton modelinputs
- the set of input symbols to consideromitUndefined
- if this is set totrue
, then undefined transitions in thetarget
model will be interpreted as "unspecified/don't know" and omitted in the equivalence test. Otherwise, they will be interpreted in the usual manner (e.g., non-accepting sink in case of DFAs).- Returns:
- a separating word, or
null
if no difference could be found.
-
asTransitionSystem
public UniversalDTS<?,I,?,Acceptance,Void> asTransitionSystem()
Description copied from interface:IncrementalConstruction
Retrieves a transition system view of the current state of the construction. The transition system model should be backed by the construction, i.e., subsequent changes will be reflected in the transition system.- Returns:
- a transition system view on the current state of the construction
-
asGraph
public Graph<?,?> asGraph()
Description copied from interface:IncrementalConstruction
Retrieves a graph view of the current state of the construction. The graph model should be backed by the construction, i.e., subsequent changes will be reflected in the graph model.- Returns:
- a graph view on the current state of the construction
-
-