User Tools

Site Tools


how_to_use

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
Last revisionBoth sides next revision
how_to_use [2018/01/25 10:39] liyonghow_to_use [2018/01/29 11:22] liyong
Line 21: Line 21:
 [2] [2]
 </code> </code>
-In ROLL, one can create above +In ROLL, one can create the above Büchi automaton as follows: 
 +<code java> 
 +// first create an alphabet 
 +Alphabet alphabet = new Alphabet(); 
 +alphabet.addLetter('a'); 
 +alphabet.addLetter('b'); 
 +// create an NBA with alphabet 
 +NBA target = new NBA(alphabet); 
 +target.createState(); 
 +target.createState(); 
 +target.createState(); 
 +         
 +// add transitions for NBA recognizing a^w + ab^w 
 +int fst = 0, snd = 1, thd = 2; 
 +target.getState(fst).addTransition(alphabet.indexOf('a'), snd); 
 +target.getState(fst).addTransition(alphabet.indexOf('a'), thd); 
 +target.getState(snd).addTransition(alphabet.indexOf('a'), snd); 
 +target.getState(thd).addTransition(alphabet.indexOf('b'), thd); 
 +target.setInitial(fst); 
 +target.setFinal(snd); 
 +target.setFinal(thd); 
 + 
 +</code>
 === Prepare a HANOI file === === Prepare a HANOI file ===
 The input automaton should have only one initial state. The input automaton should have only one initial state.
Line 62: Line 84:
 // use the under-approximation method to construct a BA from an FDFA // use the under-approximation method to construct a BA from an FDFA
 options.approximation = Options.Approximation.UNDER; options.approximation = Options.Approximation.UNDER;
-// specify FDFA learner, here we use tree-based periodic FDFA learner+// set NBA learner, here we use tree-based syntactic FDFA learner 
 +options.algorithm = Options.Algorithm.SYNTACTIC; 
 +options.structure = Options.Structure.TREE;
 LearnerBase<NBA> learner = null; LearnerBase<NBA> learner = null;
 if(options.algorithm == Options.Algorithm.NBA_LDOLLAR) { if(options.algorithm == Options.Algorithm.NBA_LDOLLAR) {
 +       // input teacher as a membership oracle for the learner
        learner = new LearnerNBALDollar(options, nba.getAlphabet(), teacher);        learner = new LearnerNBALDollar(options, nba.getAlphabet(), teacher);
 }else if(options.algorithm == Options.Algorithm.PERIODIC }else if(options.algorithm == Options.Algorithm.PERIODIC
Line 112: Line 137:
  
 The complete code is the class roll.main.Executor. The complete code is the class roll.main.Executor.
 +
 ===== Acknowledgement ===== ===== Acknowledgement =====
 We use [[http://www.ej-technologies.com/products/jprofiler/overview.html We use [[http://www.ej-technologies.com/products/jprofiler/overview.html
how_to_use.txt · Last modified: 2018/03/29 16:54 by liyong