Esempio n. 1
0
 def setUp(self):
     s1 = MealyState('1')
     s2 = MealyState('2')
     s3 = MealyState('3')
     s1.add_edge('a', 'nice', s2)
     s1.add_edge('b', 'B', s1)
     s2.add_edge('a', 'nice', s3)
     s2.add_edge('b', 'back', s1)
     s3.add_edge('a', 'A', s3)
     s3.add_edge('b', 'back', s1)
     self.mm = MealyMachine(s1)
Esempio n. 2
0
# Do we need state cover or transition cover??
# TODO
def get_transition_cover_set(fsm):
    pass
    states = fsm.get_states()
    alphabet = fsm.get_alphabet()


if __name__ == "__main__":
    s1 = MealyState('1')
    s2 = MealyState('2')
    s3 = MealyState('3')
    s4 = MealyState('4')
    s5 = MealyState('5')

    s1.add_edge('a', 'nice', s2)
    s1.add_edge('b', 'nice', s3)

    s2.add_edge('a', 'nice!', s4)
    s2.add_edge('b', 'back', s1)

    s3.add_edge('a', 'nice', s4)
    s3.add_edge('b', 'back', s1)

    s4.add_edge('a', 'nice', s5)
    s4.add_edge('b', 'nice', s5)

    s5.add_edge('a', 'loop', s5)
    s5.add_edge('b', 'loop', s5)

    mm = MealyMachine(s1)
Esempio n. 3
0
import tempfile

from stmlearn.equivalencecheckers import WmethodEquivalenceChecker
from stmlearn.learners import LStarMealyLearner
from stmlearn.suls import MealyState, MealyMachine
from stmlearn.teachers import Teacher

# Set up an example mealy machine
s1 = MealyState('1')
s2 = MealyState('2')
s3 = MealyState('3')

s1.add_edge('a', 'nice', s2)
s1.add_edge('b', 'B', s1)
s2.add_edge('a', 'nice', s3)
s2.add_edge('b', 'back', s1)
s3.add_edge('a', 'A', s3)
s3.add_edge('b', 'back', s1)

mm = MealyMachine(s1)
mm.render_graph(tempfile.mktemp('.gv'))

# Use the W method equivalence checker
eqc = WmethodEquivalenceChecker(mm)

teacher = Teacher(mm, eqc)

# We are learning a mealy machine
learner = LStarMealyLearner(teacher)

hyp = learner.run()
Esempio n. 4
0
    def setUp(self):
        # Set up an example mealy machine
        s1 = MealyState('1')
        s2 = MealyState('2')
        s3 = MealyState('3')

        s1.add_edge('a', '1', s2)
        s1.add_edge('b', 'next', s1)
        s2.add_edge('a', '2', s3)
        s2.add_edge('b', 'next', s1)
        s3.add_edge('a', '3', s3)
        s3.add_edge('b', 'next', s1)

        self.mm = MealyMachine(s1)