Learnlib
LearnLib is a free and open source (Apache License 2.0) Java framework for automata learning. It is mainly being developed at the Chair of Programming Systems at TU Dortmund University, Germany. 20 years of research in the field of automated learning as well as our experience in engineering software have gone into the development of LearnLib.
Usage
In order to start using the latest, stable release of LearnLib in your Maven project, include the following snippet into the dependencies section of the pom.xml.
<dependencies>
<!-- other dependencies -->
<dependency>
<groupId>de.learnlib.distribution</groupId>
<artifactId>learnlib-distribution</artifactId>
<version>0.17.0</version>
<type>pom</type>
</dependency>
</dependencies>
Note: This dependency will add all components of LearnLib to your project. If you only need a subset, have a look at the List of LearnLib Artifacts to get an overview of the individual modules available on Maven Central.
If you are not using any build management, you can also download the distribution artifacts of LearnLib, with and without its dependencies.
Features
LearnLib provides a sophisticated set of active and passive learning algorithms for various automaton models as well as a variety of equivalence approximation strategies. Its modular, generic and extensible nature allows you to instantiate learning experiments that are tailored specifically to your needs. See the figure and the listing below to get a quick overview over all relevant features.
Learning algorithms
Algorithm (active) | Target models | Algorithm (passive) | Models | |
---|---|---|---|---|
AAAR | DFA Mealy Moore |
OSTIA | SST |
|
ADT | Mealy |
RPNI (incl. variants) | DFA Mealy Moore |
|
DHC | Mealy |
|||
Kearns & Vazirani | DFA Mealy |
|||
L* (incl. variants) | DFA Mealy Moore |
|||
NL* | NFA |
|||
Observation Pack | DFA Mealy Moore VPA |
|||
OML | DFA Mealy |
|||
Procedural | SPA SBA SPMM |
|||
TTT | DFA Mealy Moore VPA |
Equivalence approximation strategies
- Complete, depth-bounded exploration
- Random words
- Random walk
- W-method (incl. variants)
- Wp-method (incl. variants)
More features
- Query cache
- Parallel oracles
- Reuse filter
- Abstract to concrete system mapping
- Generic, extensible design