Object

ostrich.automata

AutomataUtils

Related Doc: package automata

Permalink

object AutomataUtils

Collection of useful functions for automata

Linear Supertypes
AnyRef, Any
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. AutomataUtils
  2. AnyRef
  3. Any
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. All

Value Members

  1. final def !=(arg0: Any): Boolean

    Permalink
    Definition Classes
    AnyRef → Any
  2. final def ##(): Int

    Permalink
    Definition Classes
    AnyRef → Any
  3. final def ==(arg0: Any): Boolean

    Permalink
    Definition Classes
    AnyRef → Any
  4. val MaxSimultaneousProduct: Int

    Permalink

    The maximum number of automata to product simultaneously

  5. def areConsistentAtomicAutomata(auts: Seq[AtomicStateAutomaton]): Boolean

    Permalink

    Check whether there is some word accepted by all of the given automata.

    Check whether there is some word accepted by all of the given automata. The automata are required to all have the same label type (though this is not checked statically)

  6. def areConsistentAutomata(auts: Seq[Automaton]): Boolean

    Permalink

    Check whether there is some word accepted by all of the given automata.

  7. final def asInstanceOf[T0]: T0

    Permalink
    Definition Classes
    Any
  8. def buildEpsilons[State, TLabel](builder: AtomicStateAutomatonBuilder[State, TLabel], epsilons: MultiMap[State, State]): Unit

    Permalink

    Continue a build by providing epsilon transitions.

    Continue a build by providing epsilon transitions. Note, adding new transitions after calling this will invalidate the results of this function

    builder

    the builder to add transitions to

    epsilons

    epsilons(q) = set of q' where there is an e-transition from q to q'

  9. def clone(): AnyRef

    Permalink
    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  10. def concat(aut1: AtomicStateAutomaton, aut2: AtomicStateAutomaton): AtomicStateAutomaton

    Permalink

    Build automaton accepting concat language of given automata aut1 and aut2 must have compatible label types

  11. def enumNext(auts: List[AtomicStateAutomaton], states: List[Any], intersectedLabels: Any): Iterator[(List[Any], Any)]

    Permalink

    Enum next states of list of automata

    Enum next states of list of automata

    All auts must have same label type, not checked statically

    auts

    the list of automata in order the states belong to

    states

    the list of states to check, states[i] must be of type auts[i].State

    intersectedLabels

    enum all next states that use a char compatible with the given label. Must be common label type of all automata, not checked statically

    returns

    list of reachable states paired with label reachable by

  12. def enumNextSets(auts: List[AtomicStateAutomaton], stateSets: List[Set[_]], intersectedLabels: Any): Iterator[(List[Set[_]], Any)]

    Permalink

    Enum next state sets of list of automata

    Enum next state sets of list of automata

    All auts must have same label type, not checked statically

    auts

    the list of automata in order the states belong to

    stateSets

    the list of sets of states to check (states of states[i] must be of type auts[i].State)

    intersectedLabels

    enum all next states that use a char compatible with the given label. Must be common label type of all automata, not checked statically

    returns

    list of reachable state sets paired with label reachable by

  13. def enumOutgoingFromSet(aut: AtomicStateAutomaton)(stateSet: Set[State], label: TLabel): Iterator[(Set[State], TLabel)]

    Permalink

    Enumerate outgoing transitions from a set of states of an automaton

    Enumerate outgoing transitions from a set of states of an automaton

    aut

    the automaton

    stateSet

    the set of states

    label

    intersect next labels within this label

    returns

    iterator over next possible sets of states and (non-empty) labels (subset construction)

  14. final def eq(arg0: AnyRef): Boolean

    Permalink
    Definition Classes
    AnyRef
  15. def equals(arg0: Any): Boolean

    Permalink
    Definition Classes
    AnyRef → Any
  16. def finalize(): Unit

    Permalink
    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( classOf[java.lang.Throwable] )
  17. def findAcceptedWord(auts: Seq[Automaton], negAuts: Seq[Automaton] = Seq()): Option[Seq[Int]]

    Permalink

    Find a word accepted by all automata and rejected by negs

  18. def findAcceptedWord(auts: Seq[Automaton], lowerBound: Option[Int], upperBound: Option[Int]): Option[Seq[Int]]

    Permalink

    Check whether there is some word of length in range accepted by all of the given automata.

    Check whether there is some word of length in range accepted by all of the given automata. None means no lower/upper bound. Requires all automata to be AtomicStateAutomaton

  19. def findAcceptedWord(auts: Seq[Automaton], len: Int): Option[Seq[Int]]

    Permalink

    Check whether there is some word of length len accepted by all of the given automata.

    Check whether there is some word of length len accepted by all of the given automata. Requires all automata to be AtomicStateAutomaton

  20. def findAcceptedWordAtomic(auts: Seq[AtomicStateAutomaton], negAuts: Seq[AtomicStateAutomaton] = Seq()): Option[Seq[Int]]

    Permalink

    Find a word (of any length) accepted by all automata

    Find a word (of any length) accepted by all automata

    The automata are required to all have the same label type (though this is not checked statically)

    negAuts optionally specifies automata that should not accept the word

  21. def findUnsatCore(oldAuts: Seq[Automaton], newAut: Automaton): Option[Seq[Automaton]]

    Permalink

    Check whether there is some word accepted by all of the given automata.

    Check whether there is some word accepted by all of the given automata. If the intersection is empty, return an unsatisfiable core. The method makes the assumption that oldAuts are consistent, but the status of the combination with newAut is unknown.

  22. final def getClass(): Class[_]

    Permalink
    Definition Classes
    AnyRef → Any
  23. def hashCode(): Int

    Permalink
    Definition Classes
    AnyRef → Any
  24. final def isInstanceOf[T0]: Boolean

    Permalink
    Definition Classes
    Any
  25. def isSingleton(aut: AtomicStateAutomaton): Option[Seq[Int]]

    Permalink
  26. def isSingleton(auts: List[AtomicStateAutomaton]): Option[Seq[Int]]

    Permalink

    Check if product automaton accepts only one word

    Check if product automaton accepts only one word

    returns

    the single word if singleton, else None (could be empty aut)

  27. def isSingletonIfAtomic(aut: Automaton): Option[Seq[Int]]

    Permalink

    Version of isSingleton that says "No" for non AtomicStateAutomaton

  28. def makeCaseInsensitive(aut: AtomicStateAutomaton): AtomicStateAutomaton

    Permalink

    Make an automaton case-insensitive.

  29. final def ne(arg0: AnyRef): Boolean

    Permalink
    Definition Classes
    AnyRef
  30. def nestAutomata(autOuter: AtomicStateAutomaton, toReplace: Char, autInner: AtomicStateAutomaton): AtomicStateAutomaton

    Permalink

    Inserts second automaton into the first replacing transitions over a give character.

    Inserts second automaton into the first replacing transitions over a give character. I.e. s1 --a--> s2 becomes s1 -->into aut / from final --> s2.

    Assumes autOuter and autInner have compatible label types

    This is approximate in that there is only a single copy of the inserted automaton, so ingoing and outgoing transitions are not mapped.

  31. final def notify(): Unit

    Permalink
    Definition Classes
    AnyRef
  32. final def notifyAll(): Unit

    Permalink
    Definition Classes
    AnyRef
  33. def product(auts: Seq[AtomicStateAutomaton]): AtomicStateAutomaton

    Permalink

    Form product of this automaton with given auts, returns a new automaton

  34. def product(auts: Seq[Automaton], minimize: Boolean = false): Automaton

    Permalink

    Product of a number of given automata The minimize argument enable minimization of the product automaton.

  35. def productWithMap(auts: Seq[AtomicStateAutomaton], minimize: Boolean = false): (AtomicStateAutomaton, Map[Any, Seq[Any]])

    Permalink

    Product of a number of given automata.

    Product of a number of given automata. Returns new automaton. Returns map from new states of result to (q0, [q1, ..., qn]) giving states of this and auts respectively

    The minimize argument enable minimization of the product automaton, which should only be used if the returned maps are not used.

  36. def replaceTransitions[A <: AtomicStateAutomaton](aut: A, a: Char, states: Iterable[(AutomataUtils.replaceTransitions.A.State, AutomataUtils.replaceTransitions.A.State)]): AtomicStateAutomaton

    Permalink

    Replace a-transitions with new a-transitions between pairs of states

  37. def reverse(aut: AtomicStateAutomaton): AtomicStateAutomaton

    Permalink

    Build automaton accepting reverse language of given automaton

  38. final def synchronized[T0](arg0: ⇒ T0): T0

    Permalink
    Definition Classes
    AnyRef
  39. def toString(): String

    Permalink
    Definition Classes
    AnyRef → Any
  40. final def wait(): Unit

    Permalink
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  41. final def wait(arg0: Long, arg1: Int): Unit

    Permalink
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  42. final def wait(arg0: Long): Unit

    Permalink
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )

Inherited from AnyRef

Inherited from Any

Ungrouped