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

Update PyROS Subproblem Initialization Routines #3071

Merged
merged 22 commits into from
Jan 16, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
22 commits
Select commit Hold shift + click to select a range
1f9b20f
Exclude fixed vars from state vars
shermanjasonaf Dec 15, 2023
802e4c7
Update separation problem initialization
shermanjasonaf Dec 15, 2023
e8860b7
Update master problem initialization
shermanjasonaf Dec 15, 2023
a582c92
Simplify DR component declaration routines
shermanjasonaf Dec 16, 2023
4118302
Refactor DR efficiency and DR polishing routines
shermanjasonaf Dec 16, 2023
42f929b
Fix logging of master problem objective value
shermanjasonaf Dec 16, 2023
6b3998f
Merge branch 'main' into new-subproblem-inits-pr
shermanjasonaf Dec 16, 2023
4c35d80
Apply black
shermanjasonaf Dec 17, 2023
deea107
Update DR monomial mismatch exception message
shermanjasonaf Dec 17, 2023
3062b08
Update version number, changelog
shermanjasonaf Dec 17, 2023
0723b66
Update online docs log output example
shermanjasonaf Dec 17, 2023
a839e4e
Update docs usage example results table
shermanjasonaf Dec 17, 2023
3943607
Update DR test class docstrings
shermanjasonaf Dec 17, 2023
a174c0d
Add scipy available check to DR test
shermanjasonaf Dec 17, 2023
32b39a6
Add extra step to DR variable declaration tests
shermanjasonaf Dec 17, 2023
6c6a4d5
Remove star import of uncertainty sets module
shermanjasonaf Dec 17, 2023
559e941
Test form of decision rule equations
shermanjasonaf Dec 18, 2023
f5c771d
Apply black
shermanjasonaf Dec 18, 2023
5ecc917
Add comments on DR variable initialization
shermanjasonaf Dec 18, 2023
942af37
Fix imports and remove unused methods
shermanjasonaf Dec 18, 2023
bb167d3
Merge branch 'main' into new-subproblem-inits-pr
shermanjasonaf Dec 20, 2023
c104954
Fix changelog date
shermanjasonaf Jan 16, 2024
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
43 changes: 20 additions & 23 deletions doc/OnlineDocs/contributed_packages/pyros.rst
Original file line number Diff line number Diff line change
Expand Up @@ -723,11 +723,11 @@ For this example, we obtain the following price of robustness results:
+==========================================+==============================+=============================+
| 0.00 | 35,837,659.18 | 0.00 % |
+------------------------------------------+------------------------------+-----------------------------+
| 0.10 | 36,135,191.59 | 0.82 % |
| 0.10 | 36,135,182.66 | 0.83 % |
+------------------------------------------+------------------------------+-----------------------------+
| 0.20 | 36,437,979.81 | 1.64 % |
| 0.20 | 36,437,979.81 | 1.68 % |
+------------------------------------------+------------------------------+-----------------------------+
| 0.30 | 43,478,190.92 | 17.57 % |
| 0.30 | 43,478,190.91 | 21.32 % |
+------------------------------------------+------------------------------+-----------------------------+
| 0.40 | ``robust_infeasible`` | :math:`\text{-----}` |
+------------------------------------------+------------------------------+-----------------------------+
Expand Down Expand Up @@ -854,10 +854,10 @@ Observe that the log contains the following information:
:linenos:

==============================================================================
PyROS: The Pyomo Robust Optimization Solver, v1.2.8.
PyROS: The Pyomo Robust Optimization Solver, v1.2.9.
Pyomo version: 6.7.0
Commit hash: unknown
Invoked at UTC 2023-11-03T04:27:42.954101
Invoked at UTC 2023-12-16T00:00:00.000000

Developed by: Natalie M. Isenberg (1), Jason A. F. Sherman (1),
John D. Siirola (2), Chrysanthos E. Gounaris (1)
Expand Down Expand Up @@ -914,37 +914,34 @@ Observe that the log contains the following information:
------------------------------------------------------------------------------
Itn Objective 1-Stg Shift 2-Stg Shift #CViol Max Viol Wall Time (s)
------------------------------------------------------------------------------
0 3.5838e+07 - - 5 1.8832e+04 1.555
1 3.5838e+07 2.2045e-12 2.7854e-12 7 3.7766e+04 2.991
2 3.6116e+07 1.2324e-01 3.9256e-01 8 1.3466e+06 4.881
3 3.6285e+07 5.1968e-01 4.5604e-01 6 4.8734e+03 6.908
4 3.6285e+07 2.6524e-13 1.3909e-13 1 3.5036e+01 9.176
5 3.6285e+07 2.0167e-13 5.4357e-02 6 2.9103e+00 11.457
6 3.6285e+07 2.2335e-12 1.2150e-01 5 4.1726e-01 13.868
7 3.6285e+07 2.2340e-12 1.1422e-01 0 9.3279e-10g 20.917
0 3.5838e+07 - - 5 1.8832e+04 1.741
1 3.5838e+07 3.5184e-15 3.9404e-15 10 4.2516e+06 3.766
2 3.5993e+07 1.8105e-01 7.1406e-01 13 5.2004e+06 6.288
3 3.6285e+07 5.1968e-01 7.7753e-01 4 1.7892e+04 8.247
4 3.6285e+07 9.1166e-13 1.9702e-15 0 7.1157e-10g 11.456
------------------------------------------------------------------------------
Robust optimal solution identified.
------------------------------------------------------------------------------
Timing breakdown:

Identifier ncalls cumtime percall %
-----------------------------------------------------------
main 1 20.918 20.918 100.0
main 1 11.457 11.457 100.0
------------------------------------------------------
dr_polishing 7 1.472 0.210 7.0
global_separation 47 1.239 0.026 5.9
local_separation 376 9.244 0.025 44.2
master 8 5.259 0.657 25.1
master_feasibility 7 0.486 0.069 2.3
preprocessing 1 0.403 0.403 1.9
other n/a 2.815 n/a 13.5
dr_polishing 4 0.682 0.171 6.0
global_separation 47 1.109 0.024 9.7
local_separation 235 5.810 0.025 50.7
master 5 1.353 0.271 11.8
master_feasibility 4 0.247 0.062 2.2
preprocessing 1 0.429 0.429 3.7
other n/a 1.828 n/a 16.0
======================================================
===========================================================

------------------------------------------------------------------------------
Termination stats:
Iterations : 8
Solve time (wall s) : 20.918
Iterations : 5
Solve time (wall s) : 11.457
Final objective value : 3.6285e+07
Termination condition : pyrosTerminationCondition.robust_optimal
------------------------------------------------------------------------------
Expand Down
12 changes: 12 additions & 0 deletions pyomo/contrib/pyros/CHANGELOG.txt
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,18 @@
PyROS CHANGELOG
===============

-------------------------------------------------------------------------------
PyROS 1.2.9 15 Dec 2023
-------------------------------------------------------------------------------
- Fix DR polishing optimality constraint for case of nominal objective focus
- Use previous separation solution to initialize second-stage and state
variables of new master block; simplify the master feasibility problem
- Use best known solution from master to initialize separation problems
per performance constraint
- Refactor DR variable and constraint declaration routines.
- Refactor DR polishing routine; initialize auxiliary variables
to values they are meant to represent

-------------------------------------------------------------------------------
PyROS 1.2.8 12 Oct 2023
-------------------------------------------------------------------------------
Expand Down
Loading