Class Problem

java.lang.Object
gov.nasa.jpl.aerie.scheduler.model.Problem

public class Problem extends Object
description of a planning problem to be solved
  • Field Details

    • planningHorizon

      protected final PlanningHorizon planningHorizon
    • sourceSchedulingGoals

      public final Map<gov.nasa.jpl.aerie.types.ActivityDirectiveId,GoalId> sourceSchedulingGoals
    • goalsOrderedByPriority

      protected final List<Goal> goalsOrderedByPriority
      container of all goals in the problem, indexed by name
  • Constructor Details

    • Problem

      public Problem(gov.nasa.jpl.aerie.merlin.driver.MissionModel<?> mission, PlanningHorizon planningHorizon, SimulationFacade simulationFacade, gov.nasa.jpl.aerie.merlin.protocol.model.SchedulerModel schedulerModel, Map<gov.nasa.jpl.aerie.types.ActivityDirectiveId,GoalId> sourceSchedulingGoals)
      creates a new empty problem based in the given mission model
      Parameters:
      mission - IN the mission model that this problem is based on
    • Problem

      public Problem(gov.nasa.jpl.aerie.merlin.driver.MissionModel<?> mission, PlanningHorizon planningHorizon, SimulationFacade simulationFacade, gov.nasa.jpl.aerie.merlin.protocol.model.SchedulerModel schedulerModel)
  • Method Details

    • getSimulationFacade

      public SimulationFacade getSimulationFacade()
    • getPlanningHorizon

      public PlanningHorizon getPlanningHorizon()
    • getSchedulerModel

      public gov.nasa.jpl.aerie.merlin.protocol.model.SchedulerModel getSchedulerModel()
    • add

      public void add(GlobalConstraintWithIntrospection globalConstraint)
      adds a new global constraint to the mission model
      Parameters:
      globalConstraint - IN the global constraint
    • getGlobalConstraints

      public List<GlobalConstraintWithIntrospection> getGlobalConstraints()
    • getMissionModel

      public gov.nasa.jpl.aerie.merlin.driver.MissionModel<?> getMissionModel()
      fetches the mission model that this problem is based on
      Returns:
      the mission model that this problem is based on
    • getInitialPlan

      public Plan getInitialPlan()
      fetches the initial seed plan that schedulers may start from
      Returns:
      the initial seed plan that schedulers may start from
    • setInitialPlan

      public void setInitialPlan(Plan plan, Optional<gov.nasa.jpl.aerie.merlin.driver.SimulationResults> initialSimulationResults)
      sets the initial seed plan that schedulers may start from
      Parameters:
      plan - the initial seed plan that schedulers may start from
      initialSimulationResults - optional initial simulation results associated to the initial plan
    • setInitialPlan

      public void setInitialPlan(Plan plan)
      sets the initial seed plan that schedulers may start from
      Parameters:
      plan - the initial seed plan that schedulers may start from
    • getInitialSimulationResults

      public Optional<SimulationData> getInitialSimulationResults()
    • setExternalProfile

      public void setExternalProfile(Map<String,gov.nasa.jpl.aerie.constraints.model.LinearProfile> realExternalProfiles, Map<String,gov.nasa.jpl.aerie.constraints.model.DiscreteProfile> discreteExternalProfiles)
    • setEventsByDerivationGroup

      public void setEventsByDerivationGroup(Map<String,List<gov.nasa.ammos.aerie.procedural.timeline.payloads.ExternalEvent>> events)
    • getRealExternalProfiles

      public Map<String,gov.nasa.jpl.aerie.constraints.model.LinearProfile> getRealExternalProfiles()
    • getDiscreteExternalProfiles

      public Map<String,gov.nasa.jpl.aerie.constraints.model.DiscreteProfile> getDiscreteExternalProfiles()
    • getEventsByDerivationGroup

      public Map<String,List<gov.nasa.ammos.aerie.procedural.timeline.payloads.ExternalEvent>> getEventsByDerivationGroup()
    • setGoals

      public void setGoals(List<Goal> goals)
    • getGoals

      public List<Goal> getGoals()
      retrieves the set of all requested plan goals planning algorithms should attempt to satisfy these goals when generating or updating plans. the details of exactly how the goals are weighted against eachother is up to the algorithm, and not all goals must be satisfied in a proposed solution plan
      Returns:
      an un-modifiable container of the goals requested for this plan
    • add

      public void add(ActivityType actType)
      adds a new activity type definition to the mission model
      Parameters:
      actType - IN the activity type definition to add to the mission model, which must not already have a type definition with matching identifier
    • getActivityType

      public ActivityType getActivityType(String name)
      fetches the activity type object with the given name
      Parameters:
      name - IN the name associated with the requested activity type
      Returns:
      the activity type with a matching name, or null if there is no such activity type in the mission model
    • getActivityTypes

      public Collection<ActivityType> getActivityTypes()