All Downloads are FREE. Search and download functionalities are using the official Maven repository.

de.learnlib.algorithm.lstar.moore.ClassicLStarMooreBuilder Maven / Gradle / Ivy

Go to download

This artifact provides the implementation of the L* learning algorithm described in the paper "Learning Regular Sets from Queries and Counterexamples" (https://doi.org/10.1016/0890-5401(87)90052-6) by Dana Angluin including variations and optimizations thereof such as the versions based on "On the Learnability of Infinitary Regular Sets" (https://dx.doi.org/10.1006/inco.1995.1070) by Oded Maler and Amir Pnueli or "Inference of finite automata using homing sequences" (http://dx.doi.org/10.1006/inco.1993.1021) by Ronald L. Rivest and Robert E. Schapire.

The newest version!
/*
 * Automatically generated by BuilderGen, https://github.com/misberner/buildergen.
 * DO NOT EDIT THIS FILE! Your changes will be overwritten.
 * Edit the @GenerateBuilder specification of class
 * de.learnlib.algorithm.lstar.moore.ClassicLStarMoore
 */

package de.learnlib.algorithm.lstar.moore;

public final class ClassicLStarMooreBuilder<
		I extends java.lang.Object,
		O extends java.lang.Object> {

	private static<
			I extends java.lang.Object,
			O extends java.lang.Object> de.learnlib.algorithm.lstar.moore.ClassicLStarMoore $createDispatch(
		net.automatalib.alphabet.Alphabet alphabet,
		de.learnlib.oracle.MembershipOracle oracle,
		java.util.List> initialPrefixes,
		java.util.List> initialSuffixes,
		de.learnlib.algorithm.lstar.ce.ObservationTableCEXHandler cexHandler,
		de.learnlib.algorithm.lstar.closing.ClosingStrategy closingStrategy
		) {
		return new de.learnlib.algorithm.lstar.moore.ClassicLStarMoore(
			alphabet,
			oracle,
			initialPrefixes,
			initialSuffixes,
			cexHandler,
			closingStrategy
			);
	}

	private net.automatalib.alphabet.Alphabet alphabet;
	private de.learnlib.oracle.MembershipOracle oracle;
	private java.util.List> initialPrefixes;
	private java.util.List> initialSuffixes;
	private de.learnlib.algorithm.lstar.ce.ObservationTableCEXHandler cexHandler;
	private de.learnlib.algorithm.lstar.closing.ClosingStrategy closingStrategy;

	public ClassicLStarMooreBuilder() {
		this.initialPrefixes = de.learnlib.algorithm.lstar.AbstractExtensibleAutomatonLStar.BuilderDefaults.initialPrefixes();
		this.initialSuffixes = de.learnlib.algorithm.lstar.AbstractExtensibleAutomatonLStar.BuilderDefaults.initialSuffixes();
		this.cexHandler = de.learnlib.algorithm.lstar.AbstractExtensibleAutomatonLStar.BuilderDefaults.cexHandler();
		this.closingStrategy = de.learnlib.algorithm.lstar.AbstractExtensibleAutomatonLStar.BuilderDefaults.closingStrategy();
	}

	public de.learnlib.algorithm.lstar.moore.ClassicLStarMoore create() {
		return $createDispatch(
			this.alphabet,
			this.oracle,
			this.initialPrefixes,
			this.initialSuffixes,
			this.cexHandler,
			this.closingStrategy
			);
	}

	public net.automatalib.alphabet.Alphabet getAlphabet() {
		return this.alphabet;
	}
	public void setAlphabet(net.automatalib.alphabet.Alphabet alphabet) {
		this.alphabet = alphabet;
	}
	public ClassicLStarMooreBuilder withAlphabet(net.automatalib.alphabet.Alphabet alphabet) {
		this.alphabet = alphabet;
		return this;
	} 

	public de.learnlib.oracle.MembershipOracle getOracle() {
		return this.oracle;
	}
	public void setOracle(de.learnlib.oracle.MembershipOracle oracle) {
		this.oracle = oracle;
	}
	public ClassicLStarMooreBuilder withOracle(de.learnlib.oracle.MembershipOracle oracle) {
		this.oracle = oracle;
		return this;
	} 

	public java.util.List> getInitialPrefixes() {
		return this.initialPrefixes;
	}
	public void setInitialPrefixes(java.util.List> initialPrefixes) {
		this.initialPrefixes = initialPrefixes;
	}
	public ClassicLStarMooreBuilder withInitialPrefixes(java.util.List> initialPrefixes) {
		this.initialPrefixes = initialPrefixes;
		return this;
	} 

	public java.util.List> getInitialSuffixes() {
		return this.initialSuffixes;
	}
	public void setInitialSuffixes(java.util.List> initialSuffixes) {
		this.initialSuffixes = initialSuffixes;
	}
	public ClassicLStarMooreBuilder withInitialSuffixes(java.util.List> initialSuffixes) {
		this.initialSuffixes = initialSuffixes;
		return this;
	} 

	public de.learnlib.algorithm.lstar.ce.ObservationTableCEXHandler getCexHandler() {
		return this.cexHandler;
	}
	public void setCexHandler(de.learnlib.algorithm.lstar.ce.ObservationTableCEXHandler cexHandler) {
		this.cexHandler = cexHandler;
	}
	public ClassicLStarMooreBuilder withCexHandler(de.learnlib.algorithm.lstar.ce.ObservationTableCEXHandler cexHandler) {
		this.cexHandler = cexHandler;
		return this;
	} 

	public de.learnlib.algorithm.lstar.closing.ClosingStrategy getClosingStrategy() {
		return this.closingStrategy;
	}
	public void setClosingStrategy(de.learnlib.algorithm.lstar.closing.ClosingStrategy closingStrategy) {
		this.closingStrategy = closingStrategy;
	}
	public ClassicLStarMooreBuilder withClosingStrategy(de.learnlib.algorithm.lstar.closing.ClosingStrategy closingStrategy) {
		this.closingStrategy = closingStrategy;
		return this;
	} 

}