Interface LearningAlgorithm<M,​I,​D>

    • Method Detail

      • startLearning

        void startLearning()
        Starts the model inference process, creating an initial hypothesis in the provided model object. Please note that it should be illegal to invoke this method twice.
      • refineHypothesis

        boolean refineHypothesis​(DefaultQuery<I,​D> ceQuery)
        Triggers a refinement of the model by providing a counterexample. A counterexample is a query which exposes different behavior of the real SUL compared to the hypothesis. Please note that invoking this method before an initial invocation of startLearning() should be illegal.
        Parameters:
        ceQuery - the query which exposes diverging behavior, as posed to the real SUL (i.e. with the SULs output).
        Returns:
        true if the counterexample triggered a refinement of the hypothesis, false otherwise (i.e., it was no counterexample).
      • getHypothesisModel

        M getHypothesisModel()
        Returns the current hypothesis model.

        N.B.: By the contract of this interface, the model returned by this method may not be modified (i.e., M generally should refer to an immutable interface), and its validity is retained only until the next invocation of refineHypothesis(DefaultQuery). If older hypotheses have to be maintained, a copy of the returned model must be made.

        Please note that it should be illegal to invoke this method before an initial invocation of startLearning().

        Returns:
        the current hypothesis model.