示例#1
0
            private void HandleSubMenu(int index, Automaat <int> automaat)
            {
                switch (index)
                {
                case 0:
                    automaat.ViewImage();
                    break;

                case 1:
                    NdfatoDfa.MakeDfa(automaat).ViewImage();
                    break;

                case 2:
                    automaat.MinimizeHopCroft(false).ViewImage();
                    break;

                case 3:
                    automaat.GeefTaal(5).ForEach(s => Console.WriteLine(s));
                    Console.ReadLine();
                    break;

                case 4:
                    automaat.GeefNietTaal(5).ForEach(s => Console.WriteLine(s));
                    Console.ReadLine();
                    break;
                }
            }
示例#2
0
        static void TestMinimize()
        {
            char[] alphabet = { 'a', 'b' };
            var    m        = new Automaat <string>(alphabet);

            m.AddTransition(new Transition <string>("0", alphabet[0], "0"));
            m.AddTransition(new Transition <string>("0", alphabet[1], "1"));

            m.AddTransition(new Transition <string>("1", alphabet[0], "2"));
            m.AddTransition(new Transition <string>("1", alphabet[1], "1"));

            m.AddTransition(new Transition <string>("2", alphabet[0], "0"));
            m.AddTransition(new Transition <string>("2", alphabet[1], "3"));

            m.AddTransition(new Transition <string>("3", alphabet[0], "4"));
            m.AddTransition(new Transition <string>("3", alphabet[1], "1"));

            m.AddTransition(new Transition <string>("4", alphabet[0], "5"));
            m.AddTransition(new Transition <string>("4", alphabet[1], "3"));

            m.AddTransition(new Transition <string>("5", alphabet[0], "0"));
            m.AddTransition(new Transition <string>("5", alphabet[1], "3"));

            m.DefineAsStartState("0");
            m.DefineAsFinalState("2");
            m.DefineAsFinalState("4");
            Console.WriteLine("first automate:");
            m.PrintTransitions();
            var minimized = m.MinimizeHopCroft(true);

            Console.WriteLine("minimized automate:");
            minimized.PrintTransitions();

            var otherMinimized = m.MinimizeReverse();

            Console.WriteLine("other minimization:");
            otherMinimized.PrintTransitions();
        }