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

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