Package owl.automaton

Class AbstractMemoizingAutomaton<S,​A extends EmersonLeiAcceptance>

    • Method Detail

      • memoizingAutomaton

        public static <S,​A extends EmersonLeiAcceptanceAbstractMemoizingAutomaton<S,​A> memoizingAutomaton​(Automaton<S,​A> automaton)
        Wrap any automaton into a MemoizingAutomaton to make use of the internal caching mechanism and to guarantee immutability after full exploration. The reference to the backing automaton is dropped once the automaton is completely explored.
        Type Parameters:
        S - foo
        A - bar
        Parameters:
        automaton - the automaton
        Returns:
        a caching instance.
      • edgeTree

        public final MtBdd<Edge<S>> edgeTree​(S state)
        Description copied from interface: Automaton
        Returns a decision-tree with nodes labelled by literals and sets of edges as leaves.
        Specified by:
        edgeTree in interface Automaton<S,​A extends EmersonLeiAcceptance>
        Parameters:
        state - The state.
        Returns:
        A tree.
      • edgeMap

        public final Map<Edge<S>,​BddSet> edgeMap​(S state)
        Description copied from interface: Automaton
        Returns a mapping from all outgoing edges to their valuations of the specified state.
        Specified by:
        edgeMap in interface Automaton<S,​A extends EmersonLeiAcceptance>
        Parameters:
        state - The state.
        Returns:
        All labelled edges of the state.
      • edge

        @Nullable
        public final Edge<S> edge​(S state,
                                  BitSet valuation)
        Description copied from interface: Automaton
        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 Automaton.edges(Object, BitSet) method.

        Specified by:
        edge in interface Automaton<S,​A extends EmersonLeiAcceptance>
        Parameters:
        state - The starting state of the transition.
        valuation - The valuation.
        Returns:
        A successor edge or null if none.
        See Also:
        Automaton.edgeMap(Object)
      • edges

        public final Set<Edge<S>> edges​(S state,
                                        BitSet valuation)
        Description copied from interface: Automaton
        Returns the successor edges of the specified state under the given valuation.
        Specified by:
        edges in interface Automaton<S,​A extends EmersonLeiAcceptance>
        Parameters:
        state - The starting state of the transition.
        valuation - The valuation.
        Returns:
        The successor edges, possibly empty.
      • edges

        public final Set<Edge<S>> edges​(S state)
        Description copied from interface: Automaton
        Returns all successor edges of the specified state under any valuation.
        Specified by:
        edges in interface Automaton<S,​A extends EmersonLeiAcceptance>
        Parameters:
        state - The starting state of the edges.
        Returns:
        The set of edges originating from state
      • successor

        @Nullable
        public final S successor​(S state,
                                 BitSet valuation)
        Description copied from interface: Automaton
        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 successors() method.

        Specified by:
        successor in interface Automaton<S,​A extends EmersonLeiAcceptance>
        Parameters:
        state - The starting state of the transition.
        valuation - The valuation.
        Returns:
        A successor or null if none.
      • successors

        public final Set<S> successors​(S state,
                                       BitSet valuation)
        Description copied from interface: Automaton
        Returns the successors of the specified state under the given valuation.
        Specified by:
        successors in interface Automaton<S,​A extends EmersonLeiAcceptance>
        Parameters:
        state - The starting state of the transition.
        valuation - The valuation.
        Returns:
        The successor set.
      • successors

        public final Set<S> successors​(S state)
        Description copied from interface: Automaton
        Returns all successors of the specified state.
        Specified by:
        successors in interface Automaton<S,​A extends EmersonLeiAcceptance>
        Parameters:
        state - The starting state of the transition.
        Returns:
        The successor set.
      • factory

        public final BddSetFactory factory()
        Description copied from interface: Automaton
        Returns the backing engine for the symbolic representation of edges. Only this engine might be used for the access to edges.
        Specified by:
        factory in interface Automaton<S,​A extends EmersonLeiAcceptance>
        Returns:
        The symbolic engine used to generate BddSets.
      • initialStates

        public final Set<S> initialStates()
        Description copied from interface: Automaton
        Returns the set of initial states, which can potentially be empty.
        Specified by:
        initialStates in interface Automaton<S,​A extends EmersonLeiAcceptance>
        Returns:
        The set of initial states.
      • states

        public final Set<S> states()
        Description copied from interface: Automaton
        The set of all from the initial states reachable states in this automaton.
        Specified by:
        states in interface Automaton<S,​A extends EmersonLeiAcceptance>
        Returns:
        All reachable states
      • edgeTreeImpl

        protected abstract MtBdd<Edge<S>> edgeTreeImpl​(S state)
      • explorationCompleted

        protected void explorationCompleted()