Class AbstractTestWordEQOracle<A extends Output<I,​D>,​I,​D>

    • Constructor Detail

      • AbstractTestWordEQOracle

        public AbstractTestWordEQOracle​(MembershipOracle<I,​D> membershipOracle)
      • AbstractTestWordEQOracle

        public AbstractTestWordEQOracle​(MembershipOracle<I,​D> membershipOracle,
                                        int batchSize)
    • Method Detail

      • findCounterExample

        public @Nullable DefaultQuery<I,​D> findCounterExample​(A hypothesis,
                                                                    Collection<? extends I> inputs)
        Description copied from interface: EquivalenceOracle
        Searches for a counterexample disproving the subjected hypothesis. A counterexample is query which, when performed on the SUL, yields a different output than what was predicted by the hypothesis. If no counterexample could be found (this does not necessarily mean that none exists), null is returned.
        Specified by:
        findCounterExample in interface EquivalenceOracle<A extends Output<I,​D>,​I,​D>
        hypothesis - the conjecture
        inputs - the set of inputs to consider, this should be a subset of the input alphabet of the provided hypothesis
        a query exposing different behavior, or null if no counterexample could be found. In case a non-null value is returned, the output field in the DefaultQuery contains the SUL output for the respective query.
      • generateTestWords

        protected abstract Stream<Word<I>> generateTestWords​(A hypothesis,
                                                             Collection<? extends I> inputs)
        Generate the stream of test words that should be used for the current equivalence check cycle.
        hypothesis - the current hypothesis of the learning algorithm
        inputs - the collection of inputs to consider
        the stream of test words used for equivalence testing
        See Also:
        EquivalenceOracle.findCounterExample(Object, Collection)