LearnLib :: Algorithms :: L*

A flexible, optimized version of Dana Angluin's L* algorithm. This module provides access to the original version of L*, extensions for Mealy machines, and variants with enhanced counterexample analysis (as proposed by e.g. Maler & Pnueli and Rivest & Schapire).

License

License

GroupId

GroupId

de.learnlib
ArtifactId

ArtifactId

learnlib-lstar
Last Version

Last Version

0.16.0
Release Date

Release Date

Type

Type

jar
Description

Description

LearnLib :: Algorithms :: L*
A flexible, optimized version of Dana Angluin's L* algorithm. This module provides access to the original version of L*, extensions for Mealy machines, and variants with enhanced counterexample analysis (as proposed by e.g. Maler & Pnueli and Rivest & Schapire).

Download learnlib-lstar

How to add to project

<!-- https://jarcasting.com/artifacts/de.learnlib/learnlib-lstar/ -->
<dependency>
    <groupId>de.learnlib</groupId>
    <artifactId>learnlib-lstar</artifactId>
    <version>0.16.0</version>
</dependency>
// https://jarcasting.com/artifacts/de.learnlib/learnlib-lstar/
implementation 'de.learnlib:learnlib-lstar:0.16.0'
// https://jarcasting.com/artifacts/de.learnlib/learnlib-lstar/
implementation ("de.learnlib:learnlib-lstar:0.16.0")
'de.learnlib:learnlib-lstar:jar:0.16.0'
<dependency org="de.learnlib" name="learnlib-lstar" rev="0.16.0">
  <artifact name="learnlib-lstar" type="jar" />
</dependency>
@Grapes(
@Grab(group='de.learnlib', module='learnlib-lstar', version='0.16.0')
)
libraryDependencies += "de.learnlib" % "learnlib-lstar" % "0.16.0"
[de.learnlib/learnlib-lstar "0.16.0"]

Dependencies

compile (9)

Group / Artifact Type Version
de.learnlib : learnlib-api jar 0.16.0
de.learnlib : learnlib-datastructure-ot jar 0.16.0
de.learnlib : learnlib-counterexamples jar 0.16.0
de.learnlib : learnlib-util jar 0.16.0
net.automatalib : automata-api jar
net.automatalib : automata-commons-util jar
net.automatalib : automata-core jar
net.automatalib : automata-util jar
org.checkerframework : checker-qual jar 3.7.0

provided (1)

Group / Artifact Type Version
com.github.misberner.buildergen : buildergen jar 0.1

test (6)

Group / Artifact Type Version
de.learnlib : learnlib-equivalence-oracles jar 0.16.0
de.learnlib : learnlib-drivers-simulator jar 0.16.0
de.learnlib.testsupport : learnlib-learning-examples jar 0.16.0
de.learnlib.testsupport : learnlib-learner-it-support jar 0.16.0
de.learnlib : learnlib-membership-oracles jar 0.16.0
org.testng : testng jar 7.1.0

Project Modules

There are no modules declared in this project.

LearnLib

Build Status Build Status Coverage Status Maven Central

LearnLib is a free, open source (Apache License, v2.0) Java library for automata learning algorithms.

About

LearnLib is mainly developed at the Dortmund University of Technology, Germany. Its original purpose is to provide a framework for research on automata learning algorithms as well as for their application in practice.

The public version is a re-implemented version of the former closed-source version of LearnLib. While certain features have been stripped for improved modularity, development has since then extended the features offered. Currently the following learning algorithms with respective target models are supported:

Algorithm (active) Target models Algorithm (passive) Models
ADT Mealy RPNI DFA Mealy
DHC Mealy RPNI (EDSM) DFA
Discrimination Tree DFA Mealy VPDA RPNI (MDL) DFA
Kearns & Vazirani DFA Mealy
L* (incl. variants) DFA Mealy
NL* NFA
TTT DFA Mealy VPDA

Additionally, LearnLib offers a variety of tools to ease the practical application of automata learning on real-world systems. This includes drivers and mappers for interfacing software systems with the LearnLib API as well as caches and parallelization for improving the overall performance of the learning setup. Also, more nuanced setups such as Black-Box-Checking (via LTSMin) or inferring partial machines are possible.

While we strive to deliver code at a high quality, please note that there exist parts of the library that still need thorough testing. Contributions -- whether it is in the form of new features, better documentation or tests -- are welcome.

Build Instructions

For simply using LearnLib you may use the Maven artifacts which are available in the Maven Central repository. It is also possible to download a bundled distribution artifact if you want to use LearnLib without Maven support. Note that LearnLib requires Java 8 or newer.

Building development versions

If you intend to use development versions of LearnLib, you can either use the deployed SNAPSHOT artifacts from the continuous integration server (see Using Development Versions), or build them yourself. Simply clone the development branch of the repository

git clone -b develop --single-branch https://github.com/LearnLib/learnlib.git

and run a single mvn clean install. This will build all the required maven artifacts and will install them in your local Maven repository so that you can reference them in other projects.

If you plan to use a development version of LearnLib in an environment where no Maven support is available, simply run mvn clean package -Pbundles. The respective JARs are then available under distribution/target/bundles.

Note: Development versions of LearnLib usually depend on development versions of AutomataLib. For building development versions of AutomataLib, see the corresponding documentation on the project's README.

Developing LearnLib

For developing the code base of LearnLib it is suggested to use one of the major Java IDEs which come with out-of-the-box Maven support.

  • For IntelliJ IDEA:

    1. Select File -> New -> Project from existing sources and select the folder containing the development checkout.
    2. Choose "Import Project from external model", select "Maven" and click Next.
    3. Configure the project to your liking but make sure to check "Import Maven projects automatically" and have "Generated sources folders" set to "Detect automatically".
    4. Click Next until the project is imported (no Maven profile needs to be selected).
    5. In order to have both development versions of AutomataLib and LearnLib available at once, continue to import AutomataLib as documented in the project's README, but choose File -> New -> Module from existing sources as the first step.
  • For Eclipse:

    1. Note: LearnLib uses annotation processing on several occasions throughout the build process. This is usually handled correctly by Maven, however, for Eclipse you need to install the m2e-apt-plugin and activate annotation processing afterwards (see the issue #32).
    2. Select File -> Import... and select "Existing Maven Projects".
    3. Select the folder containing the development checkout as the root directory and click Finish.
    4. In order to have both development versions of AutomataLib and LearnLib available at once, continue to import AutomataLib as documented in the project's README.

Documentation

Mailing Lists

Maintainers

de.learnlib

LearnLib

Versions

Version
0.16.0
0.15.0
0.14.0
0.13.1
0.13.0