Skip to content
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

Pyomo.DoE refactor: Development plan for remaining functionality upgrades and future vision #3345

Open
18 tasks
djlaky opened this issue Aug 13, 2024 · 0 comments
Open
18 tasks

Comments

@djlaky
Copy link
Contributor

djlaky commented Aug 13, 2024

Summary

The purpose of this meta issue is to track our development plans for Pyomo.DoE after the refactor (August 2024 release). This combines the remaining issues from #2610

Changes

Immediate functionality upgrades (Fall 2024):

  • Move Enum definition to the User side
  • Trim input attribute list for DesignOfExperiments constructor (e.g., push some to get/set functions)
  • Allow user-defined models --> Add safe naming conventions as to not overwrite existing features
  • Add check for objective functions on user-defined models when running compute_FIM
  • Safeguard solver calls to check if results can load into the model --> Display verbose error for users
  • Reformulate results dictionary to be less fragile
  • Add metadata, other useful data to the results
  • Make error messages on solver failures more verbose
  • Overhaul sensitivity plotting functionality to avoid using strings
  • Improve plotting functionalities to include more than 2 design variables (pairwise heatmaps)

Cross-functionality requirements to make parmest and pyomo.DoE more compatible (Fall 2024):

  • Allow Param types for unknown_parameters and experiment_inputs (automatically change into Var types)
  • Add an update function for unknown_parameters values (Allows optimal DoE without rebuilding the whole model from scratch)

Future Features (Spring 2025 and beyond):

  • Allow initialization for finite difference model instances using ‘kaug’
  • Generalize measurement variance to consider correlations (not just diagonal)
  • Add more objective types (e.g., modified E-opt, G-opt, V-opt, etc.)
  • Add grey box objective function calculation (possibly required for some of the above objective functions)
  • Add optimal multi-experiment decision-making (simultaneous or sequential optimization for batches of experiments)
  • Support decomposition with parapint
djlaky added a commit to djlaky/pyomo that referenced this issue Aug 13, 2024
@djlaky djlaky mentioned this issue Aug 13, 2024
12 tasks
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant