aima.core.probability.bayes.approx.BayesInferenceApproxAdapter Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of aima-core Show documentation
Show all versions of aima-core Show documentation
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
//
}