Learning DFA without manually created Automaton

56 wyświetleń
Przejdź do pierwszej nieodczytanej wiadomości

John Huynh

nieprzeczytany,
7 lut 2020, 07:44:507.02.2020
do LearnLib Q&A
Hi everyone,

I'm currently looking for a solution to learn a DFA which I must not manually create but rather learn a DFA which learns by 'rules'. I stumbled across many examples which already have a preconstructed DFA that is given to the Oracle, for example: 

CompactDFA<Character> target = constructSUL();
DFAMembershipOracle<Character> sul = new DFASimulatorOracle<>(target);

Is there an alternative way to represent a target system?

Kind regards,

John

Markus Frohme

nieprzeczytany,
8 lut 2020, 11:17:558.02.2020
do John Huynh, LearnLib Q&A
Hi John,


the SimulatorOracles are just a quick means to construct functioning membership and equivalence oracles. For realistic scenarios they don't really make much sense (why would you learn a system of which you already have an automaton model of?).

In order to learn your realistic 'rule'-system you need to provide your own MQ oracle and EQ oracle implementations.

For the DFAMembershipOracle you would have to implement the processQueries method which needs to answer for every query whether it is in the target language of your system or not (e.g. decide whether a rule is satisfiable or not). If you don't care much about parallelization, you can alternatively implement the SingleQueryOracleDFA interface instead. Here, you only need to implement the (simpler) answerQuery method.

For the DFAEquivalenceOracle you can either try to implement a equivalence check on your own or fallback on the existing EQ oracles covering heuristic approaches (e.g. the DFARandomWordsEQOracle) or techniques from the model-based testing community (e.g. DFAWMethodEQOracle, DFAWpMethodEQOracle or their randomized variants).


Kind regards,
Markus

John Huynh

nieprzeczytany,
9 lut 2020, 11:26:099.02.2020
do LearnLib Q&A
Thank you very much!
Odpowiedz wszystkim
Odpowiedz autorowi
Przekaż
Nowe wiadomości: 0