Class BranchAndBound<N,A>
- java.lang.Object
-
- ai.libs.jaicore.basic.algorithm.AAlgorithm<I,O>
-
- ai.libs.jaicore.basic.algorithm.ASolutionCandidateIterator<I,O>
-
- ai.libs.jaicore.basic.algorithm.AOptimizer<I,EvaluatedSearchGraphPath<N,A,V>,V>
-
- ai.libs.jaicore.search.core.interfaces.AOptimalPathInORGraphSearch<I,N,A,V>
-
- ai.libs.jaicore.search.algorithms.standard.bestfirst.BestFirst<GraphSearchWithSubpathEvaluationsInput<N,A,V>,N,A,V>
-
- ai.libs.jaicore.search.algorithms.standard.bestfirst.StandardBestFirst<N,A,java.lang.Double>
-
- ai.libs.jaicore.search.algorithms.standard.bnb.BranchAndBound<N,A>
-
- Type Parameters:
N
-A
-
- All Implemented Interfaces:
java.lang.Iterable<org.api4.java.algorithm.events.IAlgorithmEvent>
,java.util.concurrent.Callable<EvaluatedSearchGraphPath<N,A,java.lang.Double>>
,java.util.Iterator<org.api4.java.algorithm.events.IAlgorithmEvent>
,org.api4.java.ai.graphsearch.problem.IOptimalPathInORGraphSearch<GraphSearchWithSubpathEvaluationsInput<N,A,java.lang.Double>,EvaluatedSearchGraphPath<N,A,java.lang.Double>,N,A,java.lang.Double>
,org.api4.java.ai.graphsearch.problem.IPathInORGraphSearch<GraphSearchWithSubpathEvaluationsInput<N,A,java.lang.Double>,EvaluatedSearchGraphPath<N,A,java.lang.Double>,N,A>
,org.api4.java.ai.graphsearch.problem.IPathSearch<GraphSearchWithSubpathEvaluationsInput<N,A,java.lang.Double>,EvaluatedSearchGraphPath<N,A,java.lang.Double>,N,A>
,org.api4.java.algorithm.IAlgorithm<GraphSearchWithSubpathEvaluationsInput<N,A,java.lang.Double>,EvaluatedSearchGraphPath<N,A,java.lang.Double>>
,org.api4.java.algorithm.IOptimizationAlgorithm<GraphSearchWithSubpathEvaluationsInput<N,A,java.lang.Double>,EvaluatedSearchGraphPath<N,A,java.lang.Double>,java.lang.Double>
,org.api4.java.algorithm.ISolutionCandidateIterator<GraphSearchWithSubpathEvaluationsInput<N,A,java.lang.Double>,EvaluatedSearchGraphPath<N,A,java.lang.Double>>
,org.api4.java.common.control.ICancelable
,org.api4.java.common.control.ILoggingCustomizable
,org.api4.java.common.event.IEventEmitter<java.lang.Object>
,org.api4.java.common.event.IRelaxedEventEmitter
public class BranchAndBound<N,A> extends StandardBestFirst<N,A,java.lang.Double>
Branch and Bound algorithm. The evaluations given for each node must be optimistic (lower bounds).
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from class ai.libs.jaicore.search.algorithms.standard.bestfirst.BestFirst
BestFirst.ParentDiscarding
-
-
Field Summary
-
Fields inherited from class ai.libs.jaicore.search.algorithms.standard.bestfirst.BestFirst
activeJobs, additionalThreadsForNodeAttachment, ext2int, graphGenerator, nodeEvaluator, open, pathGoalTester, pendingSolutionFoundEvents, rootGenerator, solutions, successorGenerator
-
-
Constructor Summary
Constructors Constructor Description BranchAndBound(org.api4.java.ai.graphsearch.problem.IPathSearchWithPathEvaluationsInput<N,A,java.lang.Double> problem, org.api4.java.ai.graphsearch.problem.pathsearch.pathevaluation.IPathEvaluator<N,A,java.lang.Double> lowerBoundComputer, int numSamplesPerNode)
-
Method Summary
All Methods Static Methods Concrete Methods Modifier and Type Method Description static <N,A>
GraphSearchWithSubpathEvaluationsInput<N,A,java.lang.Double>encodeBoundsIntoProblem(org.api4.java.ai.graphsearch.problem.IPathSearchWithPathEvaluationsInput<N,A,java.lang.Double> problem, int numSamplesPerNode)
-
Methods inherited from class ai.libs.jaicore.search.algorithms.standard.bestfirst.BestFirst
afterExpansion, afterInitialization, afterSelection, beforeExpansion, beforeSelection, bootstrap, expandNextNode, getAdditionalThreadsForExpansion, getConfig, getCreatedCounter, getCurrentPathToNode, getExpandedCounter, getFValue, getFValue, getInternalRepresentationOf, getLocalVersionOfNode, getLoggerName, getNodeAnnotation, getNodeAnnotations, getNodeEvaluator, getOpen, getSolutionQueue, getTimeoutForComputationOfF, initGraph, insertNodeIntoLocalGraph, isShutdownComplete, labelNode, newNode, newNode, nextNodeExpansion, nextSolutionThatDominatesOpen, nextWithException, onFValueReceivedEvent, receiveNodeAnnotationEvent, receiveRolloutEvent, receiveSolutionCandidateAnnotationEvent, receiveSolutionCandidateEvent, registerSolution, selectNodeForNextExpansion, selectNodeForNextExpansion, setLoggerName, setOpen, setTimeoutForComputationOfF, shutdown, toDetailedString, toString
-
Methods inherited from class ai.libs.jaicore.search.core.interfaces.AOptimalPathInORGraphSearch
getGoalTester, getGraphGenerator, nextSolutionCandidateEvent
-
Methods inherited from class ai.libs.jaicore.basic.algorithm.AOptimizer
call, getBestScoreKnownToExist, getBestSeenSolution, nextSolutionCandidate, setBestSeenSolution, tellAboutBestScoreKnownToExist, updateBestSeenSolution
-
Methods inherited from class ai.libs.jaicore.basic.algorithm.ASolutionCandidateIterator
collectAllSolutions
-
Methods inherited from class ai.libs.jaicore.basic.algorithm.AAlgorithm
activate, announceTimeoutDetected, avoidReinterruptionOnShutdownOnCurrentThread, cancel, checkAndConductTermination, checkTermination, computeTimeoutAware, getActivationTime, getDeadline, getId, getInput, getListeners, getNumCPUs, getRemainingTimeToDeadline, getState, getTimeout, getTimeoutPrecautionOffset, hasNext, hasThreadBeenInterruptedDuringShutdown, interruptThreadAsPartOfShutdown, isCanceled, isShutdownInitialized, isStopCriterionSatisfied, isTimeoutDefined, isTimeouted, iterator, next, post, registerActiveThread, registerListener, resolveShutdownInterruptOnCurrentThread, setConfig, setDeadline, setMaxNumThreads, setNumCPUs, setState, setTimeout, setTimeout, setTimeoutPrecautionOffset, terminate, unregisterActiveThread, unregisterThreadAndShutdown
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
-
Methods inherited from interface org.api4.java.algorithm.IAlgorithm
call, getId, getInput, getNumCPUs, getTimeout, registerListener, setMaxNumThreads, setNumCPUs, setTimeout, setTimeout
-
-
-
-
Method Detail
-
encodeBoundsIntoProblem
public static <N,A> GraphSearchWithSubpathEvaluationsInput<N,A,java.lang.Double> encodeBoundsIntoProblem(org.api4.java.ai.graphsearch.problem.IPathSearchWithPathEvaluationsInput<N,A,java.lang.Double> problem, int numSamplesPerNode)
-
-