Package owl.automaton

Interface Automaton<S,A extends OmegaAcceptance>

    • Method Detail

      • name

        default String name()
      • acceptance

        A acceptance()
        Returns the acceptance condition of this automaton.
        Returns:
        The acceptance.
      • initialStates

        Set<S> initialStates()
        Returns the set of initial states, which can potentially be empty.
        Returns:
        The set of initial states.
      • size

        default int size()
        Returns the number of reachable states of this automaton (its cardinality). If this set contains more than Integer.MAX_VALUE elements, it returns Integer.MAX_VALUE.
        Returns:
        the number of elements in this set (its cardinality)
        See Also:
        states()
      • states

        Set<S> states()
        The set of all from the initial states reachable states in this automaton.
        Returns:
        All reachable states
      • edges

        Collection<Edge<S>> edges​(S state,
                                  BitSet valuation)
        Returns the successor edges of the specified state under the given valuation.
        Parameters:
        state - The starting state of the transition.
        valuation - The valuation.
        Returns:
        The successor edges, possibly empty.
      • edge

        @Nullable
        default Edge<S> edge​(S state,
                             BitSet valuation)
        Returns the successor edge of the specified state under the given valuation. Returns some edge if there is a non-deterministic choice in this state for the specified valuation.

        If you want to check if this is the unique edge use the edges(Object, BitSet) method.

        Parameters:
        state - The starting state of the transition.
        valuation - The valuation.
        Returns:
        A successor edge or null if none.
        See Also:
        labelledEdges(Object)
      • edges

        Collection<Edge<S>> edges​(S state)
        Returns all successor edges of the specified state under any valuation.
        Parameters:
        state - The starting state of the edges.
        Returns:
        The set of edges originating from state
      • forEachEdge

        default void forEachEdge​(S state,
                                 Consumer<Edge<S>> action)
      • labelledEdges

        Collection<LabelledEdge<S>> labelledEdges​(S state)
        Returns all labelled edges of the specified state.
        Parameters:
        state - The state.
        Returns:
        All labelled edges of the state.
      • successors

        default Set<S> successors​(S state,
                                  BitSet valuation)
        Returns the successors of the specified state under the given valuation.
        Parameters:
        state - The starting state of the transition.
        valuation - The valuation.
        Returns:
        The successor set.
      • successor

        @Nullable
        default S successor​(S state,
                            BitSet valuation)
        Returns the successor of the specified state under the given valuation. Returns some state if there is a non-deterministic choice in this state for the specified valuation.

        If you want to check if this is the unique edge use the getSuccessors() method.

        Parameters:
        state - The starting state of the transition.
        valuation - The valuation.
        Returns:
        A successor or null if none.
      • successors

        Set<S> successors​(S state)
        Returns all successors of the specified state.
        Parameters:
        state - The starting state of the transition.
        Returns:
        The successor set.
      • predecessors

        default Set<S> predecessors​(S state)
        Returns the predecessors of the specified state.
        Parameters:
        state - The starting state of the transition.
        Returns:
        The predecessor set.
      • accept

        default void accept​(Automaton.HybridVisitor<S> visitor)
        Traverse all edges of the automaton using the preferred visitor style. The iteration order is not specified and can be arbitrary.
        Parameters:
        visitor - the visitor.
      • prefersLabelled

        boolean prefersLabelled()
        Indicate if the automaton implements a fast computation (e.g. symbolic) of labelled edges. Returns true, if the automaton advices to use labelledEdges(Object) and accept(LabelledEdgeVisitor) for accessing all outgoing edges of a state.
        Returns:
        The preferred traversal method.