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 ComponentInstance
decodeSolution(ai.libs.jaicore.planning.core.interfaces.IEvaluatedPlan<V> solution)
ComponentInstance
decodeSolution(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.function.Supplier<HASCOSolutionCandidate<V>>
getBestSolutionSupplier()
java.util.Collection<java.lang.String>
getExistingInterfaces()
<T,A>
org.api4.java.datastructure.graph.implicit.IGraphGenerator<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.Monom
getInitState()
ai.libs.jaicore.planning.hierarchical.problems.ceocipstn.CEOCIPSTNPlanningDomain
getPlanningDomain()
ai.libs.jaicore.planning.hierarchical.problems.ceocipstn.CEOCIPSTNPlanningProblem
getPlanningProblem()
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)
-
-
-
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> org.api4.java.datastructure.graph.implicit.IGraphGenerator<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:
encodeProblem
in 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:
decodeSolution
in 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)
-
getBestSolutionSupplier
public java.util.function.Supplier<HASCOSolutionCandidate<V>> getBestSolutionSupplier()
-
-