Releases: atoptima/Coluna.jl
Releases · atoptima/Coluna.jl
v0.3.8
Coluna v0.3.8
Closed issues:
- Move spMv operation in DynamicSparseArrays (#311)
- Unit tests for Methods related to Solutions (#479)
- Unit tests for Methods related to Bounds (#480)
- Remove methods that are no longer needed or used related to solandbounds.jl (#483)
- Remove Counter (#486)
- ERROR: LoadError: ArgumentError: reducing over an empty collection is not allowed (#488)
- Invalid variable index (#489)
Merged pull requests:
- Remove code for spMv operation in colgen (#475) (@guimarqu)
- Update Formulation docstring (#484) (@laradicp)
- Missing unit tests in Bounds and Solutions (#485) (@ItamarRocha)
- Fix compute tree depth score (#490) (@guimarqu)
- Remove Counter (#491) (@laradicp)
- Writing bound and Solution docstrings (#493) (@ItamarRocha)
- Delete buffer changes when removing variable or constraint (#494) (@laradicp)
- Delete
changed_constr_kind
from buffer (#496) (@laradicp) - Update
setvar!
andsetconstr!
docstrings (#497) (@laradicp) - Fix problem formulation (#499) (@mbrachner)
- Fix conditions to restart colgen when using lazy cut gen (#502) (@guimarqu)
- StorageContainer -> Storage & fix arg order for restore_from_records (#503) (@guimarqu)
- v0.3.8 (#504) (@guimarqu)
v0.3.7
Coluna v0.3.7
Closed issues:
- Allow OptimizerWithAttributes in parameters (#393)
- Error BestDualBoundStrategy (#414)
- Test that branching file completion is not broken (#416)
- Termination status is infeasible when no primal solution found & node limit reached (#426)
- Problem with Coluna.Algorithm.ColumnGeneration (#449)
- How to set multi threads to Cplex? (#451)
- Cannot optimize a model twice (#458)
- ArgumentError: ModelLike of type CPLEX.Optimizer does not support accessing the attribute MathOptInterface.ConstraintBasisStatus(1) (#465)
- Cannot show model of Coluna.Optimizer (#468)
- no method matching getincumbents(::Coluna.Algorithm.Node) (#476)
- Documentation of Solutions and Bounds. (#481)
- Remove methods that are no longer needed or used related to Solution. (#482)
Merged pull requests:
- Allow optimizer with attributes (#461) (@ItamarRocha)
- Optimize twice (#462) (@laradicp)
- FIX: Subsolvers with Different Parameters. Issue #451 (#463) (@ItamarRocha)
- Fix error BestDualBoundStrategy (#464) (@laradicp)
- Solver ColumnGeneration (#466) (@laradicp)
- #416 tests implemented (#467) (@ItamarRocha)
- Add method to get the number of constraints (#469) (@laradicp)
- rename StorageState -> RecordState (#470) (@guimarqu)
- Rename Storage -> (Storage) Unit (#471) (@guimarqu)
- Rename Record State -> Record (#472) (@guimarqu)
- Uncomment last test of
optimize_twice
(#473) (@guimarqu) - Retrieve multiple solutions from
SolveIpForm
(#474) (@guimarqu) - v0.3.7 (#487) (@guimarqu)
v0.3.6
Coluna v0.3.6
Closed issues:
- Add better error msg if max number of formulations reached (#168)
- Unable to get solver statistics (#384)
- Improve error msg when trying to solve an empty model (#424)
- ArgumentError with Cplex (#446)
- How to use Coluna along with Lazy constraints ? (#450)
Merged pull requests:
- test empty model solution and improve error msg (#447) (@laradicp)
- Robust essential cut (lazy constraint) generation (#452) (@guimarqu)
- Solver statistics (#453) (@laradicp)
- fixing typos and removing discord chat link (#456) (@ItamarRocha)
- Add better error msg if max number of formulations reached (#457) (@laradicp)
- v0.3.6 (#459) (@guimarqu)
v0.3.5
Coluna v0.3.5
Closed issues:
- Relax master integrality in algorithm (#223)
- Travis CI is no longer free for open source projects (#418)
- Do not reformulate a non-decomposed model (#425)
Merged pull requests:
- Fixing the branching tree file (#434) (@artalvpes)
- Move CI from travis to github actions (#435) (@guimarqu)
- Basic & MIP unit tests for MOI wrapper (#437) (@guimarqu)
- no reformulation when user does not provide decomposition (#438) (@guimarqu)
- fix MOI.empty! (#440) (@guimarqu)
- Support constant in objective function (#441) (@guimarqu)
- Fix doc deployment, update .gitignore, delete NEWS & appveyor (#442) (@guimarqu)
- Introducing Env (#443) (@guimarqu)
- Fixed a bug when restoring master cuts in strong branching (#444) (@artalvpes)
- v0.3.5 (#445) (@guimarqu)
v0.3.4
Coluna v0.3.4
Closed issues:
- sync_solver! too slow (#329)
- Problems with the CVRP demo (#404)
- Reformulation is very time consuming for medium/large model (#406)
- Set a gap limit in B&P (#417)
- Activating smoothing stabilization results in unfeasible solution (#421)
Merged pull requests:
- Increase max nb of formulations + better error message if var/constr … (#415) (@guimarqu)
- gap limit + improve comparison of bounds + MOI.RelativeGap (#419) (@guimarqu)
- Rm unused Params (#422) (@guimarqu)
- Error when no solver provided (#423) (@guimarqu)
- Use matrix fill mode when filling the formulations (#427) (@guimarqu)
- Add doc entry for Coluna parameters (#429) (@guimarqu)
- Use view to get a matrix slice (#430) (@guimarqu)
- Update julia tag bot code (#431) (@guimarqu)
- Release v0.3.4 (#432) (@guimarqu)
v0.3.3
Coluna v0.3.3
Merged pull requests:
- new features for 0.4.0 (#400) (@guimarqu)
- Rewriting preprocessing (#401) (@rrsadykov)
- Remove MoiResult & mv optimization of Formulations in Algorithm (#402) (@guimarqu)
- fix bug at the end of TreeSearch (#407) (@guimarqu)
- Minor updates in documentation (#408) (@guimarqu)
- expand & rm macro for update solutions methods of OptimizationState (#409) (@guimarqu)
- SolveIpForm & SolveLpForm refactoring (#410) (@guimarqu)
- Patch release 0.3.3 (#412) (@guimarqu)
v0.3.2
Coluna v0.3.2
Closed issues:
- Simple Diving (#42)
- Improve set of statuses on node (#80)
- Function naming decoration to alert for a
deepcopy
in the body (#232) - Export Algorithms & Params (#307)
- Bug with low optimality tolerance (#370)
- Names of variables are not informative anymore (#378)
- Update links to jump-dev doc and repo (#379)
- no method matching set_initial_primal_bound!(::Coluna.MathProg.Problem, ::Int64) (#390)
Merged pull requests:
- Rewrite MOI wrapper (#380) (@guimarqu)
- Update links (#383) (@guimarqu)
- CompatHelper: bump compat for "DataStructures" to "0.18" (#386) (@github-actions[bot])
- Simplification of the interface for algorithms (#387) (@rrsadykov)
- Updates for julia 1.5 (#388) (@guimarqu)
- remove algo types in ColCutGenConquer (#389) (@guimarqu)
- Initial bounds are Real (#391) (@guimarqu)
- missing get for SolverName & NumberOfVariables MOI attr (#392) (@guimarqu)
- Improve termination statuses (#394) (@guimarqu)
- Optimality tolerance depending on the algorithm (#395) (@guimarqu)
- Partial solutions (#396) (@rrsadykov)
- Patch release 0.3.2 (#398) (@guimarqu)
- Patch release 0.3.2 (#399) (@guimarqu)
v0.3.1
v0.3.0
Coluna v0.3.0
Closed issues:
- Improve tests (#57)
- Improve ad-hoc pricing solver user experience (#83)
- behaviour of setlb! and setub! (#116)
- Numerical stability (#157)
- Empty Conquer Strategy + NoBranching = infinite loop (#166)
- Add better error msg if max number of formulations reached (#168)
- Cut generation callback (#177)
- Strategy for Problem (#197)
- Dynamic Sparse Matrix (#198)
- Mapping Coluna Vars/Constrs <-> JuMP Vars/Constrs (#206)
- Make Formulation independent of Algorithm (#220)
- MAX_NUM_NODES & OPEN_NODE_LIMIT must be parameters of B&B algo (#226)
number_of_leaves
may return -1 but is used in a log function (#242)- Store current data in sparse matrix (#248)
- Check if column exists (#249)
- Issue with projection from the reformulation to the original variables (#252)
- Update tests for MOI 0.9.10 (#254)
- Dependency on input parameter values (#257)
- setcurisactive! / activate! / deactivate! : keep only one ? (#264)
- Kind of a constraint in an MOIOptimizer (#266)
- An error when solving cutting stock problem (#302)
- Branch and Price generates already active columns (#312)
- Full Branch and Price instead of restricted master heuristic (#313)
- DwSpSetupVar in master (#314)
- Restricted master is feasible but CPLEX did not return a dual solution (#315)
- set on var/constrs should not be done with the id (#328)
- codecov not working (#332)
- Infeasible master when Gurobi is subsolver (#334)
- Pricing call back not working (#339)
- Sense of a variable (#343)
- TreeSearchAlgorithm infinite branching loop when restricted LP master infeasible (#353)
- Rename ConstrKind Core (#356)
- Does not work with Julia 1.2 (#357)
- Subproblem infeasibility detection broken in colgen (#361)
- Dict not threadsafe ? (#363)
- getters for dw_sp_pricing_lb & ub in Reformulation (#366)
Merged pull requests:
- Update README.md (#212) (@guimarqu)
- Nested enumeration container (#213) (@guimarqu)
- Nested enumeration for VarConstrDuty tree (#214) (@guimarqu)
- @nestedenum : smallest primes for greatest ancestors (#215) (@guimarqu)
- Decouple master and subproblems (#216) (@FD-V)
- ElemDict & Members in Containers (#218) (@guimarqu)
- Create submodule
MathProg
(#219) (@guimarqu) - macro to export items of nestedenum (#221) (@guimarqu)
- Rm links between
MathProg
and algorithms (#222) (@guimarqu) - Create submodule Algorithm (#225) (@guimarqu)
- Mv Solutions & Bounds in Containers (#227) (@guimarqu)
- Var costs, lbs, and ubs stored in the formulation (#228) (@guimarqu)
- Rm inconsistent set perene data in MOIwrapper (#229) (@guimarqu)
- Ignore vscode file (#230) (@vitornesello)
- Hide VarConstrData (#231) (@guimarqu)
- get/set sense, kind & inc_val (#233) (@guimarqu)
- Update chat badge (#235) (@guimarqu)
- Duty{<:AbstractVarConstr} to move it in Id{<:AbstractVarConstr} (#236) (@guimarqu)
- Remove variable cur data and constraint cur data (#238) (@FD-V)
- Move duty into Id for var and constr (#239) (@FD-V)
- New organisation of algorithms (#240) (@rrsadykov)
- Dynamic Sparse Matrix for coefficient matrix (#241) (@guimarqu)
- Fix #242 (#244) (@guimarqu)
- getname methods for constraints & variables (#245) (@guimarqu)
- Update installation command in doc (#246) (@guimarqu)
- Dynamic sparse vector for solutions (#247) (@guimarqu)
- Fix round in fill primal result (#250) (@guimarqu)
- Install TagBot as a GitHub Action (#251) (@JuliaTagBot)
- Fix projection of dw reformulation to original formulation (#253) (@guimarqu)
- Optimizer builder of MOI 0.9.10 (#255) (@guimarqu)
- Update Coluna parameters (#258) (@guimarqu)
- Print name in solutions (#259) (@guimarqu)
- Change initial value of artificial vars (#260) (@guimarqu)
- Various fixes (#262) (@guimarqu)
- Fix check if column exists (#263) (@guimarqu)
- Print method for duties (nestedenum macro) (#265) (@guimarqu)
- Move parameters (#267) (@guimarqu)
- Keep activate/deactivate, rm setcurisactive (#269) (@guimarqu)
- Remove dead code (#270) (@guimarqu)
- Change name of 'get/set explicit' methods (#271) (@guimarqu)
- Dual sol pool matrix is dynamic sparse (#272) (@guimarqu)
- Introduce AbstractModel (#273) (@guimarqu)
- Abolish ElemDict (#274) (@guimarqu)
- Clean MathProg exports (#275) (@guimarqu)
- Add support of pricing oracles declared from BlockDecomposition (#276) (@guimarqu)
- Pricing oracles (#277) (@guimarqu)
- Introduce pricing oracle callback data (#278) (@guimarqu)
- Draft pricing callback works (#279) (@guimarqu)
- Rename oracle -> pricing (#280) (@guimarqu)
- Update issue templates (#281) (@guimarqu)
- Update readme (#282) (@guimarqu)
- AbstractModel in Solution (#285) (@guimarqu)
- New structures for Solutions & Results (#286) (@guimarqu)
- new struct ObjValues (#287) (@guimarqu)
- Merge OptimizationOutput & OptimizationResult (#288) (@guimarqu)
- MasterIpHeur -> IpForm (#289) (@guimarqu)
- MasterLp -> LpForm (#290) (@guimarqu)
- Update OptimizationInput structure (#291) (@guimarqu)
- rm Incumbents (#292) (@guimarqu)
- Update/add/set methods for solutions in OptimizationResult (#293) (@guimarqu)
- Rename IpForm LpForm -> SolveIpForm SolveLpForm (#294) (@guimarqu)
- fix benders solution updates (#295) (@guimarqu)
- fix logs + docstring for OptimizationResult (#296) (@guimarqu)
- OptimizationResult becomes OptimizationState (#297) (@guimarqu)
- Update documentation (#298) (@guimarqu)
- Create CompatHelper.yml (#299) (@guimarqu)
- CompatHelper: add new compat entry for "Primes" at version "0.4" (#300) (@github-actions[bot])
- Update solveipform.jl (#303) (@YP-Ye)
- Update masteripheur.jl (#304) (@YP-Ye)
- Artificial vars for Equal constraints (#305) (@guimarqu)
- Algo interface in ColunaBase (#306) (@guimarqu)
- Reorganisation of Algorithm submodule (#308) (@rrsadykov)
- Speed up computation of reduced costs (#309) (@guimarqu)
- Fix wrong duty for setupvar in master coeff matrix (#316) (@guimarqu)
- clean tests + loglevel 0 is default printlvl (#317) (@guimarqu)
- Clean dependencies (#318) (@guimarqu)
- colgen : reduced cost tolerance param (#319) (@guimarqu)
- log_level instead logmsg in SolveIpForm (#320) (@guimarqu)
- rm max_num_nodes & max_open_nodes in Params (#321) (@guimarqu)
- Implementation of Storages and StorageStates (#323) (@rrsadykov)
- Representatives of master sol should have master duty (#326) (@guimarqu)
- Fix ColGen algorithm (#327) (@guimarqu)
- clean setvarconstr! (#331) (@guimarqu)
- silent mode for subsolvers (#335) (@guimarqu)
- Create local artifical variables in setconstr! (#336) (@guimarqu)
- Fix activate! (#337) (@guimarqu)
- Update travis file (#338) (@guimarqu)
- Debugging code demo for pricing callback (#340) (@guilhemdupuis)
- Reduced cost method (#342) (@guimarqu)
- Master columns cleanup (#344) (@rrsadykov)
- Multi-threading on solving subproblems (#345) (@dianabarros)
- Add Région Nouvelle-Aquitaine in acknowledgments (#347) (@guimarqu)
- Implementation of smoothing stabilization (#348) (@rrsadykov)
- Start documentation for algorithms (#350) (@guimarqu)
- Option to print branching tree in file (#351) (@guimarqu)
- fix most frac branching + cvrp demo for ci tests (#352) (@guimarqu)
- Print node in branching tree after conquer (#354) (@guimarqu)
- Robust facultative cut generation callback (#355) (@guimarqu)
- add test for cvrp demo (#358) (@guimarqu)
- rm Manifest (#359) (@guimarqu)
- ConstrKind : Core -> Essential (#360) (@guimarqu)
- Detect subproblem infeasibility (#364) (@guimarqu)
- getters & doc for Reformulation (#367) (@guimarqu)
- Finishing automatic smoothing (#368) (@rrsadykov)
- More documentation (#369) (@guimarqu)
- Views for columns and constraints & rm MembersMatrix (#371) (@guimarqu)
- v0.3 (#372) (@guimarqu)
v0.2.0
v0.2.0 (2019-11-27)
Closed issues:
- Using
filter
not a good idea? (#185) - Optimizer for master problem requires supporting integer variables (#182)
- Single variable objective function (#181)
- No column generated & IP Restricted Master Heuristic finds a feasible solution (#174)
- The error when I add Coluna in Julia 1.2 (#172)
- error getbestprimasol when OptimizationResults empty (#167)
- Add support of identical subproblems (#163)
- Untested behavior if max nb of iterations reached in colgen (#162)
- A better error msg if no underlying solver chosen (#153)
- values of timers not reset (#147)
- wrong bounds in small gap instance (#146)
- Review of GAP basic example in doc (#145)
- Wrong termination status (#136)
- Dual value assert fails in LinQuadOptInterface (#131)
- Variable added to master constraints with wrong coefficients (#128)
- bound changes are wrongly propagated (#121)
- Bounds of convexity constraints in master (#118)
- move function
getparent
to BD (#110) - Coefficients matrix does not return constraint when lhs empty (#108)
- Remove functions setalgorithm and getalgorithm from StrategyRecord. (#107)
- getvars(::Formulation) should return a membersvector (#106)
- Formulation is not up-to-date in beginning of apply!(ConquerStrategy) (#105)
- Decomposition: Create pricing setup var in subproblem creation (#104)
- Homogeneous return structure for
optimize!
functions (#89) - Solver -> Algorithm (#79)
- Move demos outside Coluna.jl (#73)
- Retrieve objective value and solution value through JuMP/MOI (#64)
- Preprocessing (#62)
- Write a nice readme (#58)
- Make Coluna work with CPLEX (#56)
- Variable & Constraint ids depend on Formulation (#54)
- Remove bound changes in setdown (#53)
- Error tagging new release (#50)
- Move code from eval to treat (#49)
- Update docs (#45)
- Pure phase 1 to Simplex-based colgen (#43)
- Local artificial variables (#41)
- François's review of varconstr (#40)
- user-friendly modeling of multiple subproblems (#38)
- Subroblem membership (#6)
Merged pull requests:
- Bounds on deps (#211) (guimarqu)
- Update doc because bug (#210) (guimarqu)
- Error msg for termination status not covered (#209) (guimarqu)
- fix (#208) (guimarqu)
- Strong branching (#207) (rrsadykov)
- Skip rest mast ip heur if integer var unsupported (#204) (guimarqu)
- Error msg if no optimizer (#203) (guimarqu)
- Update README.md (#202) (guimarqu)
- Update starting guide (#199) (guimarqu)
- Clean deps (#196) (guimarqu)
- Conquer strategies parameters (#194) (guimarqu)
- Colgen algorithm style, params & tests (#193) (guimarqu)
- Strategies : treesearch -> explore (#192) (guimarqu)
- update get multiplicity functions (#191) (guimarqu)
- Update LICENSE.md (#190) (guimarqu)
- Bug report template for issues (#189) (guimarqu)
- Update Members Containers (#187) (guimarqu)
- Use Iterators.filter (#186) (guimarqu)
- Remove old file (#184) (guimarqu)
- Uniformize filter functions (#183) (guimarqu)
- Algos & Strategies params + Benders phases (#180) (guimarqu)
- Update project & manifest (#178) (guimarqu)
- fix empty optimization result + test of infeasible ip restricted master (#173) (guimarqu)
- rm getparent annotations (#171) (guimarqu)
- Fix get of members when no element (#170) (guimarqu)
- update for MOI 0.9 & julia 1.2 (#169) (guimarqu)
- Identical subproblems (#164) (guimarqu)
- Reformulation solver rework (#160) (vitornesello)
- Style preprocessing (#159) (vitornesello)
- style changes (#158) (tbulhoes)
- fix comments by Guillaume (#156) (vitornesello)
- deprecation (#155) (guimarqu)
- Update doc and gap example (#154) (guimarqu)
- WIP : Bug fixing preprocessing (#152) (vitornesello)
- Improve statuses and feasibility determination (#151) (vitornesello)
- small changes to preprocessing tests (#150) (tbulhoes)
- Reset timers at end (#149) (guimarqu)
- Fix primal solution check (#148) (guimarqu)
- Get multiplicity of subproblems from BD (#144) (guimarqu)
- Draft version of Benders algorithm (#143) (FD-V)
- Prepare merge in master (#142) (guimarqu)
- Rm representatives in rhs (#141) (guimarqu)
- rm nb_sequence in vcids (#140) (guimarqu)
- Sp vars bound change (#139) (vitornesello)
- WIP : Feature preprocessing (#138) (vitornesello)
- Tests for preprocessing (#135) (tbulhoes)
- Use LQOI version of the commit where dual assertion was removed (#132) (vitornesello)
- Fix issue #128 (#130) (hhkramer)
- Benders algo start (#127) (FD-V)
- function setrhs! that buffers the change (#126) (tbulhoes)
- Define global strategy in tests (#125) (guimarqu)
- Clone with parameters (#124) (guimarqu)
- fix manifest (#123) (guimarqu)
- Prepare formulation calling apply(::AbstractStrategy) (#120) (vitornesello)
- Bendersalgo (#119) (FD-V)
- Algorithms & strategies doc (#115) (guimarqu)
- Fix Benders draft (#114) (guimarqu)
- Dispatch decomposition using BD tree (#103) (guimarqu)
- Feature ad-hoc pricing solver (#102) (vitornesello)
- Duty types (#101) (guimarqu)
- Define custom optimizer (#100) (vitornesello)
- Benders decomposition (#99) (guimarqu)
- Rename partialsol primalspsol (#98) (guimarqu)
- Benders sep factory (#97) (guimarqu)
- Return several dual sols & check primal status (#96) (guimarqu)
- Benders decomposition draft (#95) (guimarqu)
- add lot sizing test (#94) (guimarqu)
- Introduce AbstractOptimizer (#93) (vitornesello)
- WIP: Ad-hoc pricing solver callback (#92) (vitornesello)
- run tests with only julia 1.1 (#91) (vitornesello)
- Introduce OptimizationResult{S} (#90) (vitornesello)
- Draft of benders separation (#87) (FD-V)
- ColumnGeneration phase one (#86) (vitornesello)
- Cleaning- Remove unused function (#85) (vitornesello)
- Status on node to handle formulation modifications/updates by the algorithms (#84) (vitornesello)
- reduce log + show functions (#82) (vitornesello)
- Improvement of unit tests (#78) (vitornesello)
- MOIWrapper - get obj value + get solution (#77) (vitornesello)
- Move demos in ColunaDemos.jl (#76) (guimarqu)
- Cleaning (#75) (vitornesello)
- Rework tree solver (#74) (vitornesello)
- Maximization bug fixes (#72) (vitornesello)
- WIP: Add support for maximisation (#71) (vitornesello)
- Cleaning: Problem setters + style (#70) (vitornesello)
- Readme update (#68) (vitornesello)
- Strategies rework (#67) (vitornesello)
- Rework FormulationCache (#66) (vitornesello)
- Test form with pure master vars & leq master constr (#65) (guimarqu)
- Replace interface by prepare (#63) (guimarqu)
- Divide & Conquer strategies (#61) (guimarqu)
- deploy doc auto (#60) (guimarqu)
- Update ci (#59) (guimarqu)
- WIP : New Data Structure (#51) (FD-V)