Example #1
0
        private SingleMeasurementResult(Automaton <BDD> originalAutomaton, PDLPred generatedFormula, Automaton <BDD> generatedAutomaton, HashSet <char> alphabet)
        {
            this.generatedFormula = generatedFormula;
            CharSetSolver solver = new CharSetSolver();

            DFAEditScript editScript = DFAEditDistance.GetDFAOptimalEdit(originalAutomaton, generatedAutomaton, alphabet, solver, 100, new System.Text.StringBuilder());

            if (editScript != null)
            {
                this.editDistance = editScript.script.Count;
            }
            else
            {
                this.editDistance = int.MaxValue;
            }
            this.densityDiff = DFADensity.GetDFADifferenceRatio(originalAutomaton, generatedAutomaton, alphabet, solver);
        }
Example #2
0
        public void TestMethod1()
        {
            var         solver = new CharSetSolver(BitWidth.BV64);
            List <char> alph   = new List <char> {
                'a', 'b'
            };
            HashSet <char> al = new HashSet <char>(alph);

            PDLPred phi1 = new PDLContains("b");
            var     dfa1 = phi1.GetDFA(al, solver);

            PDLPred phi2 = new PDLModSetEq(new PDLPredSet("x", new PDLAtPos('b', new PDLPosVar("x"))), 2, 1);
            var     dfa2 = phi2.GetDFA(al, solver);

            StringBuilder sb = new StringBuilder();

            DFAEditDistance.GetDFAOptimalEdit(dfa1, dfa2, al, solver, 3000, sb);
            Console.WriteLine(sb);
        }