Search in sources :

Example 61 with Factor

use of com.sri.ai.praise.core.representation.interfacebased.factor.api.Factor 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)61 ExpressionFactor (com.sri.ai.praise.core.representation.interfacebased.factor.core.expression.api.ExpressionFactor)34 ConstantFactor (com.sri.ai.praise.core.representation.interfacebased.factor.core.ConstantFactor)26 TableFactor (com.sri.ai.praise.core.representation.interfacebased.factor.core.table.TableFactor)21 Expression (com.sri.ai.expresso.api.Expression)20 DefaultExpressionFactor (com.sri.ai.praise.core.representation.interfacebased.factor.core.expression.core.DefaultExpressionFactor)18 Context (com.sri.ai.grinder.api.Context)16 CommonTheory (com.sri.ai.grinder.application.CommonTheory)16 TrueContext (com.sri.ai.grinder.core.TrueContext)16 Test (org.junit.Test)14 Theory (com.sri.ai.grinder.api.Theory)13 DifferenceArithmeticTheory (com.sri.ai.grinder.theory.differencearithmetic.DifferenceArithmeticTheory)11 Variable (com.sri.ai.praise.core.representation.interfacebased.factor.api.Variable)10 RandomTableFactorMaker.makeRandomTableFactor (com.sri.ai.praise.core.representation.interfacebased.factor.core.table.helper.RandomTableFactorMaker.makeRandomTableFactor)10 ArrayList (java.util.ArrayList)10 CompoundTheory (com.sri.ai.grinder.theory.compound.CompoundTheory)9 EqualityTheory (com.sri.ai.grinder.theory.equality.EqualityTheory)9 LinearRealArithmeticTheory (com.sri.ai.grinder.theory.linearrealarithmetic.LinearRealArithmeticTheory)9 PropositionalTheory (com.sri.ai.grinder.theory.propositional.PropositionalTheory)9 TupleTheory (com.sri.ai.grinder.theory.tuple.TupleTheory)9