-
Notifications
You must be signed in to change notification settings - Fork 5
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
feature(controller): 2 - add planner functions to select the next step for the controller #303
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This looks great! Just one small suggestions which may deserve to be addressed in another PR. It would be great to add a "customizable planner" in which the user can simply pass a transition function to determine which kind of state leads to which execution of an expeirmentalist/theorist.
For instance, if there are no observations available, then we specify to execute experimentalist1. If observations and theories are available, then we specify to execute experimentalist2. I wonder which way might be the best so specify that (e.g., a transition matrix).
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks good!
Yes, at the moment you'd have to define a planner function like on line 425 in the example init.py which will have complete access to the There isn't an abstract representation of "states" like |
this is too big. Closing for now, will move this to a separate repo. Thanks for the feedback! |
Description
Added functions for planning the next step in the AER cycle, based on the current state.
This is part of the solution to:
This builds on:
Type of change:
Features:
Planner
– which takes in an arbitrary cycle state and returns the name of a step (i.e.experimentalist
,experiment_runner
,theorist
,full_cycle
or any other name the experiment might understand)full_cycle_planner
which returns just the string"full_cycle"
last_result_kind_planner
which returns the correct operation based on the last result.random_operation_planner
which returns one of the steps at random