NASA-AMMOS / aerie

A software framework for modeling spacecraft.
https://nasa-ammos.github.io/aerie-docs/
MIT License
73 stars 19 forks source link

Add @MaximumDuration annotation and use it in scheduling #1365

Closed adrienmaillard closed 7 months ago

adrienmaillard commented 8 months ago

Description

An optional @MaximumDuration mission model annotation has been added. This annotation can be used in conjunction of @ParametricDuration and @UncontrollableDuration to signify the maximum duration that an activity

Verification

I have verified that the domain of coexistence goal was actually cut. I have added a test with a coexistence goal that inserts a lot of coexisting activities and noticed a difference between the use of the maximum duration bounding and no use. The gain with this test is not significant yet (15-20%) because the simulation domain is dominated by simulation to get child activities. With changes proposed in #1364 related to dependency analysis, we would be able to bypass this step if new activities do no produce child activities. Then this change will have a significant effect on the runtime ofCoexistenceGoal and rootfinding. Indeed, with future user option (in #1364) to bypass rootfinding when placing activities, knowing the maximum duration of an activity allows to place it without violating temporal constraints.

Documentation

Code documentation has been added for the annotation. User documentation has to be done.

Future work

Changes in #1364.