User Tools

Site Tools


usage

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
usage [2018/11/14 11:34] – [From an FDFA to a BA] liyongusage [2018/11/15 20:21] (current) – [Lazy Equivalence Check] liyong
Line 12: Line 12:
 java -jar ROLL.jar command input_files [options] java -jar ROLL.jar command input_files [options]
 </code> </code>
-The available commands in ROLL are summarized as running modes in the following and the introduction of the options available in the tool is also provided below.+The available commands in ROLL are summarized as running modes in the following and the introduction of the options available in the tool is also provided.
  
 ==== Running Modes ==== ==== Running Modes ====
Line 19: Line 19:
  
     * **help**. Show the help page (same as the option -h).     * **help**. Show the help page (same as the option -h).
-    *  **test n k**. Test the learning algorithms implemented in the tool with n randomly generated Büchi automata of k states. This mode tries to detect possible bugs in the tool with generated input Büchi automata.+    *  **test n k**. Test the learning algorithms implemented in the tool with n randomly generated Büchi automata of k states. This mode tries to expose possible bugs in the tool with generated input Büchi automata.
     *  **play**. You play a teacher to teach ROLL to learn a language you have in mind. **An example can be found [[play|here]]**.     *  **play**. You play a teacher to teach ROLL to learn a language you have in mind. **An example can be found [[play|here]]**.
     *  **learn <aut.hoa|aut.ba>**. Learn an input Büchi automaton whose language is equivalent to the input automaton <aut.hoa|aut.ba> with the help of [[http://www.languageinclusion.org/doku.php?id=tools|RABIT tool]].     *  **learn <aut.hoa|aut.ba>**. Learn an input Büchi automaton whose language is equivalent to the input automaton <aut.hoa|aut.ba> with the help of [[http://www.languageinclusion.org/doku.php?id=tools|RABIT tool]].
Line 66: Line 66:
 ROLL supports both //observation tables// and //classification trees// to store membership query results. You can specify which data structure is going to be used in the learning procedure by following two options. ROLL supports both //observation tables// and //classification trees// to store membership query results. You can specify which data structure is going to be used in the learning procedure by following two options.
  
-  *  -table. Choose the observation tables (**default setting**). +  *  **-table**. Choose the observation tables (**default setting**). 
-  *  -tree. Use classification trees.+  *  **-tree**. Use classification trees.
  
 ==== Learning Algorithms for Büchi automata ==== ==== Learning Algorithms for Büchi automata ====
Line 73: Line 73:
 There are two learning algorithms for Büchi automata in ROLL, namely the L<sup>$</sup> learner [4] based on the DFA learning and the L<sup>ω</sup> learner [6] based on three canonical FDFA learning algorithms [4]. There are two learning algorithms for Büchi automata in ROLL, namely the L<sup>$</sup> learner [4] based on the DFA learning and the L<sup>ω</sup> learner [6] based on three canonical FDFA learning algorithms [4].
 The default learning algorithm for Büchi automata in ROLL is the L<sup>ω</sup> learner. The default learning algorithm for Büchi automata in ROLL is the L<sup>ω</sup> learner.
-For the L<sup>ω</sup> learner, you can choose an option in the following to decide which canonical FDFA will be used to learn Büchi automata.+For the L<sup>ω</sup> learner, you can choose one of the following three options to decide which canonical FDFA learner will be used to learn Büchi automata.
  
-  * -periodic. Learning based on the periodic FDFA. +  * **-periodic**. Learning based on the periodic FDFA. 
-  * -syntactic. Learning based on the syntactic FDFA (**default setting**). +  * **-syntactic**. Learning based on the syntactic FDFA (**default setting**). 
-  * -recurrent. Learning based on the recurrent FDFA.+  * **-recurrent**. Learning based on the recurrent FDFA.
  
-You can also use the option -ldollar instead to select the L<sup>$</sup> learner to learn Büchi automata. We remark that the DFA learning algorithm used for L<sup>$</sup> learner is an improved version of L<sup>*</sup> algorithm [1].+You can also use the option **-ldollar** instead to select the L<sup>$</sup> learner to learn Büchi automata. We remark that the DFA learning algorithm used for L<sup>$</sup> learner is an improved version of L<sup>*</sup> algorithm [1].
 An example of the use of the L<sup>$</sup> learner is the following, which chooses a classification tree to store the results of membership queries during the learning procedure.  An example of the use of the L<sup>$</sup> learner is the following, which chooses a classification tree to store the results of membership queries during the learning procedure. 
 <code> <code>
Line 90: Line 90:
  
  
-  * -under. This method under-approximates the ultimately periodic words accepted by the conjectured FDFA. +  * **-under**. This method under-approximates the ultimately periodic words accepted by the conjectured FDFA. 
-  * -over. It over-approximates the ultimately periodic words accepted by the conjectured FDFA.+  * **-over**. It over-approximates the ultimately periodic words accepted by the conjectured FDFA.
  
 === Limit Deterministic Büchi Automata === === Limit Deterministic Büchi Automata ===
  
-You can also get a limit deterministic Büchi automaton as the final output automaton by giving the option -ldba when using the L<sup>ω</sup> learner [9].  +You can also get a limit deterministic Büchi automaton as the final output automaton by giving the option **-ldba** when using the L<sup>ω</sup> learner [9].  
-An example is given as below.+An example is given below.
 <code> <code>
 java -jar ROLL.jar learn aut.ba -table -periodic -ldba java -jar ROLL.jar learn aut.ba -table -periodic -ldba
Line 105: Line 105:
  
 If you want to reuse the counterexample returned by the teacher as much as possible, you can use the If you want to reuse the counterexample returned by the teacher as much as possible, you can use the
-lazy equivalence check optimization as follows (NOT TESTED).+lazy equivalence check optimization as follows (NOT FULLY TESTED)
 +This option is **not encouraged** since it may result in larger output automaton.
 <code> <code>
 java -jar ROLL.jar learn aut.ba -table -periodic -lazyeq java -jar ROLL.jar learn aut.ba -table -periodic -lazyeq
Line 112: Line 113:
 ==== Counterexample Analysis ==== ==== Counterexample Analysis ====
  
-When receiving a counterexample, the learner has to find a valid suffix of the counterexample as a new experiment in order to identify more states in the target automata+When receiving a counterexample, the learner has to find a valid suffix of the counterexample as a new experiment in order to identify more states in the target automaton
-By default, ROLL will use linear search to find that suffix, but you can also choose to use binary search to do that by giving the option **-bs**+By default, ROLL will use linear search to find that suffix, but you can also choose to use binary search to do that by giving the option **-bs** (NOT FULLY TESTED).
  
 ==== Verbose Log Level ==== ==== Verbose Log Level ====
Line 119: Line 120:
 The argument **<value>** is a value between 0 and 2, with 2 being the highest verbose log level. The argument **<value>** is a value between 0 and 2, with 2 being the highest verbose log level.
 With the default verbose log level 0, there is a minimal output for the learning procedure. With the default verbose log level 0, there is a minimal output for the learning procedure.
-You can see a sequence of log messages like ``Analyzing counterexample for FDFA learner..." to tell you which stage the learning procedure gets with the verbose log level 1.+You can see a sequence of log messages like ``Analyzing counterexample for FDFA learner..." telling you which stage the learning procedure gets with the verbose log level 1.
 You can see more details on the learning procedure with the verbose log level 2, such as the current observation table of the learner. You can see more details on the learning procedure with the verbose log level 2, such as the current observation table of the learner.
 However, with the verbose log level 2, you may see some word which is a sequence of unprintable characters. However, with the verbose log level 2, you may see some word which is a sequence of unprintable characters.
-This is because we map every original input letter to an integer value as a character in our **Alphabet** object. Nonetheless, You can define the **Alphabet** object of the automata with printable characters when program with ROLL library.+This is because we map every original input letter to an integer value as a character in our **Alphabet** object. Nonetheless, You can define the **Alphabet** object of the automata with printable characters when programming with the ROLL library.
 ===== Automata Format ===== ===== Automata Format =====
  
usage.1542166452.txt.gz · Last modified: 2018/11/14 11:34 by liyong