aerie icon indicating copy to clipboard operation
aerie copied to clipboard

Add @AllChildren annotation

Open adrienmaillard opened this issue 1 year ago • 3 comments

  • Tickets addressed: Part of #1364 but does not resolve it
  • Review: By commit
  • Merge strategy: Merge (no squash)

Description

Add a @AllChildren annotation to mission model so mission modelers can report, for a given activity, what other activity is called/spawned. This information will be used by the scheduler to evaluate whether it is useful to resimulate or not before goal evaluation: let's have G goal being satisfied by an activity of type A, G is the next goal to be evaluated. If an activity of type B was inserted at the last iteration, has B any chance of generating A and thus of satisfying the goal G ? If yes, simulation is required, otherwise it's not (for that only purpose, there might be other things that warrant a simulation, e.g. the goal needs to also evaluate an expression...).

Some edge cases:

  • If the user does not use the annotation for an activity, we make the worst case assumption that the activity might generate all activities (itself included).
  • Activities without effect model cannot generate children

This PR does not contain changed to the scheduler to use this information. These changes would overlap too much with changes under review in #1323

Verification

A test with the banananation model has been added to verify that the generated code is accurate.

Documentation

To be done.

Future work

Other things in #1364 + use the annotation in the scheduler.

adrienmaillard avatar Mar 18 '24 18:03 adrienmaillard

This is blocked because part of an ongoing prototyping for dependency modeling in #1364.

adrienmaillard avatar Apr 11 '24 17:04 adrienmaillard

@dandelany I think we can close this PR.

adrienmaillard avatar Sep 16 '24 16:09 adrienmaillard