Package ai.libs.hasco.reduction
Class HASCOReduction<V extends java.lang.Comparable<V>>
- java.lang.Object
-
- ai.libs.hasco.reduction.HASCOReduction<V>
-
- All Implemented Interfaces:
ai.libs.jaicore.basic.algorithm.reduction.AlgorithmicProblemReduction<RefinementConfiguredSoftwareConfigurationProblem<V>,ComponentInstance,ai.libs.jaicore.planning.hierarchical.problems.htn.CostSensitiveHTNPlanningProblem<ai.libs.jaicore.planning.hierarchical.problems.ceocipstn.CEOCIPSTNPlanningProblem,V>,ai.libs.jaicore.planning.core.interfaces.IEvaluatedPlan<V>>
public class HASCOReduction<V extends java.lang.Comparable<V>> extends java.lang.Object implements ai.libs.jaicore.basic.algorithm.reduction.AlgorithmicProblemReduction<RefinementConfiguredSoftwareConfigurationProblem<V>,ComponentInstance,ai.libs.jaicore.planning.hierarchical.problems.htn.CostSensitiveHTNPlanningProblem<ai.libs.jaicore.planning.hierarchical.problems.ceocipstn.CEOCIPSTNPlanningProblem,V>,ai.libs.jaicore.planning.core.interfaces.IEvaluatedPlan<V>>
This is the class that conducts the actual problem reduction of software configuration to HTN Planning
-
-
Constructor Summary
Constructors Constructor Description HASCOReduction(java.util.function.Supplier<HASCOSolutionCandidate<V>> bestSolutionSupplier)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description ComponentInstancedecodeSolution(ai.libs.jaicore.planning.core.interfaces.IEvaluatedPlan<V> solution)ComponentInstancedecodeSolution(ai.libs.jaicore.planning.core.interfaces.IPlan plan)ai.libs.jaicore.planning.hierarchical.problems.htn.CostSensitiveHTNPlanningProblem<ai.libs.jaicore.planning.hierarchical.problems.ceocipstn.CEOCIPSTNPlanningProblem,V>encodeProblem(RefinementConfiguredSoftwareConfigurationProblem<V> problem)java.util.Collection<java.lang.String>getExistingInterfaces()<T,A>
ai.libs.jaicore.search.core.interfaces.GraphGenerator<T,A>getGraphGeneratorUsedByHASCOForSpecificPlanner(IHASCOPlanningReduction<T,A> transformer)This method is a utility for everybody who wants to work on the graph obtained from HASCO's reduction but without using the search logic of HASCOai.libs.jaicore.logic.fol.structure.MonomgetInitState()ai.libs.jaicore.planning.hierarchical.problems.ceocipstn.CEOCIPSTNPlanningDomaingetPlanningDomain()ai.libs.jaicore.planning.hierarchical.problems.ceocipstn.CEOCIPSTNPlanningProblemgetPlanningProblem()ai.libs.jaicore.planning.hierarchical.problems.ceocipstn.CEOCIPSTNPlanningProblemgetPlanningProblem(ai.libs.jaicore.planning.hierarchical.problems.ceocipstn.CEOCIPSTNPlanningDomain domain, ai.libs.jaicore.logic.fol.structure.CNFFormula knowledge, ai.libs.jaicore.logic.fol.structure.Monom init)
-
-
-
Constructor Detail
-
HASCOReduction
public HASCOReduction(java.util.function.Supplier<HASCOSolutionCandidate<V>> bestSolutionSupplier)
-
-
Method Detail
-
getInitState
public ai.libs.jaicore.logic.fol.structure.Monom getInitState()
-
getExistingInterfaces
public java.util.Collection<java.lang.String> getExistingInterfaces()
-
getPlanningDomain
public ai.libs.jaicore.planning.hierarchical.problems.ceocipstn.CEOCIPSTNPlanningDomain getPlanningDomain()
-
getPlanningProblem
public ai.libs.jaicore.planning.hierarchical.problems.ceocipstn.CEOCIPSTNPlanningProblem getPlanningProblem(ai.libs.jaicore.planning.hierarchical.problems.ceocipstn.CEOCIPSTNPlanningDomain domain, ai.libs.jaicore.logic.fol.structure.CNFFormula knowledge, ai.libs.jaicore.logic.fol.structure.Monom init)
-
getPlanningProblem
public ai.libs.jaicore.planning.hierarchical.problems.ceocipstn.CEOCIPSTNPlanningProblem getPlanningProblem()
-
getGraphGeneratorUsedByHASCOForSpecificPlanner
public <T,A> ai.libs.jaicore.search.core.interfaces.GraphGenerator<T,A> getGraphGeneratorUsedByHASCOForSpecificPlanner(IHASCOPlanningReduction<T,A> transformer)
This method is a utility for everybody who wants to work on the graph obtained from HASCO's reduction but without using the search logic of HASCO- Parameters:
plannerFactory-- Returns:
-
encodeProblem
public ai.libs.jaicore.planning.hierarchical.problems.htn.CostSensitiveHTNPlanningProblem<ai.libs.jaicore.planning.hierarchical.problems.ceocipstn.CEOCIPSTNPlanningProblem,V> encodeProblem(RefinementConfiguredSoftwareConfigurationProblem<V> problem)
- Specified by:
encodeProblemin interfaceai.libs.jaicore.basic.algorithm.reduction.AlgorithmicProblemReduction<RefinementConfiguredSoftwareConfigurationProblem<V extends java.lang.Comparable<V>>,ComponentInstance,ai.libs.jaicore.planning.hierarchical.problems.htn.CostSensitiveHTNPlanningProblem<ai.libs.jaicore.planning.hierarchical.problems.ceocipstn.CEOCIPSTNPlanningProblem,V extends java.lang.Comparable<V>>,ai.libs.jaicore.planning.core.interfaces.IEvaluatedPlan<V extends java.lang.Comparable<V>>>
-
decodeSolution
public ComponentInstance decodeSolution(ai.libs.jaicore.planning.core.interfaces.IEvaluatedPlan<V> solution)
- Specified by:
decodeSolutionin interfaceai.libs.jaicore.basic.algorithm.reduction.AlgorithmicProblemReduction<RefinementConfiguredSoftwareConfigurationProblem<V extends java.lang.Comparable<V>>,ComponentInstance,ai.libs.jaicore.planning.hierarchical.problems.htn.CostSensitiveHTNPlanningProblem<ai.libs.jaicore.planning.hierarchical.problems.ceocipstn.CEOCIPSTNPlanningProblem,V extends java.lang.Comparable<V>>,ai.libs.jaicore.planning.core.interfaces.IEvaluatedPlan<V extends java.lang.Comparable<V>>>
-
decodeSolution
public ComponentInstance decodeSolution(ai.libs.jaicore.planning.core.interfaces.IPlan plan)
-
-