

About the libalf library 

The libalf library is a comprehensive, opensource library for learning finitestate automata covering various wellknown learning techniques (such as Angluin's L*, Biermann's learning approach, and RPNI), as well as novel learning algorithms (e.g. for NFA and visibly onecounter automata).
libalf is highly flexible and allows for facilely interchanging learning algorithms and combining domainspecific features in a plugandplay fashion. Its modular design and its implementation in C++ make it the ideal platform for adding and engineering further, efficient learning algorithms for new target models (e.g., Büchi automata, timed automata, or probabilistic automata).
Currently, the following learning algorithms are supported:
Algorithm 
offline 
online 
target model 
Angluin's L* 

X 
DFA 
L* (adding counterexamples to columns) 

X 
DFA 
Kearns / Vazirani 

X 
DFA 
Rivest / Schapire 

X 
DFA 
NL* 

X 
NFA 
Regular positive negative inference (RPNI) 
X 

DFA 
DeLeTe2 
X 

NFA 
Biermann & Feldman's algorithm 
X 

NFA 
Biermann & Feldman's algorithm (using SATsolving) 
X 

DFA 
Glossary
 DFA: a deterministic finitestate automaton
 NFA: a nondeterministic finitestate automaton
 Offline learning: offline learning algorithms are learning algorithms that passively receive a set of classified data. Their goal then is to generalize this set of positive and negative words to some kind of explanation H (e.g. a DFA) which is in conformance with the input.
 Online learning: In contrast to offline learning algorithms, online learning algorithms are capable of actively asking certain kinds of queries to some teacher who is able to classify these queries. This ability lets them infer explanations for the underlying set of already classified words.




Latest news 

April 9th, 2011
Release of libalf 0.3. Version 0.3 features some new features and the Rivest / Schapire learning algorithm. Please have a look at the Changelog.
March 10th, 2010
Release of libalf 0.2. Version 0.2 now features the Kearns / Vazirani and Biermann's original learning algorithm. Additionally, various bugs are fixed.
October 19th, 2009
libalf website launched. On October 19th, 2009 the libalf team launched the new website.
October 12th, 2009
libalf released. The first beta of the libalf library has been released.


