Module: Lernen::Algorithm::KearnsVaziraniVPA
- Defined in:
- lib/lernen/algorithm/kearns_vazirani_vpa.rb,
lib/lernen/algorithm/kearns_vazirani_vpa/discrimination_tree_vpa.rb,
lib/lernen/algorithm/kearns_vazirani_vpa/kearns_vazirani_vpa_learner.rb
Overview
KearnzVaziraniVPA provides an implementation of Kearnz-Vazirani algorithm for VPA.
The idea behind this implementation is described by [Isberner (2015) “Foundations of Active Automata Learning: An Algorithmic Overview”](eldorado.tu-dortmund.de/handle/2003/34282).
Defined Under Namespace
Classes: DiscriminationTreeVPA, KearnsVaziraniVPALearner
Class Method Summary collapse
-
.learn(alphabet, call_alphabet, return_alphabet, sul, oracle, cex_processing: :binary, max_learning_rounds: nil) ⇒ Object
Runs Kearns-Vazirani algorithm for VPA and returns an inferred VPA.
Class Method Details
.learn(alphabet, call_alphabet, return_alphabet, sul, oracle, cex_processing: :binary, max_learning_rounds: nil) ⇒ Object
Runs Kearns-Vazirani algorithm for VPA and returns an inferred VPA.
: [In, Call, Return] (
Array[In] alphabet, Array[Call] call_alphabet, Array[Return] return_alphabet,
System::MooreLikeSUL[In | Call | Return, bool] sul, Equiv::Oracle[In | Call | Return, bool] oracle,
?cex_processing: cex_processing_method, ?max_learning_rounds: Integer | nil
) -> Automaton::VPA[In, Call, Return]
21 22 23 24 25 26 27 28 29 30 31 32 |
# File 'lib/lernen/algorithm/kearns_vazirani_vpa.rb', line 21 def self.learn( # steep:ignore alphabet, call_alphabet, return_alphabet, sul, oracle, cex_processing: :binary, max_learning_rounds: nil ) learner = KearnsVaziraniVPALearner.new(alphabet, call_alphabet, return_alphabet, sul, cex_processing:) learner.learn(oracle, max_learning_rounds:) end |