Package ai.libs.hasco.core
Class HASCO<S extends ai.libs.jaicore.search.probleminputs.GraphSearchWithPathEvaluationsInput<N,A,V>,N,A,V extends java.lang.Comparable<V>>
- 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<P,O,V>
-
- ai.libs.hasco.optimizingfactory.SoftwareConfigurationAlgorithm<RefinementConfiguredSoftwareConfigurationProblem<V>,HASCOSolutionCandidate<V>,V>
-
- ai.libs.hasco.core.HASCO<S,N,A,V>
-
- Type Parameters:
S-N-A-V-
- All Implemented Interfaces:
ai.libs.jaicore.basic.algorithm.IAlgorithm<RefinementConfiguredSoftwareConfigurationProblem<V>,HASCOSolutionCandidate<V>>,ai.libs.jaicore.basic.algorithm.IOptimizationAlgorithm<RefinementConfiguredSoftwareConfigurationProblem<V>,HASCOSolutionCandidate<V>,V>,ai.libs.jaicore.basic.algorithm.ISolutionCandidateIterator<RefinementConfiguredSoftwareConfigurationProblem<V>,HASCOSolutionCandidate<V>>,ai.libs.jaicore.basic.Cancelable,ai.libs.jaicore.basic.ILoggingCustomizable,java.lang.Iterable<ai.libs.jaicore.basic.algorithm.events.AlgorithmEvent>,java.util.concurrent.Callable<HASCOSolutionCandidate<V>>,java.util.Iterator<ai.libs.jaicore.basic.algorithm.events.AlgorithmEvent>
- Direct Known Subclasses:
HASCOViaFD
public class HASCO<S extends ai.libs.jaicore.search.probleminputs.GraphSearchWithPathEvaluationsInput<N,A,V>,N,A,V extends java.lang.Comparable<V>> extends SoftwareConfigurationAlgorithm<RefinementConfiguredSoftwareConfigurationProblem<V>,HASCOSolutionCandidate<V>,V>
Hierarchically create an object of type T
-
-
Constructor Summary
Constructors Constructor Description HASCO(HASCOConfig algorithmConfig, RefinementConfiguredSoftwareConfigurationProblem<V> configurationProblem, IHASCOPlanningReduction<N,A> planningGraphGeneratorDeriver, ai.libs.jaicore.search.core.interfaces.IOptimalPathInORGraphSearchFactory<S,N,A,V> searchFactory, ai.libs.jaicore.basic.algorithm.reduction.AlgorithmicProblemReduction<? super ai.libs.jaicore.search.probleminputs.GraphSearchWithPathEvaluationsInput<N,A,V>,? super ai.libs.jaicore.search.model.other.EvaluatedSearchGraphPath<N,A,V>,S,ai.libs.jaicore.search.model.other.EvaluatedSearchGraphPath<N,A,V>> searchProblemTransformer)HASCO(RefinementConfiguredSoftwareConfigurationProblem<V> configurationProblem, IHASCOPlanningReduction<N,A> planningGraphGeneratorDeriver, ai.libs.jaicore.search.core.interfaces.IOptimalPathInORGraphSearchFactory<S,N,A,V> searchFactory, ai.libs.jaicore.basic.algorithm.reduction.AlgorithmicProblemReduction<? super ai.libs.jaicore.search.probleminputs.GraphSearchWithPathEvaluationsInput<N,A,V>,? super ai.libs.jaicore.search.model.other.EvaluatedSearchGraphPath<N,A,V>,S,ai.libs.jaicore.search.model.other.EvaluatedSearchGraphPath<N,A,V>> searchProblemTransformer)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voidcancel()HASCOConfiggetConfig()ai.libs.jaicore.search.core.interfaces.GraphGenerator<N,A>getGraphGenerator()java.lang.StringgetLoggerName()IHASCOPlanningReduction<N,A>getPlanningGraphGeneratorDeriver()ai.libs.jaicore.planning.hierarchical.problems.htn.CostSensitiveHTNPlanningProblem<ai.libs.jaicore.planning.hierarchical.problems.ceocipstn.CEOCIPSTNPlanningProblem,V>getPlanningProblem()HASCORunReport<V>getReport()ai.libs.jaicore.search.core.interfaces.IOptimalPathInORGraphSearch<S,N,A,V>getSearch()ai.libs.jaicore.search.core.interfaces.IOptimalPathInORGraphSearchFactory<S,N,A,V>getSearchFactory()ai.libs.jaicore.basic.algorithm.reduction.AlgorithmicProblemReduction<? super ai.libs.jaicore.search.probleminputs.GraphSearchWithPathEvaluationsInput<N,A,V>,? super ai.libs.jaicore.search.model.other.EvaluatedSearchGraphPath<N,A,V>,S,ai.libs.jaicore.search.model.other.EvaluatedSearchGraphPath<N,A,V>>getSearchProblemTransformer()ai.libs.jaicore.basic.algorithm.events.AlgorithmEventnextWithException()voidsetCreateComponentInstancesFromNodesInsteadOfPlans(boolean cIsFromNodes)voidsetLoggerName(java.lang.String name)protected voidshutdown()java.lang.StringtoString()-
Methods inherited from class ai.libs.jaicore.basic.algorithm.AOptimizer
call, getBestSeenSolution, nextSolutionCandidate, nextSolutionCandidateEvent, setBestSeenSolution, 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, checkAndConductTermination, checkTermination, computeTimeoutAware, getActivationTime, getId, getInput, getNumCPUs, getRemainingTimeToDeadline, getState, getTimeout, getTimeoutPrecautionOffset, hasNext, hasThreadBeenInterruptedDuringShutdown, interruptThreadAsPartOfShutdown, isCanceled, isShutdownInitialized, isStopCriterionSatisfied, isTimeouted, iterator, next, post, registerActiveThread, registerListener, resolveShutdownInterruptOnCurrentThread, setConfig, 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
-
-
-
-
Constructor Detail
-
HASCO
public HASCO(RefinementConfiguredSoftwareConfigurationProblem<V> configurationProblem, IHASCOPlanningReduction<N,A> planningGraphGeneratorDeriver, ai.libs.jaicore.search.core.interfaces.IOptimalPathInORGraphSearchFactory<S,N,A,V> searchFactory, ai.libs.jaicore.basic.algorithm.reduction.AlgorithmicProblemReduction<? super ai.libs.jaicore.search.probleminputs.GraphSearchWithPathEvaluationsInput<N,A,V>,? super ai.libs.jaicore.search.model.other.EvaluatedSearchGraphPath<N,A,V>,S,ai.libs.jaicore.search.model.other.EvaluatedSearchGraphPath<N,A,V>> searchProblemTransformer)
-
HASCO
public HASCO(HASCOConfig algorithmConfig, RefinementConfiguredSoftwareConfigurationProblem<V> configurationProblem, IHASCOPlanningReduction<N,A> planningGraphGeneratorDeriver, ai.libs.jaicore.search.core.interfaces.IOptimalPathInORGraphSearchFactory<S,N,A,V> searchFactory, ai.libs.jaicore.basic.algorithm.reduction.AlgorithmicProblemReduction<? super ai.libs.jaicore.search.probleminputs.GraphSearchWithPathEvaluationsInput<N,A,V>,? super ai.libs.jaicore.search.model.other.EvaluatedSearchGraphPath<N,A,V>,S,ai.libs.jaicore.search.model.other.EvaluatedSearchGraphPath<N,A,V>> searchProblemTransformer)
-
-
Method Detail
-
nextWithException
public ai.libs.jaicore.basic.algorithm.events.AlgorithmEvent nextWithException() throws java.lang.InterruptedException, ai.libs.jaicore.basic.algorithm.AlgorithmExecutionCanceledException, ai.libs.jaicore.basic.algorithm.exceptions.AlgorithmTimeoutedException, ai.libs.jaicore.basic.algorithm.exceptions.AlgorithmException- Throws:
java.lang.InterruptedExceptionai.libs.jaicore.basic.algorithm.AlgorithmExecutionCanceledExceptionai.libs.jaicore.basic.algorithm.exceptions.AlgorithmTimeoutedExceptionai.libs.jaicore.basic.algorithm.exceptions.AlgorithmException
-
getGraphGenerator
public ai.libs.jaicore.search.core.interfaces.GraphGenerator<N,A> getGraphGenerator()
-
getPlanningProblem
public ai.libs.jaicore.planning.hierarchical.problems.htn.CostSensitiveHTNPlanningProblem<ai.libs.jaicore.planning.hierarchical.problems.ceocipstn.CEOCIPSTNPlanningProblem,V> getPlanningProblem()
-
cancel
public void cancel()
- Specified by:
cancelin interfaceai.libs.jaicore.basic.Cancelable- Overrides:
cancelin classai.libs.jaicore.basic.algorithm.AAlgorithm<RefinementConfiguredSoftwareConfigurationProblem<V extends java.lang.Comparable<V>>,HASCOSolutionCandidate<V extends java.lang.Comparable<V>>>
-
getPlanningGraphGeneratorDeriver
public IHASCOPlanningReduction<N,A> getPlanningGraphGeneratorDeriver()
-
getSearchProblemTransformer
public ai.libs.jaicore.basic.algorithm.reduction.AlgorithmicProblemReduction<? super ai.libs.jaicore.search.probleminputs.GraphSearchWithPathEvaluationsInput<N,A,V>,? super ai.libs.jaicore.search.model.other.EvaluatedSearchGraphPath<N,A,V>,S,ai.libs.jaicore.search.model.other.EvaluatedSearchGraphPath<N,A,V>> getSearchProblemTransformer()
-
getReport
public HASCORunReport<V> getReport()
-
shutdown
protected void shutdown()
- Overrides:
shutdownin classai.libs.jaicore.basic.algorithm.AAlgorithm<RefinementConfiguredSoftwareConfigurationProblem<V extends java.lang.Comparable<V>>,HASCOSolutionCandidate<V extends java.lang.Comparable<V>>>
-
getConfig
public HASCOConfig getConfig()
- Specified by:
getConfigin interfaceai.libs.jaicore.basic.algorithm.IAlgorithm<S extends ai.libs.jaicore.search.probleminputs.GraphSearchWithPathEvaluationsInput<N,A,V>,N>- Overrides:
getConfigin classai.libs.jaicore.basic.algorithm.AAlgorithm<RefinementConfiguredSoftwareConfigurationProblem<V extends java.lang.Comparable<V>>,HASCOSolutionCandidate<V extends java.lang.Comparable<V>>>
-
getSearchFactory
public ai.libs.jaicore.search.core.interfaces.IOptimalPathInORGraphSearchFactory<S,N,A,V> getSearchFactory()
-
getSearch
public ai.libs.jaicore.search.core.interfaces.IOptimalPathInORGraphSearch<S,N,A,V> getSearch()
-
getLoggerName
public java.lang.String getLoggerName()
- Specified by:
getLoggerNamein interfaceai.libs.jaicore.basic.ILoggingCustomizable- Overrides:
getLoggerNamein classai.libs.jaicore.basic.algorithm.AOptimizer<RefinementConfiguredSoftwareConfigurationProblem<V extends java.lang.Comparable<V>>,HASCOSolutionCandidate<V extends java.lang.Comparable<V>>,V extends java.lang.Comparable<V>>
-
setLoggerName
public void setLoggerName(java.lang.String name)
- Specified by:
setLoggerNamein interfaceai.libs.jaicore.basic.ILoggingCustomizable- Overrides:
setLoggerNamein classai.libs.jaicore.basic.algorithm.AOptimizer<RefinementConfiguredSoftwareConfigurationProblem<V extends java.lang.Comparable<V>>,HASCOSolutionCandidate<V extends java.lang.Comparable<V>>,V extends java.lang.Comparable<V>>
-
setCreateComponentInstancesFromNodesInsteadOfPlans
public void setCreateComponentInstancesFromNodesInsteadOfPlans(boolean cIsFromNodes)
-
toString
public java.lang.String toString()
- Overrides:
toStringin classjava.lang.Object
-
-