org.biojava.utils.automata
Class Nfa

java.lang.Object
  extended by org.biojava.utils.automata.FiniteAutomaton
      extended by org.biojava.utils.automata.Nfa
All Implemented Interfaces:
NfaBuilder

public class Nfa
extends FiniteAutomaton
implements NfaBuilder

Class for modelling non-deterministic finite automata.

This implementation has epsilon and lambda transitions. Both transitions are silent but the former is intended to be optimised away while the latter must be retained during optimisation. This is necessary to implement limited closure for the REs that one may want to build with this NFA.

Since:
1.4
Author:
David Huen

Field Summary
 
Fields inherited from class org.biojava.utils.automata.FiniteAutomaton
end, nodes, start, transitions
 
Constructor Summary
Nfa(String name, FiniteAlphabet alfa)
           
 
Method Summary
 org.biojava.utils.automata.FiniteAutomaton.Transition addEpsilonTransition(org.biojava.utils.automata.FiniteAutomaton.Node start, org.biojava.utils.automata.FiniteAutomaton.Node end)
          Add a silent optimisable transition to instance.
 org.biojava.utils.automata.FiniteAutomaton.Transition addLambdaTransition(org.biojava.utils.automata.FiniteAutomaton.Node start, org.biojava.utils.automata.FiniteAutomaton.Node end)
          Add a silent persistent transition to instance.
protected  int alphaIndex(Symbol sym)
           
 boolean containsNode(org.biojava.utils.automata.FiniteAutomaton.Node node)
           
 
Methods inherited from class org.biojava.utils.automata.FiniteAutomaton
addNode, addTransition, createNodeSet, getAutomaton, getEnd, getNodes, getStart, getTransitions, toString
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface org.biojava.utils.automata.NfaBuilder
addNode, addTransition, createNodeSet, getAutomaton, getEnd, getNodes, getStart, getTransitions, toString
 

Constructor Detail

Nfa

public Nfa(String name,
           FiniteAlphabet alfa)
Method Detail

alphaIndex

protected int alphaIndex(Symbol sym)
                  throws IllegalSymbolException
Overrides:
alphaIndex in class FiniteAutomaton
Throws:
IllegalSymbolException

containsNode

public boolean containsNode(org.biojava.utils.automata.FiniteAutomaton.Node node)

addEpsilonTransition

public org.biojava.utils.automata.FiniteAutomaton.Transition addEpsilonTransition(org.biojava.utils.automata.FiniteAutomaton.Node start,
                                                                                  org.biojava.utils.automata.FiniteAutomaton.Node end)
Add a silent optimisable transition to instance.

Specified by:
addEpsilonTransition in interface NfaBuilder

addLambdaTransition

public org.biojava.utils.automata.FiniteAutomaton.Transition addLambdaTransition(org.biojava.utils.automata.FiniteAutomaton.Node start,
                                                                                 org.biojava.utils.automata.FiniteAutomaton.Node end)
Add a silent persistent transition to instance.

Specified by:
addLambdaTransition in interface NfaBuilder