[[start|{{:home.png?16}}]][[start| Main]]
[[usage|{{:imac.png?16}}]][[usage|How to Use ROLL in Command Line]]
[[how_to_use|{{:pencil.png?16}}]][[how_to_use|How to Use ROLL in JAVA Program]]
[[release|{{:tool.png?16}}]][[release| Tool ]]
[[contact|{{:letter.png?16}}]][[contact| Contact ]]
====== Regular Omega Language Learning (ROLL) ======
ROLL is a library of learning algorithms for ω-regular languages. It consists of all the learning algorithms for the complete class of ω-regular languages available in the literature, namely
- the learning algorithms for FDFAs
* the algorithm in [5] learns three canonical FDFAs using observation tables, which is based on results in [3],
* the algorithm in [6] learns three canonical FDFAs using classification trees;
- and the learning algorithms for Büchi automata
* the algorithm in [4] learns a Büchi automaton by combining L* algorithm [1] and results in [2],
* the algorithm in [6] learns the Büchi automata via learning three canonical FDFAs.
* the algorithm in [10] learns the limit-deterministic Büchi automata via learning three canonical FDFAs.
The ROLL library is implemented in JAVA. Its DFA operations are delegated to the [[http://www.brics.dk/automaton/|dk.brics.automaton]] package. We use [[http://www.languageinclusion.org/doku.php?id=tools|RABIT]] tool to check the equivalence of
two Büchi automata.
===== New Features in ROLL v1.0 =====
ROLL v1.0 is now publicly available on GitHub at [[https://github.com/ISCAS-PMC/roll-library| this repository]]. ROLL v1.0 is a major rewrite of the learning algorithms of the previous version used in the TACAS paper.
Compared to its previous version, it now supports new features such as:
* Learning algorithm for limit-deterministic Büchi automata.
* [[https://iscasmc.ios.ac.cn/roll/jupyter|Jupyter notebook for ROLL]] (You can **play with ROLL online** !!!).
* Interactive mode for educational purpose.
* Büchi automata complementation based on learning [7].
* Büchi automata inclusion testing based on word sampling and learning.
* PAC-learning for Büchi automata based on Monte-Carlo word sampling (our improved version [9] of [8]).
* [[http://adl.github.io/hoaf/|Hanoi omega-automata format]].
----
Before going through other contents on this website, you might need some basic background knowledge in the following.
===== Active Automata Learning Background Knowledge =====
In the active automata learning setting proposed by Angluin [1], there is a //teacher//, who knows the target language //L//, and a //learner//, whose task is to learn from the teacher the target language, represented by an automaton.
The learner interacts with the teacher by means of two kinds of queries: //membership queries// and //equivalence queries//.
A membership query //MQ[w]// asks whether a string //w// belongs to //L// while an equivalence query //EQ[A]// asks whether the hypothesis automaton //A// recognizes //L//.
The teacher replies with a witness/counterexample if the hypothesis is incorrect otherwise the learner completes its job. The returned counterexample is a word in the symmetric difference of the language of the conjectured automaton and the target language. In [1], Angluin introduced the well-known algorithm L* which learns from a teacher a regular language represented by a deterministic finite automaton (DFA).
----
[1] Dana Angluin. "Learning regular sets from queries and counterexamples." Information and computation 75.2 (1987): 87-106.
[2] Hugues Calbrix, Maurice Nivat, and Andreas Podelski. "Ultimately periodic words of rational ω-languages." In MFPS. Springer Berlin Heidelberg, 1993: 554-566.
[3] Oded Maler and Ludwig Staiger. "On syntactic congruences for ω-languages." In STACS. Springer Berlin Heidelberg, 1993: 586-594.
[4] Azadeh Farzan, Yu-Fang Chen, Edmund M. Clarke, Yih-Kuen Tsay, Bow-Yaw Wang. "Extending automated compositional verification to the full class of omega-regular languages." In TACAS. Springer Berlin Heidelberg, 2008: 2-17.
[5] Dana Angluin, and Dana Fisman. "Learning regular omega languages." In ALT. Springer International Publishing, 2014: 125-139.
[6] Yong Li, Yu-Fang Chen, Lijun Zhang, and Depeng Liu. "A Novel Learning Algorithm for Büchi Automata based on Family of DFAs and Classification Trees." In TACAS. Springer Berlin Heidelberg, 2017: 208-226. {{ :tacas17.pdf |preprint}}
[7] Yong Li, Andrea Turrini, Lijun Zhang and Sven Schewe. "Learning to Complement Büchi Automata." In VMCAI. Springer, Cham, 2018:313-335.
[8] Radu Grosu, Scott A. Smolka. "Monte carlo model checking." In TACAS. Springer-Verlag Berlin, Heidelberg, 2005:271-286.
[9] Yong Li, Andrea Turrini, Xuechao Sun and Lijun Zhang. "Proving Non-inclusion of Büchi Automata Based on Monte Carlo Sampling." In ATVA. Springer, 2020: 467-483.
[10] Yong Li, Yu-Fang Chen, Lijun Zhang, and Depeng Liu. "A Novel Learning Algorithm for Büchi Automata based on Family of DFAs and Classification Trees." To appear in I&C. {{ :iandc.pdf |preprint}} (Added an algorithm to transform an FDFA to a limit-deterministic Büchi automaton)