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();
}
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();
}
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();
}
Aggregations