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

aima.core.probability.proposition.SubsetProposition 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.proposition;

import java.util.Map;

import aima.core.probability.RandomVariable;
import aima.core.probability.domain.FiniteDomain;

public class SubsetProposition extends AbstractDerivedProposition {

	private FiniteDomain subsetDomain = null;
	private RandomVariable varSubsetOf = null;
	//
	private String toString = null;

	public SubsetProposition(String name, FiniteDomain subsetDomain,
			RandomVariable ofVar) {
		super(name);

		if (null == subsetDomain) {
			throw new IllegalArgumentException("Sum Domain must be specified.");
		}
		this.subsetDomain = subsetDomain;
		this.varSubsetOf = ofVar;
		addScope(this.varSubsetOf);
	}

	//
	// START-Proposition
	public boolean holds(Map possibleWorld) {
		return subsetDomain.getPossibleValues().contains(
				possibleWorld.get(varSubsetOf));
	}

	// END-Proposition
	//

	@Override
	public String toString() {
		if (null == toString) {
			StringBuilder sb = new StringBuilder();
			sb.append(getDerivedName());
			sb.append(" = ");
			sb.append(subsetDomain.toString());
			toString = sb.toString();
		}
		return toString;
	}
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy