Class Automata


  • public final class Automata
    extends Object
    • Method Detail

      • invasiveMinimize

        public static <S,​I,​T,​SP,​TP,​A extends MutableDeterministic<S,​I,​T,​SP,​TP>> A invasiveMinimize​(A automaton,
                                                                                                                                                         Collection<? extends I> inputs)
      • findSeparatingWord

        public static <I> @Nullable Word<I> findSeparatingWord​(UniversalDeterministicAutomaton<?,​I,​?,​?,​?> reference,
                                                               UniversalDeterministicAutomaton<?,​I,​?,​?,​?> other,
                                                               Collection<? extends I> inputs)
        Finds a separating word for two automata. A separating word is a word that exposes a difference (differing state or transition properties, or a transition undefined in only one of the automata) between the two automata.
        Type Parameters:
        I - input symbol type
        Parameters:
        reference - the one automaton to consider
        other - the other automaton to consider
        inputs - the input symbols to consider
        Returns:
        a separating word, or null if no such word could be found.
      • findSeparatingWord

        public static <S,​I> @Nullable Word<I> findSeparatingWord​(UniversalDeterministicAutomaton<S,​I,​?,​?,​?> automaton,
                                                                       S state1,
                                                                       S state2,
                                                                       Collection<? extends I> inputs)
        Finds a separating word for two states in an automaton. A separating word is a word that exposes a difference (differing state or transition properties, or a transition undefined in only one of the paths) between the two states.
        Type Parameters:
        S - state type
        I - input symbol type
        Parameters:
        automaton - the automaton containing the states
        state1 - the one state
        state2 - the other state
        inputs - the input symbols to consider
        Returns:
        a separating word, or null if no such word could be found
      • findShortestSeparatingWord

        public static <I> @Nullable Word<I> findShortestSeparatingWord​(UniversalDeterministicAutomaton<?,​I,​?,​?,​?> reference,
                                                                       UniversalDeterministicAutomaton<?,​I,​?,​?,​?> other,
                                                                       Collection<? extends I> inputs)
        Finds a shortest separating word for two automata. A separating word is a word that exposes a difference (differing state or transition properties, or a transition undefined in only one of the automata) between the two automata.
        Type Parameters:
        I - input symbol type
        Parameters:
        reference - the one automaton to consider
        other - the other automaton to consider
        inputs - the input symbols to consider
        Returns:
        a separating word, or null if no such word could be found.
      • characterizingSet

        public static <I> List<Word<I>> characterizingSet​(UniversalDeterministicAutomaton<?,​I,​?,​?,​?> automaton,
                                                          Collection<? extends I> inputs)
        Computes a characterizing set, and returns it as a List.
        Type Parameters:
        I - input symbol type
        Parameters:
        automaton - the automaton for which to determine the characterizing set
        inputs - the input symbols to consider
        Returns:
        a list containing the characterizing words
        See Also:
        CharacterizingSets
      • stateCharacterizingSet

        public static <S,​I> List<Word<I>> stateCharacterizingSet​(UniversalDeterministicAutomaton<S,​I,​?,​?,​?> automaton,
                                                                       Collection<? extends I> inputs,
                                                                       S state)
        Computes a characterizing set for a single state, and returns it as a List.
        Type Parameters:
        S - state type
        I - input symbol type
        Parameters:
        automaton - the automaton containing the state
        inputs - the input symbols to consider
        state - the state for which to determine a characterizing set
        Returns:
        a list containing the characterizing words
        See Also:
        CharacterizingSets
      • allDefinedInputsIterator

        public static <S,​I> Iterator<TS.TransRef<S,​I,​?>> allDefinedInputsIterator​(Automaton<S,​I,​?> automaton,
                                                                                                    Iterable<? extends I> inputs)
      • hasUndefinedInput

        public static <I> boolean hasUndefinedInput​(Automaton<?,​I,​?> automaton,
                                                    Iterable<? extends I> inputs)
      • allUndefinedInputsIterator

        public static <S,​I> Iterator<TS.TransRef<S,​I,​?>> allUndefinedInputsIterator​(Automaton<S,​I,​?> automaton,
                                                                                                      Iterable<? extends I> inputs)