public class TwoPhaseHASCO<S extends ai.libs.jaicore.search.probleminputs.GraphSearchWithPathEvaluationsInput<N,A,java.lang.Double>,N,A> extends SoftwareConfigurationAlgorithm<TwoPhaseSoftwareConfigurationProblem,HASCOSolutionCandidate<java.lang.Double>,java.lang.Double>
| Constructor and Description |
|---|
TwoPhaseHASCO(TwoPhaseSoftwareConfigurationProblem problem,
TwoPhaseHASCOConfig config) |
TwoPhaseHASCO(TwoPhaseSoftwareConfigurationProblem problem,
TwoPhaseHASCOConfig config,
HASCO<S,N,A,java.lang.Double> hasco) |
| Modifier and Type | Method and Description |
|---|---|
void |
cancel() |
TwoPhaseHASCOConfig |
getConfig() |
int |
getExpectedRuntimeForPhase2ForAGivenPool(java.util.Collection<HASCOSolutionCandidate<java.lang.Double>> solutions) |
int |
getExpectedTotalRemainingRuntimeForAGivenPool(java.util.Collection<HASCOSolutionCandidate<java.lang.Double>> solutions,
boolean assumeCurrentlyBestCandidateToBeSelected) |
ai.libs.jaicore.search.core.interfaces.GraphGenerator<N,A> |
getGraphGenerator() |
HASCO<S,N,A,java.lang.Double> |
getHasco() |
java.lang.String |
getLoggerName() |
int |
getMaximumPostprocessingTimeOfAnyPoolMember(java.util.Collection<HASCOSolutionCandidate<java.lang.Double>> solutions) |
int |
getNumberOfConsideredSolutions() |
java.util.Queue<HASCOSolutionCandidate<java.lang.Double>> |
getPhase1ResultQueue() |
int |
getPostprocessingTimeOfCurrentlyBest() |
TwoPhaseHASCOReport |
getReort() |
int |
getSecondsSpentInPhase1() |
HASCOSolutionCandidate<java.lang.Double> |
getSelectedSolutionCandidate() |
java.util.List<HASCOSolutionCandidate<java.lang.Double>> |
getSelectionForPhase2() |
java.util.Map<HASCOSolutionCandidate<java.lang.Double>,java.lang.Double> |
getSelectionScoresOfCandidates() |
ai.libs.jaicore.basic.algorithm.events.AlgorithmEvent |
nextWithException() |
protected HASCOSolutionCandidate<java.lang.Double> |
selectModel() |
void |
setHasco(HASCO<S,N,A,java.lang.Double> hasco) |
void |
setLoggerName(java.lang.String name) |
void |
setNumberOfConsideredSolutions(int numberOfConsideredSolutions) |
protected boolean |
shouldSearchTerminate(long timeRemaining) |
void |
shutdown() |
java.lang.String |
toString() |
call, getBestSeenSolution, nextSolutionCandidate, nextSolutionCandidateEvent, setBestSeenSolution, updateBestSeenSolutioncollectAllSolutionsactivate, 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, unregisterThreadAndShutdownclone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitpublic TwoPhaseHASCO(TwoPhaseSoftwareConfigurationProblem problem, TwoPhaseHASCOConfig config)
public TwoPhaseHASCO(TwoPhaseSoftwareConfigurationProblem problem, TwoPhaseHASCOConfig config, HASCO<S,N,A,java.lang.Double> hasco)
public java.lang.String toString()
toString in class java.lang.Objectpublic ai.libs.jaicore.basic.algorithm.events.AlgorithmEvent nextWithException()
throws java.lang.InterruptedException,
ai.libs.jaicore.basic.algorithm.exceptions.AlgorithmTimeoutedException,
ai.libs.jaicore.basic.algorithm.exceptions.AlgorithmException,
ai.libs.jaicore.basic.algorithm.AlgorithmExecutionCanceledException
java.lang.InterruptedExceptionai.libs.jaicore.basic.algorithm.exceptions.AlgorithmTimeoutedExceptionai.libs.jaicore.basic.algorithm.exceptions.AlgorithmExceptionai.libs.jaicore.basic.algorithm.AlgorithmExecutionCanceledExceptionprotected boolean shouldSearchTerminate(long timeRemaining)
public java.util.List<HASCOSolutionCandidate<java.lang.Double>> getSelectionForPhase2()
public int getExpectedTotalRemainingRuntimeForAGivenPool(java.util.Collection<HASCOSolutionCandidate<java.lang.Double>> solutions, boolean assumeCurrentlyBestCandidateToBeSelected)
public int getPostprocessingTimeOfCurrentlyBest()
public int getMaximumPostprocessingTimeOfAnyPoolMember(java.util.Collection<HASCOSolutionCandidate<java.lang.Double>> solutions)
public int getExpectedRuntimeForPhase2ForAGivenPool(java.util.Collection<HASCOSolutionCandidate<java.lang.Double>> solutions)
protected HASCOSolutionCandidate<java.lang.Double> selectModel() throws java.lang.InterruptedException
java.lang.InterruptedExceptionpublic java.util.Queue<HASCOSolutionCandidate<java.lang.Double>> getPhase1ResultQueue()
public int getSecondsSpentInPhase1()
public java.util.Map<HASCOSolutionCandidate<java.lang.Double>,java.lang.Double> getSelectionScoresOfCandidates()
public void shutdown()
shutdown in class ai.libs.jaicore.basic.algorithm.AAlgorithm<TwoPhaseSoftwareConfigurationProblem,HASCOSolutionCandidate<java.lang.Double>>public void cancel()
cancel in interface ai.libs.jaicore.basic.Cancelablecancel in class ai.libs.jaicore.basic.algorithm.AAlgorithm<TwoPhaseSoftwareConfigurationProblem,HASCOSolutionCandidate<java.lang.Double>>public HASCOSolutionCandidate<java.lang.Double> getSelectedSolutionCandidate()
public TwoPhaseHASCOConfig getConfig()
getConfig in interface ai.libs.jaicore.basic.algorithm.IAlgorithm<TwoPhaseSoftwareConfigurationProblem,HASCOSolutionCandidate<java.lang.Double>>getConfig in class ai.libs.jaicore.basic.algorithm.AAlgorithm<TwoPhaseSoftwareConfigurationProblem,HASCOSolutionCandidate<java.lang.Double>>public int getNumberOfConsideredSolutions()
public void setNumberOfConsideredSolutions(int numberOfConsideredSolutions)
numberOfConsideredSolutions - The number of considered solutions in the
selection phase.public ai.libs.jaicore.search.core.interfaces.GraphGenerator<N,A> getGraphGenerator()
public TwoPhaseHASCOReport getReort()
public java.lang.String getLoggerName()
getLoggerName in interface ai.libs.jaicore.basic.ILoggingCustomizablegetLoggerName in class ai.libs.jaicore.basic.algorithm.AOptimizer<TwoPhaseSoftwareConfigurationProblem,HASCOSolutionCandidate<java.lang.Double>,java.lang.Double>public void setLoggerName(java.lang.String name)
setLoggerName in interface ai.libs.jaicore.basic.ILoggingCustomizablesetLoggerName in class ai.libs.jaicore.basic.algorithm.AOptimizer<TwoPhaseSoftwareConfigurationProblem,HASCOSolutionCandidate<java.lang.Double>,java.lang.Double>