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

        Set<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:
        edgeMap(Object)
      • edges

        Set<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
      • edgeMap

        Map<Edge<S>,​ValuationSet> edgeMap​(S state)
        Returns a mapping from all outgoing edges to their valuations of the specified state.
        Parameters:
        state - The state.
        Returns:
        All labelled edges of the state.
      • edgeTree

        ValuationTree<Edge<S>> edgeTree​(S state)
        Returns a decision-tree with nodes labelled by literals and sets of edges as leaves.
        Parameters:
        state - The state.
        Returns:
        A tree.
      • 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

        default 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 successor)
        Returns the predecessors of the specified successor.
        Parameters:
        successor - The successor for which the predecessor set needs to be computed.
        Returns:
        The predecessor set.
      • accept

        default void accept​(Automaton.Visitor<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.
      • preferredEdgeAccess

        List<Automaton.PreferredEdgeAccess> preferredEdgeAccess()
        Indicate if the automaton implements a fast (e.g. symbolic) computation of edges. Returns a List containing all supported PreferredEdgeAccess ordered by their preference. Meaning the element at first position (index 0) is the most preferred. Accordingly algorithms can change the use of edges(Object, BitSet), edgeMap(Object), or edgeTree(Object) for accessing all outgoing edges of a state. This information is also used to dispatch to the right visitor style.
        Returns:
        An ordered list of the traversal methods. It always contains a complete list