- Added randomized version of W(p)-Method based equivalence oracles (see #40)
- Added the ADT (adaptive distinguishing tree) active learning algorithm
- Added two active learning algorithms for visibly pushdown languages.
- Added the RPNI (regular positive-negative inference) passive learning algorithm, including EDSM (evidence-driven state merging) and MDL (minimum description length) variants.
- Many active learning algorithms now support adding additional alphabet symbols after initial instantiation/starting of the learning process.
- Added support for suspending the learning process to a savable / serializable state. The learning process may be resumed from this state at a later point in time.
- Added the
AbstractTestWordEQOracleclass, which allows to implement custom equivalence oracles solely based on lazy (stream-based) test-word generation. Existing equivalence oracles (as far as possible) have been reworked to extend this class and thus profit from its built-in laziness and batch (parallelization) support.
Refactored the Maven artifact and Java package structure. Have a look at the List of LearnLib Artifacts for an updated overview of available artifacts. In general, no functionality should have been removed (except of code marked with
@Deprecated). The easiest way to migrate your code to the new version is probably by using the Auto-Import feature of your IDE of choice.
The non-trivial refactorings include:
- API methods no longer use wildcards in generic return parameters. This allows your code to not having to deal with them.
- Changes to AutomataLib.
System.outand JUL logging, with calls to a SLF4j facade.
Code improvements due to employment of several static code-analysis plugins (findbugs, checkstyle, PMD, etc.) as well as setting up continuous integration at Travis CI.
- Several bugs detected either by our newly employed static code-analysis toolchain or by our ongoing efforts to write tests.