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:
java.lang.Iterable<org.api4.java.algorithm.events.IAlgorithmEvent>,java.util.concurrent.Callable<HASCOSolutionCandidate<V>>,java.util.Iterator<org.api4.java.algorithm.events.IAlgorithmEvent>,org.api4.java.algorithm.IAlgorithm<RefinementConfiguredSoftwareConfigurationProblem<V>,HASCOSolutionCandidate<V>>,org.api4.java.algorithm.IOptimizationAlgorithm<RefinementConfiguredSoftwareConfigurationProblem<V>,HASCOSolutionCandidate<V>,V>,org.api4.java.algorithm.ISolutionCandidateIterator<RefinementConfiguredSoftwareConfigurationProblem<V>,HASCOSolutionCandidate<V>>,org.api4.java.common.control.ICancelable,org.api4.java.common.control.ILoggingCustomizable
- 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, org.api4.java.ai.graphsearch.problem.IOptimalPathInORGraphSearchFactory<S,ai.libs.jaicore.search.model.other.EvaluatedSearchGraphPath<N,A,V>,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, org.api4.java.ai.graphsearch.problem.IOptimalPathInORGraphSearchFactory<S,ai.libs.jaicore.search.model.other.EvaluatedSearchGraphPath<N,A,V>,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()org.api4.java.datastructure.graph.implicit.IGraphGenerator<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()org.api4.java.ai.graphsearch.problem.IOptimalPathInORGraphSearch<S,ai.libs.jaicore.search.model.other.EvaluatedSearchGraphPath<N,A,V>,N,A,V>getSearch()org.api4.java.ai.graphsearch.problem.IOptimalPathInORGraphSearchFactory<S,ai.libs.jaicore.search.model.other.EvaluatedSearchGraphPath<N,A,V>,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()org.api4.java.algorithm.events.IAlgorithmEventnextWithException()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, 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
-
-
-
-
Constructor Detail
-
HASCO
public HASCO(RefinementConfiguredSoftwareConfigurationProblem<V> configurationProblem, IHASCOPlanningReduction<N,A> planningGraphGeneratorDeriver, org.api4.java.ai.graphsearch.problem.IOptimalPathInORGraphSearchFactory<S,ai.libs.jaicore.search.model.other.EvaluatedSearchGraphPath<N,A,V>,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, org.api4.java.ai.graphsearch.problem.IOptimalPathInORGraphSearchFactory<S,ai.libs.jaicore.search.model.other.EvaluatedSearchGraphPath<N,A,V>,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 org.api4.java.algorithm.events.IAlgorithmEvent nextWithException() throws java.lang.InterruptedException, org.api4.java.algorithm.exceptions.AlgorithmExecutionCanceledException, org.api4.java.algorithm.exceptions.AlgorithmTimeoutedException, org.api4.java.algorithm.exceptions.AlgorithmException- Throws:
java.lang.InterruptedExceptionorg.api4.java.algorithm.exceptions.AlgorithmExecutionCanceledExceptionorg.api4.java.algorithm.exceptions.AlgorithmTimeoutedExceptionorg.api4.java.algorithm.exceptions.AlgorithmException
-
getGraphGenerator
public org.api4.java.datastructure.graph.implicit.IGraphGenerator<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 interfaceorg.api4.java.common.control.ICancelable- 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 interfaceorg.api4.java.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 org.api4.java.ai.graphsearch.problem.IOptimalPathInORGraphSearchFactory<S,ai.libs.jaicore.search.model.other.EvaluatedSearchGraphPath<N,A,V>,N,A,V,?> getSearchFactory()
-
getSearch
public org.api4.java.ai.graphsearch.problem.IOptimalPathInORGraphSearch<S,ai.libs.jaicore.search.model.other.EvaluatedSearchGraphPath<N,A,V>,N,A,V> getSearch()
-
getLoggerName
public java.lang.String getLoggerName()
- Specified by:
getLoggerNamein interfaceorg.api4.java.common.control.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 interfaceorg.api4.java.common.control.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
-
-