Class HASCOReduction<V extends java.lang.Comparable<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
    • 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.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 HASCO
      ai.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)  
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • 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:
        encodeProblem in interface ai.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 interface ai.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)