Class LimitedDiscrepancySearch<I extends GraphSearchWithNodeRecommenderInput<N,​A>,​N,​A,​V extends java.lang.Comparable<V>>

  • All Implemented Interfaces:
    java.lang.Iterable<org.api4.java.algorithm.events.IAlgorithmEvent>, java.util.concurrent.Callable<EvaluatedSearchGraphPath<N,​A,​V>>, java.util.Iterator<org.api4.java.algorithm.events.IAlgorithmEvent>, org.api4.java.ai.graphsearch.problem.IOptimalPathInORGraphSearch<I,​EvaluatedSearchGraphPath<N,​A,​V>,​N,​A,​V>, org.api4.java.ai.graphsearch.problem.IPathInORGraphSearch<I,​EvaluatedSearchGraphPath<N,​A,​V>,​N,​A>, org.api4.java.ai.graphsearch.problem.IPathSearch<I,​EvaluatedSearchGraphPath<N,​A,​V>,​N,​A>, org.api4.java.algorithm.IAlgorithm<I,​EvaluatedSearchGraphPath<N,​A,​V>>, org.api4.java.algorithm.IOptimizationAlgorithm<I,​EvaluatedSearchGraphPath<N,​A,​V>,​V>, org.api4.java.algorithm.ISolutionCandidateIterator<I,​EvaluatedSearchGraphPath<N,​A,​V>>, 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 LimitedDiscrepancySearch<I extends GraphSearchWithNodeRecommenderInput<N,​A>,​N,​A,​V extends java.lang.Comparable<V>>
    extends AOptimalPathInORGraphSearch<I,​N,​A,​V>
    Implementation of the algorithm presented in
    • Field Summary

      Fields 
      Modifier and Type Field Description
      protected java.util.Map<N,​A> actionToNode  
      protected java.util.Collection<ai.libs.jaicore.graph.TreeNode<N>> exhausted  
      protected java.util.Collection<ai.libs.jaicore.graph.TreeNode<N>> expanded  
      protected java.util.Comparator<N> heuristic  
      protected org.api4.java.ai.graphsearch.problem.implicit.graphgenerator.IPathGoalTester<N,​A> pathGoalTester  
      protected org.api4.java.datastructure.graph.implicit.ISingleRootGenerator<N> rootGenerator  
      protected org.api4.java.datastructure.graph.implicit.ISuccessorGenerator<N,​A> successorGenerator  
      protected ai.libs.jaicore.graph.TreeNode<N> traversalTree  
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      java.lang.String getLoggerName()  
      protected ai.libs.jaicore.graph.TreeNode<N> newNode​(ai.libs.jaicore.graph.TreeNode<N> parent, N newNode)  
      org.api4.java.algorithm.events.IAlgorithmEvent nextWithException()  
      void setLoggerName​(java.lang.String name)  
      • 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, getConfig, 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, shutdown, terminate, unregisterActiveThread, unregisterThreadAndShutdown
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
      • Methods inherited from interface org.api4.java.algorithm.IAlgorithm

        call, getConfig, getId, getInput, getNumCPUs, getTimeout, registerListener, setMaxNumThreads, setNumCPUs, setTimeout, setTimeout
      • Methods inherited from interface org.api4.java.common.control.ICancelable

        cancel
      • Methods inherited from interface org.api4.java.algorithm.ISolutionCandidateIterator

        nextSolutionCandidate
      • Methods inherited from interface java.lang.Iterable

        forEach, iterator, spliterator
      • Methods inherited from interface java.util.Iterator

        forEachRemaining, hasNext, next, remove
    • Field Detail

      • traversalTree

        protected ai.libs.jaicore.graph.TreeNode<N> traversalTree
      • actionToNode

        protected java.util.Map<N,​A> actionToNode
      • expanded

        protected java.util.Collection<ai.libs.jaicore.graph.TreeNode<N>> expanded
      • exhausted

        protected java.util.Collection<ai.libs.jaicore.graph.TreeNode<N>> exhausted
      • rootGenerator

        protected final org.api4.java.datastructure.graph.implicit.ISingleRootGenerator<N> rootGenerator
      • successorGenerator

        protected final org.api4.java.datastructure.graph.implicit.ISuccessorGenerator<N,​A> successorGenerator
      • pathGoalTester

        protected final org.api4.java.ai.graphsearch.problem.implicit.graphgenerator.IPathGoalTester<N,​A> pathGoalTester
      • heuristic

        protected final java.util.Comparator<N> heuristic
    • Constructor Detail

      • LimitedDiscrepancySearch

        public LimitedDiscrepancySearch​(I problemInput)
    • Method Detail

      • nextWithException

        public org.api4.java.algorithm.events.IAlgorithmEvent nextWithException()
                                                                         throws java.lang.InterruptedException,
                                                                                org.api4.java.algorithm.exceptions.AlgorithmTimeoutedException,
                                                                                org.api4.java.algorithm.exceptions.AlgorithmExecutionCanceledException,
                                                                                org.api4.java.algorithm.exceptions.AlgorithmException
        Throws:
        java.lang.InterruptedException
        org.api4.java.algorithm.exceptions.AlgorithmTimeoutedException
        org.api4.java.algorithm.exceptions.AlgorithmExecutionCanceledException
        org.api4.java.algorithm.exceptions.AlgorithmException
      • newNode

        protected ai.libs.jaicore.graph.TreeNode<N> newNode​(ai.libs.jaicore.graph.TreeNode<N> parent,
                                                            N newNode)