Class RandomCompletionBasedNodeEvaluator<T,A,V extends java.lang.Comparable<V>>
- java.lang.Object
-
- ai.libs.jaicore.search.algorithms.standard.bestfirst.nodeevaluation.TimeAwareNodeEvaluator<T,A,V>
-
- ai.libs.jaicore.search.algorithms.standard.bestfirst.nodeevaluation.RandomCompletionBasedNodeEvaluator<T,A,V>
-
- All Implemented Interfaces:
org.api4.java.ai.graphsearch.problem.pathsearch.pathevaluation.ICancelablePathEvaluator,org.api4.java.ai.graphsearch.problem.pathsearch.pathevaluation.IPathEvaluator<T,A,V>,org.api4.java.ai.graphsearch.problem.pathsearch.pathevaluation.IPotentiallyGraphDependentPathEvaluator<T,A,V>,org.api4.java.ai.graphsearch.problem.pathsearch.pathevaluation.IPotentiallySolutionReportingPathEvaluator<T,A,V>,org.api4.java.ai.graphsearch.problem.pathsearch.pathevaluation.IPotentiallyUncertaintyAnnotatingPathEvaluator<T,A,V>,org.api4.java.common.attributedobjects.IGetter<org.api4.java.datastructure.graph.ILabeledPath<T,A>,V>,org.api4.java.common.attributedobjects.IObjectEvaluator<org.api4.java.datastructure.graph.ILabeledPath<T,A>,V>,org.api4.java.common.control.ILoggingCustomizable
public class RandomCompletionBasedNodeEvaluator<T,A,V extends java.lang.Comparable<V>> extends TimeAwareNodeEvaluator<T,A,V> implements org.api4.java.ai.graphsearch.problem.pathsearch.pathevaluation.IPotentiallyGraphDependentPathEvaluator<T,A,V>, org.api4.java.ai.graphsearch.problem.pathsearch.pathevaluation.IPotentiallySolutionReportingPathEvaluator<T,A,V>, org.api4.java.ai.graphsearch.problem.pathsearch.pathevaluation.ICancelablePathEvaluator, org.api4.java.ai.graphsearch.problem.pathsearch.pathevaluation.IPotentiallyUncertaintyAnnotatingPathEvaluator<T,A,V>, org.api4.java.common.control.ILoggingCustomizable
-
-
Field Summary
Fields Modifier and Type Field Description protected intdesiredNumberOfSuccesfulSamplesprotected SolutionEventBus<T>eventBusprotected java.util.Map<org.api4.java.datastructure.graph.ILabeledPath<T,A>,V>fValuesprotected org.api4.java.datastructure.graph.implicit.IGraphGenerator<T,A>generatorprotected org.api4.java.ai.graphsearch.problem.implicit.graphgenerator.IPathGoalTester<T,A>goalTesterprotected intmaxSamplesprotected java.util.Map<java.lang.String,java.lang.Integer>plFailsprotected java.util.Map<java.lang.String,java.lang.Integer>plSuccessesprotected java.util.Set<org.api4.java.datastructure.graph.ILabeledPath<T,A>>postedSolutionsprotected java.util.Map<java.lang.String,java.lang.Integer>ppFailsprotected java.util.Randomrandomprotected Trootprotected java.util.Map<java.util.List<T>,V>scoresOfSolutionPathsprotected org.api4.java.common.attributedobjects.IObjectEvaluator<org.api4.java.datastructure.graph.ILabeledPath<T,A>,V>solutionEvaluatorprotected longtimestampOfFirstEvaluationprotected java.util.Map<java.util.List<T>,java.lang.Integer>timesToComputeEvaluationsprotected org.api4.java.ai.graphsearch.problem.pathsearch.pathevaluation.IUncertaintySource<T,A,V>uncertaintySourceprotected java.util.Set<java.util.List<T>>unsuccessfulPaths
-
Constructor Summary
Constructors Constructor Description RandomCompletionBasedNodeEvaluator(java.util.Random random, int desiredNumberOfSuccessfulSamples, int maxSamples, org.api4.java.common.attributedobjects.IObjectEvaluator<org.api4.java.datastructure.graph.ILabeledPath<T,A>,V> solutionEvaluator)RandomCompletionBasedNodeEvaluator(java.util.Random random, int desiredNumberOfSuccessfulSamples, int maxSamples, org.api4.java.common.attributedobjects.IObjectEvaluator<org.api4.java.datastructure.graph.ILabeledPath<T,A>,V> solutionEvaluator, int timeoutForSingleCompletionEvaluationInMS, int timeoutForNodeEvaluationInMS)RandomCompletionBasedNodeEvaluator(java.util.Random random, int desiredNumberOfSuccessfulSamples, int maxSamples, org.api4.java.common.attributedobjects.IObjectEvaluator<org.api4.java.datastructure.graph.ILabeledPath<T,A>,V> solutionEvaluator, int timeoutForSingleCompletionEvaluationInMS, int timeoutForNodeEvaluationInMS, java.util.function.Predicate<T> priorityPredicateForRDFS)RandomCompletionBasedNodeEvaluator(java.util.Random random, int samples, org.api4.java.common.attributedobjects.IObjectEvaluator<org.api4.java.datastructure.graph.ILabeledPath<T,A>,V> solutionEvaluator)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description booleanannotatesUncertainty()voidcancelActiveTasks()protected VevaluateTimeouted(org.api4.java.datastructure.graph.ILabeledPath<T,A> path, int timeout)protected VgetFValueOfSolutionPath(org.api4.java.datastructure.graph.ILabeledPath<T,A> path)java.lang.StringgetLoggerName()org.api4.java.datastructure.graph.ILabeledPath<T,A>getNextRandomPathCompletionForNode(BackPointerPath<T,A,?> n)org.api4.java.common.attributedobjects.IObjectEvaluator<org.api4.java.datastructure.graph.ILabeledPath<T,A>,V>getSolutionEvaluator()booleanisVisualizeSubSearch()protected voidpostSolution(org.api4.java.datastructure.graph.ILabeledPath<T,A> solution)voidreceiveCompleterEvent(NodeExpansionCompletedEvent<BackPointerPath<T,A,java.lang.Double>> event)voidregisterSolutionListener(java.lang.Object listener)booleanreportsSolutions()booleanrequiresGraphGenerator()voidsetGenerator(org.api4.java.datastructure.graph.implicit.IGraphGenerator<T,A> generator, org.api4.java.ai.graphsearch.problem.implicit.graphgenerator.IPathGoalTester<T,A> goalTester)voidsetLoggerName(java.lang.String name)voidsetUncertaintySource(org.api4.java.ai.graphsearch.problem.pathsearch.pathevaluation.IUncertaintySource<T,A,V> uncertaintySource)voidsetVisualizeSubSearch(boolean visualizeSubSearch)java.lang.StringtoString()-
Methods inherited from class ai.libs.jaicore.search.algorithms.standard.bestfirst.nodeevaluation.TimeAwareNodeEvaluator
checkInterruption, evaluate, getFallbackNodeEvaluator, getTimeoutForNodeEvaluationInMS, getTotalDeadline, setTotalDeadline
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
-
-
-
-
Field Detail
-
unsuccessfulPaths
protected java.util.Set<java.util.List<T>> unsuccessfulPaths
-
postedSolutions
protected java.util.Set<org.api4.java.datastructure.graph.ILabeledPath<T,A>> postedSolutions
-
timesToComputeEvaluations
protected java.util.Map<java.util.List<T>,java.lang.Integer> timesToComputeEvaluations
-
scoresOfSolutionPaths
protected java.util.Map<java.util.List<T>,V extends java.lang.Comparable<V>> scoresOfSolutionPaths
-
fValues
protected java.util.Map<org.api4.java.datastructure.graph.ILabeledPath<T,A>,V extends java.lang.Comparable<V>> fValues
-
ppFails
protected java.util.Map<java.lang.String,java.lang.Integer> ppFails
-
plFails
protected java.util.Map<java.lang.String,java.lang.Integer> plFails
-
plSuccesses
protected java.util.Map<java.lang.String,java.lang.Integer> plSuccesses
-
root
protected T root
-
goalTester
protected org.api4.java.ai.graphsearch.problem.implicit.graphgenerator.IPathGoalTester<T,A> goalTester
-
timestampOfFirstEvaluation
protected long timestampOfFirstEvaluation
-
random
protected final java.util.Random random
-
desiredNumberOfSuccesfulSamples
protected final int desiredNumberOfSuccesfulSamples
-
maxSamples
protected final int maxSamples
-
solutionEvaluator
protected final org.api4.java.common.attributedobjects.IObjectEvaluator<org.api4.java.datastructure.graph.ILabeledPath<T,A>,V extends java.lang.Comparable<V>> solutionEvaluator
-
uncertaintySource
protected org.api4.java.ai.graphsearch.problem.pathsearch.pathevaluation.IUncertaintySource<T,A,V extends java.lang.Comparable<V>> uncertaintySource
-
eventBus
protected SolutionEventBus<T> eventBus
-
-
Constructor Detail
-
RandomCompletionBasedNodeEvaluator
public RandomCompletionBasedNodeEvaluator(java.util.Random random, int samples, org.api4.java.common.attributedobjects.IObjectEvaluator<org.api4.java.datastructure.graph.ILabeledPath<T,A>,V> solutionEvaluator)
-
RandomCompletionBasedNodeEvaluator
public RandomCompletionBasedNodeEvaluator(java.util.Random random, int desiredNumberOfSuccessfulSamples, int maxSamples, org.api4.java.common.attributedobjects.IObjectEvaluator<org.api4.java.datastructure.graph.ILabeledPath<T,A>,V> solutionEvaluator)
-
RandomCompletionBasedNodeEvaluator
public RandomCompletionBasedNodeEvaluator(java.util.Random random, int desiredNumberOfSuccessfulSamples, int maxSamples, org.api4.java.common.attributedobjects.IObjectEvaluator<org.api4.java.datastructure.graph.ILabeledPath<T,A>,V> solutionEvaluator, int timeoutForSingleCompletionEvaluationInMS, int timeoutForNodeEvaluationInMS)
-
RandomCompletionBasedNodeEvaluator
public RandomCompletionBasedNodeEvaluator(java.util.Random random, int desiredNumberOfSuccessfulSamples, int maxSamples, org.api4.java.common.attributedobjects.IObjectEvaluator<org.api4.java.datastructure.graph.ILabeledPath<T,A>,V> solutionEvaluator, int timeoutForSingleCompletionEvaluationInMS, int timeoutForNodeEvaluationInMS, java.util.function.Predicate<T> priorityPredicateForRDFS)
-
-
Method Detail
-
evaluateTimeouted
protected V evaluateTimeouted(org.api4.java.datastructure.graph.ILabeledPath<T,A> path, int timeout) throws java.lang.InterruptedException, org.api4.java.ai.graphsearch.problem.pathsearch.pathevaluation.PathEvaluationException
- Specified by:
evaluateTimeoutedin classTimeAwareNodeEvaluator<T,A,V extends java.lang.Comparable<V>>- Throws:
java.lang.InterruptedExceptionorg.api4.java.ai.graphsearch.problem.pathsearch.pathevaluation.PathEvaluationException
-
getNextRandomPathCompletionForNode
public org.api4.java.datastructure.graph.ILabeledPath<T,A> getNextRandomPathCompletionForNode(BackPointerPath<T,A,?> n) throws java.lang.InterruptedException, RCNEPathCompletionFailedException
- Throws:
java.lang.InterruptedExceptionRCNEPathCompletionFailedException
-
getFValueOfSolutionPath
protected V getFValueOfSolutionPath(org.api4.java.datastructure.graph.ILabeledPath<T,A> path) throws java.lang.InterruptedException, org.api4.java.ai.graphsearch.problem.pathsearch.pathevaluation.PathEvaluationException
- Throws:
java.lang.InterruptedExceptionorg.api4.java.ai.graphsearch.problem.pathsearch.pathevaluation.PathEvaluationException
-
postSolution
protected void postSolution(org.api4.java.datastructure.graph.ILabeledPath<T,A> solution)
-
setGenerator
public void setGenerator(org.api4.java.datastructure.graph.implicit.IGraphGenerator<T,A> generator, org.api4.java.ai.graphsearch.problem.implicit.graphgenerator.IPathGoalTester<T,A> goalTester)
-
receiveCompleterEvent
public void receiveCompleterEvent(NodeExpansionCompletedEvent<BackPointerPath<T,A,java.lang.Double>> event)
-
registerSolutionListener
public void registerSolutionListener(java.lang.Object listener)
-
cancelActiveTasks
public void cancelActiveTasks()
- Specified by:
cancelActiveTasksin interfaceorg.api4.java.ai.graphsearch.problem.pathsearch.pathevaluation.ICancelablePathEvaluator
-
setUncertaintySource
public void setUncertaintySource(org.api4.java.ai.graphsearch.problem.pathsearch.pathevaluation.IUncertaintySource<T,A,V> uncertaintySource)
-
getSolutionEvaluator
public org.api4.java.common.attributedobjects.IObjectEvaluator<org.api4.java.datastructure.graph.ILabeledPath<T,A>,V> getSolutionEvaluator()
-
isVisualizeSubSearch
public boolean isVisualizeSubSearch()
-
setVisualizeSubSearch
public void setVisualizeSubSearch(boolean visualizeSubSearch)
-
setLoggerName
public void setLoggerName(java.lang.String name)
- Specified by:
setLoggerNamein interfaceorg.api4.java.common.control.ILoggingCustomizable- Overrides:
setLoggerNamein classTimeAwareNodeEvaluator<T,A,V extends java.lang.Comparable<V>>
-
getLoggerName
public java.lang.String getLoggerName()
- Specified by:
getLoggerNamein interfaceorg.api4.java.common.control.ILoggingCustomizable- Overrides:
getLoggerNamein classTimeAwareNodeEvaluator<T,A,V extends java.lang.Comparable<V>>
-
toString
public java.lang.String toString()
- Overrides:
toStringin classjava.lang.Object
-
requiresGraphGenerator
public boolean requiresGraphGenerator()
-
reportsSolutions
public boolean reportsSolutions()
-
-