Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
33 commits
Select commit Hold shift + click to select a range
39f4b09
Add absolute value to condition number
djlaky Oct 1, 2025
c42e093
Add log to condition number, begin hessian comp
djlaky Oct 1, 2025
42e32de
Added log-condition number hessian
djlaky Oct 1, 2025
cbd7324
ran black
djlaky Oct 1, 2025
7650075
Merge branch 'add-greybox' of https://github.com/djlaky/pyomo into ad…
djlaky Oct 1, 2025
9f00f04
Compute log condition number, and use the eigenvalue method
djlaky Oct 1, 2025
9f04e50
Update another test with new log-cond formalism
djlaky Oct 1, 2025
621740c
Update last test with log-cond formalism
djlaky Oct 1, 2025
06246fe
Fixing initialization for condition number to be log
djlaky Oct 1, 2025
15abd5d
Fix jacobian formula for log condition number
djlaky Oct 1, 2025
459a5d9
Fix finite difference calculation to be log, add hessian test for log…
djlaky Oct 1, 2025
941e49a
ran black
djlaky Oct 1, 2025
524a42e
Update pyomo/contrib/doe/grey_box_utilities.py
djlaky Oct 1, 2025
da9aa51
Merge branch 'add-greybox' of https://github.com/djlaky/pyomo into ad…
djlaky Oct 1, 2025
4429592
Changing A-optimality to test new hessian
djlaky Oct 2, 2025
8b7287e
Fixing the other optimality criteria hessians
djlaky Oct 2, 2025
a6aff8e
ran black
djlaky Oct 2, 2025
b3f3aa9
Cleaned comments up to be accurate in tests
djlaky Oct 2, 2025
074fb61
Fix indexing issue
djlaky Oct 2, 2025
ab79164
Fix hessian computation for FD
djlaky Oct 2, 2025
d709de8
Remove print statements
djlaky Oct 2, 2025
87491a7
ran black
djlaky Oct 2, 2025
6d52632
Housekeeping, remove old stuff
djlaky Oct 8, 2025
d080660
more descriptive explanations
djlaky Oct 8, 2025
c8e8c0a
Update hessian commenting
djlaky Oct 8, 2025
b6a0c2e
Remove input from old testing functions
djlaky Oct 8, 2025
769a1ba
Increasing Hessian description verbosity in comments
djlaky Oct 8, 2025
7ff2861
remove old print statement
djlaky Oct 8, 2025
c74f011
Improving verbosity and descriptions in comments
djlaky Oct 8, 2025
ac6ec63
More grammar updates
djlaky Oct 8, 2025
bedd648
Merge branch 'main' into add-greybox
blnicho Oct 14, 2025
c4d9c9e
Update pyomo/contrib/doe/grey_box_utilities.py
djlaky Oct 15, 2025
63bb700
Merge branch 'main' into add-greybox
blnicho Oct 17, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 2 additions & 1 deletion pyomo/contrib/doe/doe.py
Original file line number Diff line number Diff line change
Expand Up @@ -370,7 +370,8 @@ def run_doe(self, model=None, results_file=None):
eig, _ = np.linalg.eig(np.array(self.get_FIM()))
model.obj_cons.egb_fim_block.outputs["E-opt"].set_value(np.min(eig))
elif self.objective_option == ObjectiveLib.condition_number:
cond_number = np.linalg.cond(np.array(self.get_FIM()))
eig, _ = np.linalg.eig(np.array(self.get_FIM()))
cond_number = np.log(np.abs(np.max(eig) / np.min(eig)))
Comment on lines 372 to +374
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Are you going to cause any confusion with users by returning the log of the condition number and not the condition number directly? Should ObjectiveLib.condition_number be replaced with ObjectiveLib.log_condition_number?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The answer is maybe. The determinant option also returns the log of the determinant for scaling purposes, so I think this will not come as too much of a surprise.

I will make sure that this is clear when the documentation is added.

model.obj_cons.egb_fim_block.outputs["ME-opt"].set_value(cond_number)

# If the model has L, initialize it with the solved FIM
Expand Down
Loading
Loading