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

aima.core.probability.bayes.approx.BayesInferenceApproxAdapter Maven / Gradle / Ivy

Go to download

AIMA-Java Core Algorithms from the book Artificial Intelligence a Modern Approach 3rd Ed.

The newest version!
package aima.core.probability.bayes.approx;

import aima.core.probability.CategoricalDistribution;
import aima.core.probability.RandomVariable;
import aima.core.probability.bayes.BayesInference;
import aima.core.probability.bayes.BayesianNetwork;
import aima.core.probability.proposition.AssignmentProposition;

/**
 * An Adapter class to let BayesSampleInference implementations to be used in
 * places where calls are being made to the BayesInference API.
 * 
 * @author Ciaran O'Reilly
 */
public class BayesInferenceApproxAdapter implements BayesInference {
	private int N = 1000;
	private BayesSampleInference adaptee = null;

	public BayesInferenceApproxAdapter(BayesSampleInference adaptee) {
		this.adaptee = adaptee;
	}

	public BayesInferenceApproxAdapter(BayesSampleInference adaptee, int N) {
		this.adaptee = adaptee;
		this.N = N;
	}

	/**
	 * 
	 * @return the number of Samples when calling the BayesSampleInference
	 *         adaptee.
	 */
	public int getN() {
		return N;
	}

	/**
	 * 
	 * @param n
	 *            the numver of samples to be generated when calling the
	 *            BayesSampleInference adaptee.
	 */
	public void setN(int n) {
		N = n;
	}

	/**
	 * 
	 * @return The BayesSampleInference implementation to be adapted to the
	 *         BayesInference API.
	 */
	public BayesSampleInference getAdaptee() {
		return adaptee;
	}

	/**
	 * 
	 * @param adaptee
	 *            the BayesSampleInference implementation be be apated to the
	 *            BayesInference API.
	 */
	public void setAdaptee(BayesSampleInference adaptee) {
		this.adaptee = adaptee;
	}

	//
	// START-BayesInference
	@Override
	public CategoricalDistribution ask(final RandomVariable[] X,
			final AssignmentProposition[] observedEvidence,
			final BayesianNetwork bn) {
		return adaptee.ask(X, observedEvidence, bn, N);
	}

	// END-BayesInference
	//
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy