learnlib-0.13.0
mtf90
released this
27 Feb 15:51
·
432 commits
to develop
since this release
Added
- 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
AbstractTestWordEQOracle
class, 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.
Changed
-
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.
-
Replaced
System.out
and 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.
Fixed
- Several bugs detected either by our newly employed static code-analysis toolchain or by our ongoing efforts to write tests.