pyomo icon indicating copy to clipboard operation
pyomo copied to clipboard

Add grey box objectives to Pyomo.DoE

Open djlaky opened this issue 6 months ago • 2 comments

Summary/Motivation:

Pyomo.DoE currently can only compute trace-optimal and D-optimal experimental designs. We are expanding the suite to be able to compute E-optimal and ME-optimal (or condition number optimal) designs. Given that these formulations require computing eigenvalues on the fly, we have updated Pyomo.DoE to make use of the ExternalGreyBox modules.

This PR adds grey box capabilities to Pyomo.DoE.

Changes proposed in this PR:

  • Added grey box capabilities within Pyomo.DoE
  • Ability to compute E-optimal and ME-optimal designs using these grey box capabilities

Legal Acknowledgement

By contributing to this software project, I have read the contribution guide and agree to the following terms and conditions for my contribution:

  1. I agree my contributions are submitted under the BSD license.
  2. I represent I am authorized to make the contributions and grant the license. If my employer has rights to intellectual property that includes these contributions, I represent that I have received permission to make contributions and grant the required license on behalf of that employer.

djlaky avatar May 20 '25 17:05 djlaky

@blnicho So I changed my imports to be pyomo.common.dependencies imports and the error has shifted to a pynumero import error with numpy (https://github.com/Pyomo/pyomo/actions/runs/15333169753/job/43144645869?pr=3606).

Should I also change those imports to be from pyomo.common.dependencies?

djlaky avatar May 29 '25 20:05 djlaky

@blnicho This should be ready review. I did the quick solution for the issues I brought up yesterday (6/3/25) at the dev meeting.

Let me know if you need anything else from me.

djlaky avatar Jun 04 '25 13:06 djlaky

@blnicho @mrmundt @michaelbynum @jsiirola I think this is ready for another review

adowling2 avatar Jun 25 '25 21:06 adowling2

Hey @blnicho, @mrmundt, @michaelbynum. I've addressed @mrmundt's initial comments and this is ready for another round of reviews.

djlaky avatar Jul 15 '25 13:07 djlaky

@djlaky - You have some file conflicts that need to be resolved before tests can run.

mrmundt avatar Jul 15 '25 14:07 mrmundt

@djlaky - You have some file conflicts that need to be resolved before tests can run.

Thanks, I've resolved the conflicts.

djlaky avatar Jul 15 '25 15:07 djlaky

I think this is OK. In the future, I think I would recommend refactoring DoE to use functions / function pointers instead of all of these large ""if trees".

Good suggestion. I have added it to our rolling enhancement list here: #3345

djlaky avatar Aug 27 '25 11:08 djlaky