use of com.sri.ai.praise.core.representation.interfacebased.factor.api.Factor in project aic-praise by aic-sri-international.
the class Polytopes method makeProductOfFactors.
private static Factor makeProductOfFactors(List<? extends AtomicPolytope> convexHulls) {
List<Factor> factors = collectFactorsFromIntensionalPolytopes(convexHulls);
Factor productOfFactors = Factor.multiply(factors);
return productOfFactors;
}
use of com.sri.ai.praise.core.representation.interfacebased.factor.api.Factor in project aic-praise by aic-sri-international.
the class Polytopes method makeProjectedPolytopeOfIntensionalConvexHull.
private static Polytope makeProjectedPolytopeOfIntensionalConvexHull(List<? extends Variable> variablesToBeSummedOut, List<Polytope> dependentOfVariablesToBeSummedOut) {
List<Variable> simplexVariables = collectSimplexVariables(dependentOfVariablesToBeSummedOut);
List<Variable> indicesFromConvexHulls = collectIndicesFromIntensionalPolytopes(dependentOfVariablesToBeSummedOut);
List<Factor> factors = collectFactorsFromIntensionalPolytopes(dependentOfVariablesToBeSummedOut);
Factor productOfFactors = Factor.multiply(factors);
List<? extends Variable> variablesToBeSummedOutOnceSimplexesAreDealtWith = subtract(variablesToBeSummedOut, simplexVariables);
Factor projectedFactor = productOfFactors.sumOut(variablesToBeSummedOutOnceSimplexesAreDealtWith);
List<Variable> finalIndices = union(indicesFromConvexHulls, simplexVariables);
Polytope projectedPolytope = new IntensionalConvexHullOfFactors(finalIndices, projectedFactor);
return projectedPolytope;
}
use of com.sri.ai.praise.core.representation.interfacebased.factor.api.Factor in project aic-praise by aic-sri-international.
the class Polytopes method mergeIntensionalConvexHulls.
private static IntensionalConvexHullOfFactors mergeIntensionalConvexHulls(List<? extends AtomicPolytope> convexHulls) {
List<Variable> indicesFromConvexHulls = collectIndicesFromIntensionalPolytopes(convexHulls);
Factor productOfFactors = makeProductOfFactors(convexHulls);
IntensionalConvexHullOfFactors result = new IntensionalConvexHullOfFactors(indicesFromConvexHulls, productOfFactors);
return result;
}
use of com.sri.ai.praise.core.representation.interfacebased.factor.api.Factor in project aic-praise by aic-sri-international.
the class ConstantFactor method evaluateAsFactor.
private Factor evaluateAsFactor(Expression expression, Context context) {
Expression resultFactorExpression = evaluate(expression, context);
Factor result = makeFactor(resultFactorExpression, context);
return result;
}
use of com.sri.ai.praise.core.representation.interfacebased.factor.api.Factor in project aic-praise by aic-sri-international.
the class ConstantFactor method multiply.
@Override
public Factor multiply(Factor another) {
Factor result = null;
if (another instanceof ConstantFactor) {
ConstantFactor anotherConstant = (ConstantFactor) another;
result = multiplyTwoConstantFactors(anotherConstant);
} else if (another instanceof ExpressionFactor) {
ExpressionFactor anotherExpression = (ExpressionFactor) another;
result = evaluateAsFactor(Times.make(makeSymbol(getConstant()), (Expression) another), anotherExpression.getContext());
} else if (another instanceof TableFactor) {
TableFactor anotherTable = (TableFactor) another;
result = multiplyWithTableFactor(anotherTable);
} else {
throw new Error("Unknown class for another : class was " + another.getClass());
}
return result;
}
Aggregations