Search in sources :

Example 1 with DefaultExplanationTree

use of com.sri.ai.util.explanation.tree.DefaultExplanationTree in project aic-praise by aic-sri-international.

the class EagerExactBPNodeEvaluator method makeExplanation.

private ExplanationTree makeExplanation(Factor factor, List<? extends Factor> incomingMessages) {
    List<? extends ExplanationTree> explanationsOfSubs = mapIntoList(incomingMessages, Factor::getExplanation);
    ExplanationTree result;
    if (incomingMessages.size() == 0) {
        result = new DefaultExplanationTree("uniform distribution, since there is no more information on this variable");
    } else if (incomingMessages.size() == 1) {
        result = getFirst(explanationsOfSubs);
    } else {
        result = new DefaultExplanationTree("<" + conditionOnlyIfDeterministic(factor) + ">, from multiplying:", explanationsOfSubs);
    }
    return result;
}
Also used : Factor(com.sri.ai.praise.core.representation.interfacebased.factor.api.Factor) DefaultExplanationTree(com.sri.ai.util.explanation.tree.DefaultExplanationTree) ExplanationTree(com.sri.ai.util.explanation.tree.ExplanationTree) DefaultExplanationTree(com.sri.ai.util.explanation.tree.DefaultExplanationTree)

Aggregations

Factor (com.sri.ai.praise.core.representation.interfacebased.factor.api.Factor)1 DefaultExplanationTree (com.sri.ai.util.explanation.tree.DefaultExplanationTree)1 ExplanationTree (com.sri.ai.util.explanation.tree.ExplanationTree)1