choco.kernel.model.constraints.automaton.FA
Class FiniteAutomaton

java.lang.Object
  extended by choco.kernel.model.constraints.automaton.FA.FiniteAutomaton
All Implemented Interfaces:
IAutomaton
Direct Known Subclasses:
CostAutomaton

public class FiniteAutomaton
extends Object
implements IAutomaton

Created by IntelliJ IDEA. User: julien Date: Mar 15, 2010 Time: 12:53:23 PM


Nested Class Summary
 
Nested classes/interfaces inherited from interface choco.kernel.model.constraints.automaton.FA.IAutomaton
IAutomaton.NonDeterministicOperationException, IAutomaton.StateNotInAutomatonException, IAutomaton.Triple
 
Field Summary
protected  gnu.trove.TIntHashSet alphabet
           
protected static gnu.trove.TIntIntHashMap charFromIntMap
           
protected static gnu.trove.TIntIntHashMap intFromCharMap
           
static Logger LOGGER
           
protected  int nbStates
           
protected  dk.brics.automaton.Automaton representedBy
           
protected  ArrayList<dk.brics.automaton.State> states
           
protected  gnu.trove.TObjectIntHashMap<dk.brics.automaton.State> stateToIndex
           
 
Constructor Summary
FiniteAutomaton()
           
FiniteAutomaton(FiniteAutomaton other)
           
FiniteAutomaton(String regexp)
           
 
Method Summary
 ArrayList<int[]> _removeSymbolFromAutomaton(int alpha)
           
 void addEpsilon(int source, int destination)
           
 int addState()
           
 void addToAlphabet(int a)
           
 void addTransition(int source, int destination, int... symbols)
           
 FiniteAutomaton clone()
           
 FiniteAutomaton complement()
           
 FiniteAutomaton complement(gnu.trove.TIntHashSet alphabet)
           
 FiniteAutomaton concatenate(FiniteAutomaton otherI)
           
 void deleteTransition(int source, int destination, int symbol)
           
 int delta(int source, int symbol)
           
 void delta(int source, int symbol, gnu.trove.TIntHashSet states)
           
 void fill(dk.brics.automaton.Automaton a, gnu.trove.TIntHashSet alphabet)
           
 gnu.trove.TIntHashSet getAlphabet()
           
static char getCharFromInt(int i)
           
 gnu.trove.TIntHashSet getFinalStates()
           
 int getInitialState()
           
static int getIntFromChar(char c)
           
 int getNbStates()
           
 int getNbSymbols()
           
 gnu.trove.TIntArrayList getOutSymbols(int source)
           
 int[] getOutSymbolsArray(int source)
           
 List<int[]> getTransitions()
           
 List<int[]> getTransitions(int state)
           
 FiniteAutomaton intersection(IAutomaton otherI)
           
 boolean isDeterministic()
           
 boolean isFinal(int state)
           
 dk.brics.automaton.Automaton makeBricsAutomaton()
           
static int max(gnu.trove.TIntHashSet hs)
           
 void minimize()
           
 void reduce()
           
 void removeDeadTransitions()
           
 void removeFromAlphabet(int a)
           
 void removeSymbolFromAutomaton(int symbol)
           
 IAutomaton repeat()
           
 IAutomaton repeat(int min)
           
 IAutomaton repeat(int min, int max)
           
 boolean run(int[] word)
           
 void setDeterministic(boolean deterministic)
           
 void setFinal(int... states)
           
 void setFinal(int state)
           
 void setInitialState(int state)
           
 void setNonFInal(int... states)
           
 void setNonFinal(int state)
           
 String toDot()
           
 void toDotty(String f)
           
 FiniteAutomaton union(FiniteAutomaton otherI)
           
 
Methods inherited from class java.lang.Object
equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

charFromIntMap

protected static gnu.trove.TIntIntHashMap charFromIntMap

intFromCharMap

protected static gnu.trove.TIntIntHashMap intFromCharMap

LOGGER

public static Logger LOGGER

representedBy

protected dk.brics.automaton.Automaton representedBy

stateToIndex

protected gnu.trove.TObjectIntHashMap<dk.brics.automaton.State> stateToIndex

states

protected ArrayList<dk.brics.automaton.State> states

alphabet

protected gnu.trove.TIntHashSet alphabet

nbStates

protected int nbStates
Constructor Detail

FiniteAutomaton

public FiniteAutomaton()

FiniteAutomaton

public FiniteAutomaton(String regexp)

FiniteAutomaton

public FiniteAutomaton(FiniteAutomaton other)
Method Detail

getIntFromChar

public static int getIntFromChar(char c)

getCharFromInt

public static char getCharFromInt(int i)

max

public static int max(gnu.trove.TIntHashSet hs)

fill

public void fill(dk.brics.automaton.Automaton a,
                 gnu.trove.TIntHashSet alphabet)

getNbStates

public int getNbStates()
Specified by:
getNbStates in interface IAutomaton

getNbSymbols

public int getNbSymbols()

addState

public int addState()

removeSymbolFromAutomaton

public void removeSymbolFromAutomaton(int symbol)

addTransition

public void addTransition(int source,
                          int destination,
                          int... symbols)

deleteTransition

public void deleteTransition(int source,
                             int destination,
                             int symbol)

delta

public int delta(int source,
                 int symbol)
          throws IAutomaton.NonDeterministicOperationException
Specified by:
delta in interface IAutomaton
Throws:
IAutomaton.NonDeterministicOperationException

delta

public void delta(int source,
                  int symbol,
                  gnu.trove.TIntHashSet states)
Specified by:
delta in interface IAutomaton

getOutSymbols

public gnu.trove.TIntArrayList getOutSymbols(int source)

getOutSymbolsArray

public int[] getOutSymbolsArray(int source)

addToAlphabet

public void addToAlphabet(int a)

removeFromAlphabet

public void removeFromAlphabet(int a)

getInitialState

public int getInitialState()
Specified by:
getInitialState in interface IAutomaton

isFinal

public boolean isFinal(int state)
Specified by:
isFinal in interface IAutomaton

setInitialState

public void setInitialState(int state)

setFinal

public void setFinal(int state)

setFinal

public void setFinal(int... states)

setNonFinal

public void setNonFinal(int state)

setNonFInal

public void setNonFInal(int... states)

run

public boolean run(int[] word)
Specified by:
run in interface IAutomaton

makeBricsAutomaton

public dk.brics.automaton.Automaton makeBricsAutomaton()

repeat

public IAutomaton repeat()

repeat

public IAutomaton repeat(int min)

repeat

public IAutomaton repeat(int min,
                         int max)

minimize

public void minimize()

reduce

public void reduce()

removeDeadTransitions

public void removeDeadTransitions()

union

public FiniteAutomaton union(FiniteAutomaton otherI)

intersection

public FiniteAutomaton intersection(IAutomaton otherI)

complement

public FiniteAutomaton complement(gnu.trove.TIntHashSet alphabet)

complement

public FiniteAutomaton complement()

concatenate

public FiniteAutomaton concatenate(FiniteAutomaton otherI)

addEpsilon

public void addEpsilon(int source,
                       int destination)

isDeterministic

public boolean isDeterministic()

setDeterministic

public void setDeterministic(boolean deterministic)

getFinalStates

public gnu.trove.TIntHashSet getFinalStates()

toDotty

public void toDotty(String f)

toDot

public String toDot()

getAlphabet

public gnu.trove.TIntHashSet getAlphabet()

getTransitions

public List<int[]> getTransitions()

getTransitions

public List<int[]> getTransitions(int state)

_removeSymbolFromAutomaton

public ArrayList<int[]> _removeSymbolFromAutomaton(int alpha)

clone

public FiniteAutomaton clone()
                      throws CloneNotSupportedException
Specified by:
clone in interface IAutomaton
Overrides:
clone in class Object
Throws:
CloneNotSupportedException


Copyright © 2012. All Rights Reserved.