Class ProceduralCreationGoal


public class ProceduralCreationGoal extends ActivityExistentialGoal
describes the desired existence of a set of externally generated activities procedural goals use some outside code to determine what activity instances should exist in the plan
  • Field Details

    • generator

      protected Function<Plan,Collection<SchedulingActivity>> generator
      specifies the procedure used to generate desired activities the procedure takes as input the "current" partial plan as of the execution of this goal's satisfaction and produces a list of activity instances that must exist to satisfy this goal. the activities are not immediately inserted in the plan. partial satisfaction is possible, using the heuristic that more matching activities is always preferable to fewer. individual instances must match exactly (all arguments) the procedure may recommend creation of a list of activities all at once, or may make repeated incremental recommendations for single additional activities at a time for now, the procedure should be a pure function and not have any internal state that could produce variant results on re-invocation with different hypothetical inputs
  • Constructor Details

    • ProceduralCreationGoal

      protected ProceduralCreationGoal()
      ctor creates an empty goal without details client code should use builders to instance goals
  • Method Details

    • getConflicts

      public Collection<Conflict> getConflicts(Plan plan, gov.nasa.jpl.aerie.constraints.model.SimulationResults simulationResults, gov.nasa.jpl.aerie.constraints.model.EvaluationEnvironment evaluationEnvironment, gov.nasa.jpl.aerie.merlin.protocol.model.SchedulerModel schedulerModel)
      identifies issues in a plan that diminishes this goal's satisfaction the method must return the same issues in the same order given the same input plan, but they need not be otherwise sorted an empty return list indicates that no issues could be identified in the plan that this goal would care to improve upon collects conflicts where the external procedural generator would like to create an activity instance but an exactly matching one does not exist in the plan (and should probably be created). The matching is strict: all arguments must be identical.
      Overrides:
      getConflicts in class Goal
      Parameters:
      plan - IN: the plan that this goal should be evaluated against
      simulationResults -
      Returns:
      a list of issues in the plan that diminish goal satisfaction