About 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 for Programming Systems at the TU Dortmund University, Germany. 15 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.16.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 binaries of the LearnLib, with and without its dependencies.

Get started Examples Wiki API docs

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.

LearnLib feature overview

Learning algorithms

Algorithm Target model
Active learning algorithms
ADT Mealy
DHC Mealy
Discrimination Tree DFA Mealy VPDA
Kearns Vazirani DFA Mealy
L* DFA Mealy
NL* NFA
TTT DFA Mealy VPDA
Passive learning algorithms
RPNI DFA Mealy
RPNI – EDSM DFA
RPNI – MDL DFA


Equivalence approximation strategies

  • Complete, depth-bounded exploration
  • Random words
  • Random walk
  • W-method
  • W-method, randomised
  • Wp-method
  • Wp-method, randomised

More features

  • Query cache
  • Reuse filter
  • Abstract to concrete system mapping
  • Generic, extensible design
  • Logging subsystem


Interested for performance benchmarks? Check out this page where we present some statistics about the algorithms and equivalence approximation stategies, as well as a performance comparison between LearnLib and comparable automata learning libraries.