Class MinimizationOperations


  • public final class MinimizationOperations
    extends java.lang.Object
    Operations for minimizing automata.
    • Constructor Detail

      • MinimizationOperations

        private MinimizationOperations()
    • Method Detail

      • statesAgree

        private static boolean statesAgree​(Transition[][] transitions,
                                           boolean[][] mark,
                                           int n1,
                                           int n2)
      • addTriggers

        private static void addTriggers​(Transition[][] transitions,
                                        java.util.ArrayList<java.util.ArrayList<java.util.HashSet<MinimizationOperations.IntPair>>> triggers,
                                        int n1,
                                        int n2)
      • markPair

        private static void markPair​(boolean[][] mark,
                                     java.util.ArrayList<java.util.ArrayList<java.util.HashSet<MinimizationOperations.IntPair>>> triggers,
                                     int n1,
                                     int n2)
      • initialize

        private static <T> void initialize​(java.util.ArrayList<T> list,
                                           int size)
      • minimizeHuffman

        public static void minimizeHuffman​(Automaton a)
        Minimizes the given automaton using Huffman's algorithm.
      • minimizeBrzozowski

        public static void minimizeBrzozowski​(Automaton a)
        Minimizes the given automaton using Brzozowski's algorithm.
      • minimizeHopcroft

        public static void minimizeHopcroft​(Automaton a)
        Minimizes the given automaton using Hopcroft's algorithm.
      • minimizeValmari

        public static void minimizeValmari​(Automaton automaton)
        Minimizes the given automaton using Valmari's algorithm.
      • makeAdjacent

        private static void makeAdjacent​(int[] A,
                                         int[] F,
                                         int[] K,
                                         int nn,
                                         int mm)
      • splitTransitions

        private static void splitTransitions​(java.util.Set<State> states)