def onfsm_mealy_paper_example(): """ Learning a ONFSM presented in 'Learning Finite State Models of Observable Nondeterministic Systems in a Testing Context'. :return: learned ONFSM """ from random import seed seed(3) onfsm = get_benchmark_ONFSM() alph = onfsm.get_input_alphabet() sul = OnfsmSUL(onfsm) eq_oracle = UnseenOutputRandomWalkEqOracle(alph, sul, num_steps=5000, reset_prob=0.09, reset_after_cex=True) eq_oracle = UnseenOutputRandomWordEqOracle(alph, sul, num_walks=500, min_walk_len=4, max_walk_len=10) learned_onfsm = run_Lstar_ONFSM(alph, sul, eq_oracle, n_sampling=15, print_level=3) return learned_onfsm
def onfsm_mealy_paper_example(): """ Learning a ONFSM presented in 'Learning Finite State Models of Observable Nondeterministic Systems in a Testing Context'. :return: learned ONFSM """ from aalpy.SULs import OnfsmSUL from aalpy.oracles import RandomWordEqOracle from aalpy.learning_algs import run_non_det_Lstar from aalpy.utils import get_benchmark_ONFSM onfsm = get_benchmark_ONFSM() alphabet = onfsm.get_input_alphabet() sul = OnfsmSUL(onfsm) eq_oracle = RandomWordEqOracle(alphabet, sul, num_walks=500, min_walk_len=5, max_walk_len=12) learned_onfsm = run_non_det_Lstar(alphabet, sul, eq_oracle, n_sampling=1, print_level=2) return learned_onfsm
def test_non_det(self): from aalpy.SULs import OnfsmSUL from aalpy.oracles import RandomWordEqOracle, RandomWalkEqOracle from aalpy.learning_algs import run_non_det_Lstar from aalpy.utils import get_benchmark_ONFSM onfsm = get_benchmark_ONFSM() alphabet = onfsm.get_input_alphabet() for _ in range(100): sul = OnfsmSUL(onfsm) oracle = RandomWordEqOracle(alphabet, sul, num_walks=500, min_walk_len=2, max_walk_len=5) learned_onfsm = run_non_det_Lstar(alphabet, sul, oracle, n_sampling=50, print_level=0) eq_oracle = RandomWalkEqOracle(alphabet, sul, num_steps=10000, reset_prob=0.09, reset_after_cex=True) cex = eq_oracle.find_cex(learned_onfsm) if cex or len(learned_onfsm.states) != len(onfsm.states): assert False assert True