Pyomo / mpi-sppy

MPI-based Stochastic Programming in PYthon
https://mpi-sppy.readthedocs.io
Other
65 stars 38 forks source link

Prox approx xbar #369

Closed bknueven closed 5 months ago

bknueven commented 6 months ago

Simple demonstration: min (x - (-73.2))**2

main, tolerance = 1e-06:

x: -5.00e+01, obj: -1.96e+03
x: -5.14e+01, obj: -1.88e+03
x: -5.85e+01, obj: -1.51e+03
x: -7.06e+01, obj: -8.58e+02
x: -8.21e+01, obj: -2.42e+02
x: -7.21e+01, obj: -6.24e+01
x: -7.59e+01, obj: -1.03e+01
x: -7.37e+01, obj: -3.88e+00
x: -7.27e+01, obj: -7.77e-01
x: -7.32e+01, obj: -2.57e-01
x: -7.30e+01, obj: -4.87e-03
x: -7.31e+01, obj: -2.39e-03
x: -7.31e+01, obj: -1.15e-03
x: -7.32e+01, obj: -5.27e-04
x: -7.32e+01, obj: -2.15e-04
x: -7.32e+01, obj: -5.92e-05
x: -7.32e+01, obj: -1.15e-05
x: -7.32e+01, obj: -3.92e-06
x: -7.32e+01, obj: -1.44e-07
cuts: 20, iters: 19

This PR, tolerance = 1e-06:

x: -1.00e+02, obj: -9.28e+03
x: -7.32e+01, obj: -4.84e+03
x: -7.32e+01, obj: -2.54e+03
x: -7.32e+01, obj: -4.04e+02
x: -7.32e+01, obj: -7.91e+00
x: -7.32e+01, obj: -2.92e-03
x: -7.32e+01, obj: -3.98e-10
cuts: 12, iters: 7

This PR but make cut a xhat every iteration, tolerance = 1e-06

x: -1.00e+02, obj: -9.28e+03
x: -7.32e+01, obj: -7.18e+02
x: -5.98e+01, obj: 9.09e-13
x: -6.65e+01, obj: 9.09e-13
x: -6.99e+01, obj: -9.09e-13
x: -7.15e+01, obj: 0.00e+00
x: -7.24e+01, obj: 0.00e+00
x: -7.28e+01, obj: -9.09e-13
x: -7.30e+01, obj: -9.09e-13
x: -7.31e+01, obj: 0.00e+00
x: -7.31e+01, obj: 0.00e+00
x: -7.32e+01, obj: 0.00e+00
x: -7.32e+01, obj: 0.00e+00
x: -7.32e+01, obj: 9.09e-13
x: -7.32e+01, obj: 0.00e+00
x: -7.32e+01, obj: -1.82e-12
x: -7.32e+01, obj: -9.09e-13
cuts: 31, iters: 17