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.
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.
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.
|Algorithm (active)||Target models||Algorithm (passive)||Models|
|Kearns & Vazirani||
|L* (incl. variants)||
Equivalence approximation strategies
- Complete, depth-bounded exploration
- Random words
- Random walk
- W-method, randomised
- Wp-method, randomised
- Query cache
- Reuse filter
- Abstract to concrete system mapping
- Generic, extensible design
- Logging subsystem