how_to_use
Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
how_to_use [2018/01/25 10:39] – liyong | how_to_use [2018/03/29 16:54] (current) – liyong | ||
---|---|---|---|
Line 21: | Line 21: | ||
[2] | [2] | ||
</ | </ | ||
- | In ROLL, one can create above | + | In ROLL, one can create |
+ | <code java> | ||
+ | // first create an alphabet | ||
+ | Alphabet alphabet = new Alphabet(); | ||
+ | alphabet.addLetter(' | ||
+ | alphabet.addLetter(' | ||
+ | // 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(' | ||
+ | target.getState(fst).addTransition(alphabet.indexOf(' | ||
+ | target.getState(snd).addTransition(alphabet.indexOf(' | ||
+ | target.getState(thd).addTransition(alphabet.indexOf(' | ||
+ | target.setInitial(fst); | ||
+ | target.setFinal(snd); | ||
+ | target.setFinal(thd); | ||
+ | |||
+ | </ | ||
=== 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 | + | // set NBA learner, here we use tree-based |
+ | options.algorithm = Options.Algorithm.SYNTACTIC; | ||
+ | options.structure = Options.Structure.TREE; | ||
LearnerBase< | LearnerBase< | ||
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, | ||
}else if(options.algorithm == Options.Algorithm.PERIODIC | }else if(options.algorithm == Options.Algorithm.PERIODIC | ||
|| options.algorithm == Options.Algorithm.SYNTACTIC | || options.algorithm == Options.Algorithm.SYNTACTIC | ||
|| options.algorithm == Options.Algorithm.RECURRENT) { | || options.algorithm == Options.Algorithm.RECURRENT) { | ||
- | | + | |
} else { | } else { | ||
throw new UnsupportedOperationException(" | throw new UnsupportedOperationException(" | ||
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:// | We use [[http:// |
how_to_use.1516847943.txt.gz · Last modified: 2018/01/25 10:39 by liyong