@GenerateBuilder(defaults = ExtensibleAutomatonLStar.BuilderDefaults.class) public RivestSchapireDFA(Alphabet<I> alphabet, MembershipOracle<I, Boolean> oracle, List<Word<I>> initialSuffixes, ClosingStrategy<? super I, ? super Boolean> closingStrategy) { super(alphabet, oracle, initialSuffixes, ObservationTableCEXHandlers.RIVEST_SCHAPIRE, closingStrategy); }
String name = ann.name(); if(name.isEmpty()) { name = ann.value(); if(name.isEmpty()) { name = instanceType.asElement().getSimpleName() + "Builder"; String packageName = ann.packageName(); if(packageName.isEmpty()) { packageName = Util.getPackageName(instantiator); this.builderPublic = ann.builderPublic(); this.builderFinal = ann.builderFinal(); String[] getterPrefixes = ann.getterPrefix(); if(getterPrefixes.length == 0 || AccessorMethods.SUPPRESS.equals(getterPrefixes[0])) { this.getterPrefix = null; String setterPrefix = ann.setterPrefix(); this.setterPrefix = AccessorMethods.SUPPRESS.equals(setterPrefix) ? null : setterPrefix; String withPrefix = ann.withPrefix(); this.withPrefix = AccessorMethods.SUPPRESS.equals(withPrefix) ? null : withPrefix; this.createName = ann.createName();
@GenerateBuilder(defaults = AbstractExtensibleAutomatonLStar.BuilderDefaults.class) public RivestSchapireMealy(Alphabet<I> alphabet, MembershipOracle<I, Word<O>> oracle, List<Word<I>> initialSuffixes, ClosingStrategy<? super I, ? super Word<O>> closingStrategy) { super(alphabet, oracle, initialSuffixes, ObservationTableCEXHandlers.RIVEST_SCHAPIRE, closingStrategy); }
@GenerateBuilder(defaults = ExtensibleAutomatonLStar.BuilderDefaults.class) public RivestSchapireMealy(Alphabet<I> alphabet, MembershipOracle<I, Word<O>> oracle, List<Word<I>> initialSuffixes, ClosingStrategy<? super I, ? super Word<O>> closingStrategy) { super(alphabet, oracle, initialSuffixes, ObservationTableCEXHandlers.RIVEST_SCHAPIRE, closingStrategy); }
@GenerateBuilder(defaults = AbstractExtensibleAutomatonLStar.BuilderDefaults.class) public RivestSchapireDFA(Alphabet<I> alphabet, MembershipOracle<I, Boolean> oracle, List<Word<I>> initialSuffixes, ClosingStrategy<? super I, ? super Boolean> closingStrategy) { super(alphabet, oracle, initialSuffixes, ObservationTableCEXHandlers.RIVEST_SCHAPIRE, closingStrategy); }
@GenerateBuilder(defaults = ExtensibleAutomatonLStar.BuilderDefaults.class) public MalerPnueliMealy(Alphabet<I> alphabet, MembershipOracle<I, Word<O>> oracle, List<Word<I>> initialSuffixes, ClosingStrategy<? super I, ? super Word<O>> closingStrategy) { super(alphabet, oracle, initialSuffixes, ObservationTableCEXHandlers.MALER_PNUELI, closingStrategy); }
@GenerateBuilder(defaults = AbstractExtensibleAutomatonLStar.BuilderDefaults.class) public MalerPnueliDFA(Alphabet<I> alphabet, MembershipOracle<I, Boolean> oracle, List<Word<I>> initialSuffixes, ClosingStrategy<? super I, ? super Boolean> closingStrategy) { super(alphabet, oracle, initialSuffixes, ObservationTableCEXHandlers.MALER_PNUELI, closingStrategy); }
@GenerateBuilder(defaults = AbstractExtensibleAutomatonLStar.BuilderDefaults.class) public MalerPnueliMealy(Alphabet<I> alphabet, MembershipOracle<I, Word<O>> oracle, List<Word<I>> initialSuffixes, ClosingStrategy<? super I, ? super Word<O>> closingStrategy) { super(alphabet, oracle, initialSuffixes, ObservationTableCEXHandlers.MALER_PNUELI, closingStrategy); }
@GenerateBuilder public DTLearnerVPDA(VPDAlphabet<I> alphabet, MembershipOracle<I, Boolean> oracle, AcexAnalyzer analyzer) { super(alphabet, oracle); this.analyzer = analyzer; }
@GenerateBuilder(defaults = BuilderDefaults.class) public LTSminMonitorIO(boolean keepFiles, Function<String, I> string2Input, Function<String, O> string2Output, Collection<? super O> skipOutputs) { super(keepFiles, string2Input, string2Output, skipOutputs); } }
@GenerateBuilder(defaults = BuilderDefaults.class) public LTSminLTLIO(boolean keepFiles, Function<String, I> string2Input, Function<String, O> string2Output, int minimumUnfolds, double multiplier, Collection<? super O> skipOutputs) { super(keepFiles, string2Input, string2Output, minimumUnfolds, multiplier, skipOutputs); } }
@GenerateBuilder(defaults = BuilderDefaults.class) public LTSminMonitorDFA(boolean keepFiles, Function<String, I> string2Input) { super(keepFiles, string2Input); }
@GenerateBuilder(defaults = BuilderDefaults.class) public LTSminLTLAlternating(boolean keepFiles, Function<String, I> string2Input, Function<String, O> string2Output, int minimumUnfolds, double multiplier, Collection<? super O> skipOutputs) { super(keepFiles, string2Input, string2Output, minimumUnfolds, multiplier, skipOutputs); }
@GenerateBuilder(defaults = BuilderDefaults.class) public LTSminMonitorAlternating(boolean keepFiles, Function<String, I> string2Input, Function<String, O> string2Output, Collection<? super O> skipOutputs) { super(keepFiles, string2Input, string2Output, skipOutputs); }
@GenerateBuilder(defaults = ExtensibleAutomatonLStar.BuilderDefaults.class) public MalerPnueliDFA(Alphabet<I> alphabet, MembershipOracle<I, Boolean> oracle, List<Word<I>> initialSuffixes, ClosingStrategy<? super I, ? super Boolean> closingStrategy) { super(alphabet, oracle, initialSuffixes, ObservationTableCEXHandlers.MALER_PNUELI, closingStrategy); }
@GenerateBuilder(defaults = AbstractLTSminLTL.BuilderDefaults.class) public LTSminLTLDFA(boolean keepFiles, Function<String, I> string2Input, int minimumUnfolds, double multiplier) { super(keepFiles, string2Input, minimumUnfolds, multiplier); }
@GenerateBuilder public ClassicLStarDFA(Alphabet<I> alphabet, MembershipOracle<I, Boolean> oracle) { super(alphabet, oracle, Collections.singletonList(Word.epsilon()), ObservationTableCEXHandlers.CLASSIC_LSTAR, ClosingStrategies.CLOSE_FIRST); } }
/** * Constructor. * * @param alphabet * the input alphabet * @param oracle * the membership oracle */ @GenerateBuilder public NLStarLearner(Alphabet<I> alphabet, MembershipOracle<I, Boolean> oracle) { this.alphabet = alphabet; this.table = new ObservationTable<>(alphabet, oracle); }
/** * Constructor. * * @param alphabet * the learning alphabet * @param oracle * the learning membership oracle * @param suffixFinder * the {@link GlobalSuffixFinder suffix finder} to use for analyzing counterexamples * @param initialSplitters * the initial set of splitters, {@code null} or an empty collection will result in the set of splitters * being initialized as the set of alphabet symbols (interpreted as {@link Word}s) */ @GenerateBuilder(defaults = BuilderDefaults.class, builderFinal = false) public MealyDHC(Alphabet<I> alphabet, MembershipOracle<I, Word<O>> oracle, GlobalSuffixFinder<? super I, ? super Word<O>> suffixFinder, Collection<? extends Word<I>> initialSplitters) { this.alphabet = alphabet; this.oracle = oracle; this.suffixFinder = suffixFinder; // ensure that the first k splitters are the k alphabet symbols, // in correct order (this is required by scheduleSuccessors) for (I symbol : alphabet) { splitters.add(Word.fromLetter(symbol)); } if (initialSplitters != null) { splitters.addAll(initialSplitters); } }
@GenerateBuilder(defaults = AbstractTTTLearner.BuilderDefaults.class) public TTTLearnerMealy(Alphabet<I> alphabet, MembershipOracle<I, Word<O>> oracle, AcexAnalyzer analyzer) { super(alphabet, oracle, new TTTHypothesisMealy<>(alphabet), new BaseTTTDiscriminationTree<>(oracle, TTTDTNodeMealy::new), analyzer); }