diff --git a/docs/glossary.md b/docs/glossary.md index a1da7c5..68dd73f 100644 --- a/docs/glossary.md +++ b/docs/glossary.md @@ -35,7 +35,7 @@ This is an alphabetized glossary of common term definitions used throughout the 1. **Constraint Checking** - A downstream analysis of a simulation dataset that evaluates a set of constraints and returns time windows of violation. -1. **Constraint** - An expression built up with the [Aerie constraints](../constraints/introduction) eDSL, which evaluates to a set of windows during which the condition(s) defined by the expression is true or false. Aerie supports various constraint types such as safe ranges for resources or necessary pre-conditions for safe execution of activities. Aerie constraints is a mechanism to represent and check many flight rule types. +1. **Constraint** - An expression built up with the [Aerie constraints](../scheduling-and-constraints/declarative/constraints/introduction) eDSL, which evaluates to a set of windows during which the condition(s) defined by the expression is true or false. Aerie supports various constraint types such as safe ranges for resources or necessary pre-conditions for safe execution of activities. Aerie constraints is a mechanism to represent and check many flight rule types. ## D diff --git a/docs/mission-modeling/activity-types/durations.md b/docs/mission-modeling/activity-types/durations.md index 101408e..bf3fa4f 100644 --- a/docs/mission-modeling/activity-types/durations.md +++ b/docs/mission-modeling/activity-types/durations.md @@ -1,6 +1,6 @@ # Duration Types -The [Aerie scheduler](../../../scheduling/introduction) places activities in a plan to try to achieve scheduling goals, and to do that it must know the activity's duration. Since an activity's effect model is a black box, without more information the scheduler has to simulate the activity to see how long it lasts. This can be very expensive and best to avoid if possible. Satisfying temporal constraints associated with the scheduling of an activity (e.g. "activity A must end before activity B") may lead to multiple simulations to compute duration, and thus require even more computation time. +The [Aerie scheduler](../../scheduling-and-constraints/declarative/scheduling/introduction.mdx) places activities in a plan to try to achieve scheduling goals, and to do that it must know the activity's duration. Since an activity's effect model is a black box, without more information the scheduler has to simulate the activity to see how long it lasts. This can be very expensive and best to avoid if possible. Satisfying temporal constraints associated with the scheduling of an activity (e.g. "activity A must end before activity B") may lead to multiple simulations to compute duration, and thus require even more computation time. However, it is possible to provide information about how the duration of an activity is determined to help the scheduler. The duration of an activity can be one of the following: diff --git a/docs/overview/software-design-document.mdx b/docs/overview/software-design-document.mdx index 0e84302..596b8e5 100644 --- a/docs/overview/software-design-document.mdx +++ b/docs/overview/software-design-document.mdx @@ -1225,7 +1225,7 @@ constraint expression operators, while the leaf nodes represent the operands. For example, operator nodes enable expressions such as 'or', 'and', 'less than', 'greater than', while the operands are simulated resource profiles and activity instances. See our [constraints -documentation](../../scheduling-and-constraints/edsl/constraints/examples) for complete examples. +documentation](../../scheduling-and-constraints/declarative/constraints/examples) for complete examples. ## Meta-Programming (Annotations Processing) diff --git a/docs/scheduling-and-constraints/declarative/constraints/concepts.md b/docs/scheduling-and-constraints/declarative/constraints/concepts.md index 98cb8b8..5011faf 100644 --- a/docs/scheduling-and-constraints/declarative/constraints/concepts.md +++ b/docs/scheduling-and-constraints/declarative/constraints/concepts.md @@ -8,7 +8,7 @@ Profiles represent functions over time to a specific type, and usually come from Real profiles are for integers and floating point numbers, and provide methods for some basic math operations like addition and derivatives. Discrete profiles are for everything else, like strings or objects. -Profiles can have _gaps_, or intervals where the value is unknown. This comes up most often when dealing with [external datasets](../../planning/external-datasets). In most cases it is best to apply a default value to a profile's gaps ASAP using the `profile.assignGaps(defaultValue)` method. +Profiles can have _gaps_, or intervals where the value is unknown. This comes up most often when dealing with [external datasets](../../../../planning/external-datasets). In most cases it is best to apply a default value to a profile's gaps ASAP using the `profile.assignGaps(defaultValue)` method. ## Windows @@ -32,4 +32,4 @@ Not all constraints are based solely off of a `Windows` object. The main excepti ## Mental Model for Evaluation -A constraint doesn't directly query simulation data, or directly return violations. Instead, your constraint code defines an expression to be interpreted by Aerie. The exact implementation details don’t matter for constraint authors, but for this reason you cannot directly inspect a profile's values or a plan's activities. This is also why there are no plans to support querying external profiles directly from a web request or filesystem access inside the constraint code. For that, see the [external dataset documentation](../../planning/external-datasets). +A constraint doesn't directly query simulation data, or directly return violations. Instead, your constraint code defines an expression to be interpreted by Aerie. The exact implementation details don’t matter for constraint authors, but for this reason you cannot directly inspect a profile's values or a plan's activities. This is also why there are no plans to support querying external profiles directly from a web request or filesystem access inside the constraint code. For that, see the [external dataset documentation](../../../../planning/external-datasets). diff --git a/docs/scheduling-and-constraints/declarative/constraints/introduction.mdx b/docs/scheduling-and-constraints/declarative/constraints/introduction.mdx index e6d46f4..ed1567d 100644 --- a/docs/scheduling-and-constraints/declarative/constraints/introduction.mdx +++ b/docs/scheduling-and-constraints/declarative/constraints/introduction.mdx @@ -9,10 +9,10 @@ If a constraint does not hold true at any point in a simulation, this is conside All constraints are associated with either a mission model or a specific plan. If associated with a model, a constraint will be applied to all plans made with that model. -If associated with a plan, it will only applied to the plan, and it will have access to any [external datasets](../../planning/external-datasets) associated with the plan as well. +If associated with a plan, it will only applied to the plan, and it will have access to any [external datasets](../../../../planning/external-datasets) associated with the plan as well. :::tip -To learn how to add constraints via the Aerie API, see our [API documentation](../../api/examples/constraints). +To learn how to add constraints via the Aerie API, see our [API documentation](../../../../api/examples/constraints). ::: diff --git a/docs/scheduling-and-constraints/declarative/scheduling/goals.mdx b/docs/scheduling-and-constraints/declarative/scheduling/goals.mdx index a4ae875..a32bcef 100644 --- a/docs/scheduling-and-constraints/declarative/scheduling/goals.mdx +++ b/docs/scheduling-and-constraints/declarative/scheduling/goals.mdx @@ -4,7 +4,7 @@ This document describes different scheduling goals available in Aerie and how to :::caution -Activities with [uncontrollable durations](../../mission-modeling/activity-types/parameters#duration-types) have been found to behave somewhat unpredictably in terms of when they are placed. +Activities with [uncontrollable durations](../../../../mission-modeling/activity-types/parameters#duration-types) have been found to behave somewhat unpredictably in terms of when they are placed. This has to do with how temporal constraints interact with the unpredictability of the durations. Finding when an activity will start while subject to temporal constraint involves search. @@ -256,7 +256,7 @@ Behavior: The activity finder is being used to match against any existing PeelBa :::caution -If the end is unconstrained while the activity has an [uncontrollable duration](../../mission-modeling/activity-types/parameters#duration-types), the scheduler may fail to place the activity. +If the end is unconstrained while the activity has an [uncontrollable duration](../../../../mission-modeling/activity-types/parameters#duration-types), the scheduler may fail to place the activity. To work around this, add an `endsWithin` constraint that encompasses your expectation for the duration of the activity - this will help the scheduler narrow the search space. :::