-
Notifications
You must be signed in to change notification settings - Fork 54
Structure of LearnLib interfaces
The following interfaces are central to LearnLib's operation:
=== LearningAlgorithm
This interfaces encapsulates implementations of learning algorithms. It offers three methods:
- startLearning: Start the initial learning round. Once this method returns an initial conjecture has been produced.
- getHypothesisModel: Provides access to the current conjecture in the form of an automaton model.
- refineHypothesis: If the initial conjecture is an inadequate representation of the target system, this method allows for providing a counterexample disproving the incomplete conjecture. This will trigger another learning round. Once this method returns a refined conjecture has been produced. The refinement process can be repeated as often as necessary to produce an adequate model.
=== MembershipOracle
Encapsulates any structure that can answer membership queries, i.e., which provides information on the target system's reaction to provided input words. For instance, in DFA learning a membership oracle will have to provide information whether a provided string is part of the system's target language or not. In the case of Mealy Machine learning, the membership oracle will have to provide system output for every single input symbol, i.e., a string of output symbols.
This interface has a single method, processQueries, which is provided a collection of query objects that have to be processed by the membership oracle.
=== EquivalenceOracle
Conjectures created by learning algorithms usually are not complete upon termination of the initial learning round. Thus learning algorithms provide a mechanism to refine conjectures by analyzing counterexamples that reveal mismatching behavior between the learner's conjecture and the target system.
This interface has a single method, findCounterExample, which is provided an automaton representation of the learning algorithm's current conjecture. If the equivalence oracle finds a behavioral mismatch, this method will return a counterexample fit for conjecture refinement. Otherwise the equivalence oracle will attest the adequateness of the provided conjecture by not delivering such a counterexample.