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

DICG #460

Open
wants to merge 61 commits into
base: master
Choose a base branch
from
Open

DICG #460

wants to merge 61 commits into from

Conversation

matbesancon
Copy link
Member

Add standard and blended DICG

matbesancon and others added 30 commits January 15, 2024 17:52
* Update plot_sparsity

* Remove redundant CallbackStateBlockCoordinateMetho

* Isolate update step from BCFW

* SpectraplexLMO add field maxiters

* BCFW allow different stepsize strategies

* Adapt example

* ALM and BCFW for blockvectors

* Small changes

* Small progress on BPCG steps

* FIX BPCG step

* ALM inital point consistency

* Adapt tests

* Add collect for BlockVector

* Remove old CallbackState from Alternating project.

* Format

* Add tests for ALM and BCFW

* Update documentation

* BCFW example

* Add example for BCFW

* Update documentation

* Small documentation fix

* Documentation update
* Implement additional plot for infeasibility

* Adapt test
* Add callback state and dual gaps to UpdateOrder paramters

* Minor fixes
@matbesancon matbesancon mentioned this pull request Apr 18, 2024
@dhendryc dhendryc linked an issue Jun 13, 2024 that may be closed by this pull request
matbesancon and others added 3 commits July 17, 2024 10:13
* Update moi_oracle.jl

* Update moi_oracle.jl

* Update moi_oracle.jl

* Update moi_oracle.jl

* Update moi_oracle.jl

* Update moi_oracle.jl

* Update moi_oracle.jl

* Update moi_oracle.jl

* Update moi_oracle.jl

* Update moi_oracle.jl

* Update moi_oracle.jl

* Update moi_oracle.jl

* Update moi_oracle.jl

* Update moi_oracle.jl

* Update moi_oracle.jl

* Update moi_oracle.jl

* Update FrankWolfe.jl

* Update moi_oracle.jl

* Update moi_oracle.jl ; typo

* Update moi_oracle.jl; minor issue

* Update moi_oracle.jl; typo

* Update moi_oracle.jl; add argument atol to dicg_maximum_step

* Update moi_oracle.jl typo

* Update moi_oracle.jl; big change

Include the case of lying on the lower boundary;
directly return 0

* Update moi_oracle.jl; missing end

* Update moi_oracle.jl; typo

* Update moi_oracle.jl;typo

* Update moi_oracle.jl; typo

* Update moi_oracle.jl;

include the case when xi lies on the upperbound and di >= upperbound, return gamma_max = 0

* Update moi_oracle.jl; typo

* Update moi_oracle.jl; typo

* Update moi_oracle.jl

* Update moi_oracle.jl

include interval constrain in compute inface point

* Update moi_oracle.jl; for testing

* Update moi_oracle.jl;

* Update moi_oracle.jl

* Update simplex_oracles.jl; 

The convertion of simplex polytope to mathopt might be wrong

* Update moi_oracle.jl; add delete function

* Update moi_oracle.jl

* Update moi_oracle.jl

* Update moi_oracle.jl

* Update moi_oracle.jl;

change the way of adding constraints

* Update moi_oracle.jl; typo

* Update moi_oracle.jl; add variables

* Update moi_oracle.jl; typo

* Update dicg.jl; for testing

* Update dicg.jl; typo

* Update dicg.jl for testing

* Update dicg.jl for testing

* Update moi_oracle.jl

* Update moi_oracle.jl

* Update moi_oracle.jl; typo

* Update moi_oracle.jl for testing

* Update moi_oracle.jl; for testing

* Update moi_oracle.jl

* Update moi_oracle.jl; silent the MOI

* Update moi_oracle.jl

* Update dicg.jl; remove test

* Update moi_oracle.jl

* Update Project.toml

* Update Project.toml

* Update simplex_oracles.jl

* Update moi_oracle.jl

* Update simplex_oracles.jl

* Update moi_oracle.jl

* Update moi_oracle.jl

* Update moi_oracle.jl

* Update moi_oracle.jl

* Update simplex_oracles.jl

* Update moi_oracle.jl; modify the structure and support more MOI constraints

* Update moi_oracle.jl

* Update moi_oracle.jl

* Update moi_oracle.jl

* Update moi_oracle.jl; test

* Update moi_oracle.jl

* Update moi_oracle.jl

* Update moi_oracle.jl

* Update moi_oracle.jl; removed test

* Update moi_oracle.jl

* Update moi_oracle.jl

* Update moi_oracle.jl

* Update moi_oracle.jl

* Update moi_oracle.jl; 

Compute inface point method without emptying MOI.

* Update moi_oracle.jl

Fast method to compute gamma_max

* Update moi_oracle.jl

Update MOI solving data

* Update moi_oracle.jl

* Update dicg.jl

Mixed active_set DICG

* Update dicg.jl

* Update utils.jl

add pre_computed_set_argminmax function

* Update dicg.jl

* Update moi_oracle.jl

* Update dicg.jl

* Update dicg.jl

* Update utils.jl

* Update utils.jl

* Update utils.jl

* Update utils.jl

* Update utils.jl

* Update utils.jl

* Update utils.jl

* Update utils.jl

* Update utils.jl

* Update utils.jl

* Update utils.jl

* Update moi_oracle.jl

* Update dicg.jl

* Update polytope_oracles.jl

* Update polytope_oracles.jl

* Update simplex_oracles.jl

* Update decomposition_invariant.jl

* Update decomposition_invariant.jl

* Update simplex_oracles.jl

* Update simplex_oracles.jl

* Update simplex_oracles.jl

* Update moi_oracle.jl

* Update moi_oracle.jl

* Update utils.jl

* Update simplex_oracles.jl

* Update utils.jl

* Update moi_oracle.jl

* Update moi_oracle.jl

* Update src/simplex_oracles.jl

* Update dicg.jl

* Add barrier function

* Update src/dicg.jl

---------

Co-authored-by: Mathieu Besançon <[email protected]>
Copy link

codecov bot commented Aug 26, 2024

Codecov Report

Attention: Patch coverage is 61.19163% with 241 lines in your changes missing coverage. Please review.

Project coverage is 79.46%. Comparing base (8097a37) to head (af4629e).
Report is 9 commits behind head on master.

Files with missing lines Patch % Lines
src/moi_oracle.jl 0.00% 156 Missing ⚠️
src/dicg.jl 75.24% 50 Missing ⚠️
src/utils.jl 18.51% 22 Missing ⚠️
src/simplex_oracles.jl 91.83% 12 Missing ⚠️
src/polytope_oracles.jl 98.80% 1 Missing ⚠️
Additional details and impacted files
@@            Coverage Diff             @@
##           master     #460      +/-   ##
==========================================
- Coverage   82.61%   79.46%   -3.16%     
==========================================
  Files          22       24       +2     
  Lines        3222     4032     +810     
==========================================
+ Hits         2662     3204     +542     
- Misses        560      828     +268     

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

@dhendryc dhendryc linked an issue Aug 26, 2024 that may be closed by this pull request
matbesancon and others added 6 commits September 3, 2024 14:36
* add Combinatorics test (#486)

* Secant Method based line search strategy for self-concordant functions (#491)

* initial check - in // secant-based line search for self-concordant functions

* added secant test and added reset_state to prevent side effects with the gradient and the linesearch workspaces / happened with golden-ration with it

* minor updat to example

* minor fixes to line search (clean-up) and example

* MAT in test deps

* remove reversediff

* added data

* more tests

* added doc string

* added a larger portfolio example

* line search docstring attached

* adapted workspace to avoid overwritting the gradient

* formatting

* remove benchmarktools

---------

Co-authored-by: Mathieu Besançon <[email protected]>

* Update Project.toml (#492)

* added tullio

* added tullio (#493)

* Use the best value for phi.

* Secant fix (#495)

* added tullio

* change order for secant

* domain oracle

* BPCG - Real dual gap in Post Processing (#498)

* Report the real dual gap in the post processing.

* Add a note to non montonocity of the dual gap.

* Update README.md

---------

Co-authored-by: Hendrych <[email protected]>
Co-authored-by: Mathieu Besançon <[email protected]>

* Update Project.toml (#499)

* Optimal Design Problem Example (#494)

* Optimal Design Problem example.

* Wrap Secant linesearch in MonotonicGenericStep.

* Set the correct Step type flag.

* Use corrected Secant step size. Compare number of iterations. Secant should require less iterations.

* Check only the iterations.

---------

Co-authored-by: Hendrych <[email protected]>

* breaking changes for 0.4 (#484)

* breaking change on step type (#483)

* breaking change on step type

* st to steptype_string

* step type names

* Update Project.toml

* adapt log

---------

Co-authored-by: dhendryc <[email protected]>

* added secant workspace to track last gamma as start (#500)

* dicg tracking

* adapt to 04

---------

Co-authored-by: Sebastian Pokutta <[email protected]>
Co-authored-by: Hendrych <[email protected]>
Co-authored-by: Sébastien Designolle <[email protected]>
Co-authored-by: dhendryc <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Add test for DICG with MOI Implement DICG
7 participants