Search in sources :

Example 1 with SpecsForRandomTableFactorGeneration

use of com.sri.ai.praise.core.representation.interfacebased.factor.core.table.helper.SpecsForRandomTableFactorGeneration in project aic-praise by aic-sri-international.

the class PerformanceTest method varyingCardinalityOfVariablesForUnaryFactorOperation.

@Test
public void varyingCardinalityOfVariablesForUnaryFactorOperation() {
    println("\n");
    println("==================================================================================================");
    println("|| Testing UNARY OPERATION based on CARDINALITY OF VARIABLES and comparing to CONTEXT SPLITTING ||");
    println("==================================================================================================");
    println("  Test Parameters:");
    println("      number of variables = numberOfVariablesPerFactor");
    println("      variable cardinality = ||varies||");
    println("==================================================================================================");
    SpecsForRandomTableFactorGeneration factorSpecs = new SpecsForRandomTableFactorGeneration(GLOBAL_TABLE_FACTOR_SPECS);
    // STARTING VARIABLE NUMBER
    int cardinality = 0;
    ArrayList<FactorOperationResultAndTimes> operationResultsAndTimes;
    do {
        cardinality++;
        println("|| CARDINALITY: " + cardinality + " ||");
        factorSpecs.cardinalities = fill(numberOfVariablesPerFactor, cardinality);
        operationResultsAndTimes = evaluate(factorSpecs);
        println("==================================================================================================");
    } while (estimateTimeForNextCardinality(cardinality, operationResultsAndTimes) < timeLimitPerOperation);
    println();
}
Also used : SpecsForRandomTableFactorGeneration(com.sri.ai.praise.core.representation.interfacebased.factor.core.table.helper.SpecsForRandomTableFactorGeneration) Util.print(com.sri.ai.util.Util.print) Test(org.junit.Test)

Example 2 with SpecsForRandomTableFactorGeneration

use of com.sri.ai.praise.core.representation.interfacebased.factor.core.table.helper.SpecsForRandomTableFactorGeneration in project aic-praise by aic-sri-international.

the class PerformanceTest method varyingNumberOfVariablesForUnaryFactorOperation.

@Test
public void varyingNumberOfVariablesForUnaryFactorOperation() {
    println("\n");
    println("==================================================================================================");
    println("||    Testing UNARY OPERATION based on NUMBER OF VARIABLES and comparing to CONTEXT SPLITTING   ||");
    println("==================================================================================================");
    println("  Test Parameters:");
    println("      number of variables = ||varies||");
    println("      variable cardinality = " + cardinalityOfVariables);
    println("==================================================================================================");
    SpecsForRandomTableFactorGeneration factorSpecs = new SpecsForRandomTableFactorGeneration(GLOBAL_TABLE_FACTOR_SPECS);
    explanationBlockToFile("explanation.txt", "Perfomance tests of unary operation...", code(() -> {
        // STARTING VARIABLE NUMBER
        int numberOfVariables = initialNumberOfVariablesWhenVaryingThat - 1;
        ArrayList<FactorOperationResultAndTimes> operationResultsAndTimes;
        do {
            numberOfVariables++;
            if (numberOfVariables == finalNumberOfVariablesWhenVaryingThat + 1)
                break;
            operationResultsAndTimes = evaluateForGivenNumberOfVariables(numberOfVariables, factorSpecs);
        } while (estimateTimeForNextVariableCount(operationResultsAndTimes) < timeLimitPerOperation);
    }));
    println();
}
Also used : SpecsForRandomTableFactorGeneration(com.sri.ai.praise.core.representation.interfacebased.factor.core.table.helper.SpecsForRandomTableFactorGeneration) ArrayList(java.util.ArrayList) Test(org.junit.Test)

Example 3 with SpecsForRandomTableFactorGeneration

use of com.sri.ai.praise.core.representation.interfacebased.factor.core.table.helper.SpecsForRandomTableFactorGeneration in project aic-praise by aic-sri-international.

the class PerformanceTest method singleRunForUnaryFactorOperation.

private void singleRunForUnaryFactorOperation() {
    println("\n");
    println("==================================================================================================");
    println("||                                  Testing UNARY OPERATION                                     ||");
    println("==================================================================================================");
    println("  Test Parameters:");
    println("      number of variables = " + numberOfVariablesPerFactor);
    println("      variable cardinality = " + cardinalityOfVariables);
    println("==================================================================================================");
    SpecsForRandomTableFactorGeneration factorGenerationSpecs = new SpecsForRandomTableFactorGeneration(GLOBAL_TABLE_FACTOR_SPECS);
    List<Factor> factors = constructEquivalentRandomFactorsRepresentedInDifferentWays(factorGenerationSpecs);
    ArrayList<FactorOperationResultAndTimes> operationResultsAndTimes = recordTimesForFactorOperation(unaryFactorOperation, factors);
    printOperationResults(factors, operationResultsAndTimes);
    compareWithSimulatedContextSplittingTimesIfNeeded(operationResultsAndTimes);
    println("==================================================================================================");
    println();
}
Also used : SpecsForRandomTableFactorGeneration(com.sri.ai.praise.core.representation.interfacebased.factor.core.table.helper.SpecsForRandomTableFactorGeneration) ExpressionFactor(com.sri.ai.praise.core.representation.interfacebased.factor.core.expression.api.ExpressionFactor) Factor(com.sri.ai.praise.core.representation.interfacebased.factor.api.Factor) TableFactor(com.sri.ai.praise.core.representation.interfacebased.factor.core.table.TableFactor) RandomTableFactorMaker.makeRandomTableFactor(com.sri.ai.praise.core.representation.interfacebased.factor.core.table.helper.RandomTableFactorMaker.makeRandomTableFactor)

Aggregations

SpecsForRandomTableFactorGeneration (com.sri.ai.praise.core.representation.interfacebased.factor.core.table.helper.SpecsForRandomTableFactorGeneration)3 Test (org.junit.Test)2 Factor (com.sri.ai.praise.core.representation.interfacebased.factor.api.Factor)1 ExpressionFactor (com.sri.ai.praise.core.representation.interfacebased.factor.core.expression.api.ExpressionFactor)1 TableFactor (com.sri.ai.praise.core.representation.interfacebased.factor.core.table.TableFactor)1 RandomTableFactorMaker.makeRandomTableFactor (com.sri.ai.praise.core.representation.interfacebased.factor.core.table.helper.RandomTableFactorMaker.makeRandomTableFactor)1 Util.print (com.sri.ai.util.Util.print)1 ArrayList (java.util.ArrayList)1