Skip to content

Releases: airbus/discrete-optimization

v0.4.0

07 Oct 16:15
Compare
Choose a tag to compare

What's Changed

  • Use minizinc 2.8.5 binary in tests by @nhuet in #284
  • Harmonize time_limit/timeout/... arguments by @nhuet in #278
  • Stop limiting ortools for windows tests by @nhuet in #285
  • Fix imports in examples by @nhuet in #287
  • Add a tutorial for lexicographic optimization by @nhuet in #280
  • Remove limit on nb of solutions in parameters for milp and cp by @nhuet in #288
  • Test on python 3.12 by @nhuet in #286
  • Update test with callback by @nhuet in #290
  • Introduce SubBrickHyperparameter and ListHyperparameter in tutorials by @nhuet in #283
  • Add QAOA and VQE solver for the problem Facility + add positibily to personnalized ansatz for QAOA and VQE by @ArmandGautier in #291
  • Drop support for python 3.8 by @nhuet in #292
  • Correct use of time_limit by @nhuet in #295
  • Fix quantum solvers __init__() and init_model() by @nhuet in #293
  • CPSat solver for multiskill rcpsp by @g-poveda in #294
  • Stop using deprecated/removed arguments from qiskit-ibm-runtime by @nhuet in #297
  • Introduce a milp solver base class using ortools/mathopt api by @nhuet in #289
  • Adding redundant constraints CPSAT Multiskill Rcpsp by @g-poveda in #296
  • Bugs in rcpsp multiskill calendars utils and cpsat solver by @g-poveda in #299
  • Adding basic example of mathopt for knapsack by @g-poveda in #300
  • Optuna example for MSRCPSP by @g-poveda in #301
  • Changed the unit test testing by @g-poveda in #302
  • Rename NewFixedSizedIntervalVar to NewFixedSizeIntervalVar to follow ortools release by @g-poveda in #304
  • Job shop problem integration by @g-poveda in #303
  • Unify set_warm_start for lp solvers (gurobi and ortools.mathopt) by @nhuet in #298
  • Change kamis_available definition in optuna example by @nhuet in #306
  • Stop checking minzinc binary at discrete_optimization import by @nhuet in #311
  • Add status to lp solvers (and default one to all solvers) by @nhuet in #308
  • JSP dev by @g-poveda in #312
  • Update minizinc version in notebooks and binder env by @nhuet in #314
  • Update lexico api by @nhuet in #315
  • Unify lp solvers init_model() methods by @nhuet in #305
  • Extract set_warm_start stuff from init_model in rcpsp milp solvers by @nhuet in #307
  • Add constraint handlers for mathopt solvers by @nhuet in #309
  • Rename "warmstart" boolean for cpsat coloring solver into "do_warmstart" by @nhuet in #316
  • TSP updates by @g-poveda in #313
  • Flexible job shop problem implementation by @g-poveda in #310
  • Remove dependency in python-mip by @nhuet in #317
  • Update colab installation in notebooks by @nhuet in #318
  • Update solvers_map's by @nhuet in #319

Full Changelog: v0.3.2...v0.4.0

v0.3.2

12 Sep 15:23
Compare
Choose a tag to compare

What's Changed

  • add optuna example and two new solvers for mis problem by @ArmandGautier in #216
  • Unify lns solvers api by @nhuet in #214
  • Modify the way to use quantum simulator to have more general function (no need to separe simulation and real device anymore) by @ArmandGautier in #219
  • Allow SubBrickKwargsHyperparameter to directly specify a subbrick class by @nhuet in #218
  • Allow hyperparameter definition dependending on other hyperparameters by @nhuet in #220
  • Fix issue with subsolvers whose hyperparameters share names but not types by @nhuet in #221
  • Make use of depends_on to improve existing solvers hyperparameters definition by @nhuet in #222
  • Convert maximum_independent_set into a findable subpackage by @nhuet in #223
  • Remove unused imports by @nhuet in #224
  • Update ParamsConstraintBuilder hyperparameters by @nhuet in #225
  • add a step parameter to the class IntegerHyperparameter by @ArmandGautier in #226
  • Add Optuna utilities to generate and run studies on single problem instance and multiple problem instances by @nhuet in #227
  • Replace test for timed pruner with timed optuna callback by @nhuet in #228
  • Allow GPHH solvers to not define training_domains by @nhuet in #229
  • Add possibility of defining subchoices for EnumHyperparameter by @nhuet in #230
  • More robust satisfy function for rcpsp by @g-poveda in #231
  • More precise solver and hyperparameters settings to handle missing gurobi solver/licence by @g-poveda in #232
  • Make qiskit an optional dependency by @nhuet in #234
  • Prepare compatibility with numpy 2.0 by @nhuet in #238
  • Add possibility to specify labels for CategoricalHyperparameter by @nhuet in #235
  • Clean pyproject.toml by @nhuet in #237
  • Add log and step attributes to integer and float hyperparameter by @nhuet in #239
  • Correct initialisation of get_edges_for_vehicle() in GPDP problem by @g-poveda in #241
  • Add "name_in_kwargs" attribute to hyperparameters by @nhuet in #240
  • Add quantum solvers for the coloring problem by @ArmandGautier in #236
  • Add possibility to suggest bounds of a float hyperparameter by @nhuet in #242
  • Add dynamically hyperparameters to a solver class in an optuna study by @nhuet in #243
  • Add possibility to finetune ortools-cpsat solvers by @nhuet in #244
  • Simplification of ResultStorage api by @nhuet in #246
  • Fix lns solve() and unify contraint handlers api by @nhuet in #248
  • Fix use of time_limit_iter0 in LNS_CP by @nhuet in #250
  • Implement an ortools-cpsat based lns solver by @nhuet in #245
  • Avoid random crash in test_cp_rcp by @nhuet in #252
  • Make ConstraintHandlerMix more generic by @nhuet in #253
  • add quantum solvers for tsp2Dmodel problem by @ArmandGautier in #247
  • Implement lns solver for maximum independent set problem by @nhuet in #251
  • Example script for MIS by @g-poveda in #254
  • add general class solvers for QAOA and VQE, can be use for any DO problem with a gurobi model. + quantum solvers for the knapsack problem by @ArmandGautier in #255
  • Implement lexicographic optimization by @nhuet in #249
  • New solver added for maximum independent set by @g-poveda in #256
  • Lexico tools update by @g-poveda in #257
  • Cpsat based solver for traveling saleman problem by @g-poveda in #258
  • CPSat solver for vrp problem by @g-poveda in #259
  • LNS with cpsat for the coloring graph problem by @g-poveda in #261
  • Improve optuna utils by @nhuet in #263
  • Refactor SubBrickHyperparameter by @nhuet in #260
  • Implement ListHyperparameter, a variable list of hyperparameters by @nhuet in #262
  • Add hyperparameters from MinizincCPSolver to ColoringCP by @nhuet in #266
  • Fix bug in cpsat vrp model by @g-poveda in #267
  • Simplify LargeNeighborhoodSearchScheduling.__init__() by @nhuet in #265
  • Store CPSolver in the OrtoolsCPSatSolver by @g-poveda in #268
  • Add WarmstartMixin for solvers which can start from an initial solution by @nhuet in #264
  • Drop trials with same parameters as others by failing them by @nhuet in #271
  • Implement a sequential metasolver by @nhuet in #269
  • Add possibility in sequential metasolver to customize kwargs using previous solution by @nhuet in #270
  • List without replacement of categorical or subbrick hyperparameters by @nhuet in #272
  • Improve SubBrickHyperparmeter.suggest_hyperparameter_with_optuna() by @nhuet in #273
  • Unit test change for vrp cpsat by @g-poveda in #274
  • Update fetching of IMOPSE datasets by @nhuet in #276
  • Add a unit factor when reporting time with optuna callback by @nhuet in #277
  • Add hyperparameters to SequentialMetasolver by @nhuet in #275
  • Update and fix notebooks by @nhuet in #279
  • add ansatz as class variable for QAOA and VQE algorithms by @ArmandGautier in #281
  • Add executed_ansatz variable to QAOA and VQE solvers by @ArmandGautier in #282

Full Changelog: v0.3.1...v0.3.2

v0.3.1

27 May 15:08
Compare
Choose a tag to compare

What's Changed

  • Update hyperparameters for all LNS CP solvers by @nhuet in #206
  • Enable callbacks for LS_RCPSP_Solver by @nhuet in #207
  • Freeze ortools for windows tests by @nhuet in #208
  • Add hyperparameters to rcpsp solvers by @g-poveda in #210
  • Add maximum independent set problem and solvers by @ArmandGautier in #209
  • Adapted the colormap usage in the different plot functions by @g-poveda in #211
  • Minor change on hyperparam for ga solver by @g-poveda in #212
  • Skip tests using python-mip on macos arm64 by @nhuet in #213

New Contributors

Full Changelog: v0.3.0...v0.3.1

v0.3.0

03 May 16:35
Compare
Choose a tag to compare

What's Changed

  • Squash gh-pages into a single commit when deploying doc by @nhuet in #138
  • Update list of binderhubs by @nhuet in #139
  • Minor fixes and refactoring on local search and genetic algorithms by @nhuet in #141
  • New solver for RCPSP models by @g-poveda in #142
  • Fix update-doc-versions job by @nhuet in #143
  • Increase minimal version of python to >=3.8 by @nhuet in #145
  • Update ortools solvers by @nhuet in #144
  • Adding VRP examples and test + update routing examples by @g-poveda in #146
  • Update github actions to use node 20 instead of node 16 by @nhuet in #147
  • Add callbacks in SolverDO.solve() by @nhuet in #148
  • Add callbacks to pickup_vrp ortools solver by @nhuet in #149
  • Increase timeout to avoid random errors in tests on github runners by @nhuet in #152
  • New solver development for RCPSP and some fix by @g-poveda in #153
  • Add SolverDO.init() and ._init_model() by @nhuet in #154
  • Fix parameter usage in greedy coloring so that the code actually works by @g-poveda in #155
  • Handle missing distance value from the dictionnary of distance in GPDP problem by @g-poveda in #158
  • Refactor ortools cp-sat based solvers by @nhuet in #151
  • Fix problem of LargeNeighborhoodSearchRCPSP solver by @g-poveda in #159
  • Hyperparameters optimization with Optuna by @nhuet in #150
  • Adding CPSat solver for graph coloring problem by @g-poveda in #160
  • Fix ortools-cpsat-based solver when using several workers by @nhuet in #163
  • Update optuna full example by @nhuet in #164
  • Put in common MilpSolver.retrieve_solutions() by @nhuet in #162
  • Adding CPSat solver for coloring and new optuna example by @g-poveda in #165
  • Fix corner case of cpsat encoding by @g-poveda in #166
  • Fix retrieve_solutions() for milp solvers by @nhuet in #167
  • Adding objective function logger callback by @g-poveda in #161
  • Implement callbacks integration for gurobi solvers by @nhuet in #168
  • Implement callbacks for ASP clingo solvers by @nhuet in #169
  • Knapsack solver hyperparameters by @g-poveda in #170
  • Adding kwargs in constructor function of CPSatSolver of Rcpsp by @g-poveda in #172
  • Fix linting issue PR172 by @g-poveda in #173
  • Hyperparameters improvements and refactoring by @nhuet in #174
  • Update solvers to make them use complete_with_default_hyperparameters by @nhuet in #175
  • Handle subsolvers hyperparameters in knapsack decomposition solver by @nhuet in #176
  • Move binder environment into a subdirectory of main branch by @nhuet in #177
  • Adding hyperparams for facility solvers by @g-poveda in #171
  • Update Knapsack solver and optuna examples by @g-poveda in #178
  • Fix cpmpy example by @nhuet in #179
  • Implement callbacks for lns solvers by @nhuet in #181
  • Implement callbacks for knapsack decomposed solver by @nhuet in #182
  • Fix CategoricalHyperparameter.suggest_with_optuna() by @nhuet in #184
  • Add colab links for notebooks by @nhuet in #185
  • Add a basic content to "getting started" doc page. by @nhuet in #188
  • Add a notebooks explaining callbacks usage by @nhuet in #189
  • Implement callbacks for iterative pickup-vrp milp solvers by @nhuet in #183
  • Fix optuna callback by @nhuet in #190
  • Update Hyperparams for coloring solver by @g-poveda in #192
  • Implement callbacks for minizinc-based solvers by @nhuet in #187
  • Avoid having to install minizinc to build the doc by @nhuet in #193
  • Modified parse_file function to include the possibility to read in patterson rcpsp files by @derhendrik in #196
  • Use time instead of number of iteration to display and/or prune the trials with optuna by @nhuet in #194
  • Fetch datasets RG30 and RG300 from solutionsupdate.ugent.be and use them in tests by @nhuet in #197
  • Fix github actions with macos-latest by @nhuet in #199
  • Make easier hyperparameters definition for LNS solvers by @nhuet in #195
  • Fix binder build trigger for releases by @nhuet in #200
  • Add optuna tutorial by @nhuet in #198
  • Clean test workflow matrix by @nhuet in #201
  • Fix some issues in preparation for python 3.12 support by @nhuet in #203
  • Update library metadata by @nhuet in #204
  • Remove unnecessary assert that could randomly fail by @nhuet in #205

New Contributors

Full Changelog: v0.2.3...v0.3.0

v0.2.3

04 Jan 15:52
Compare
Choose a tag to compare

What's Changed

  • Fix typos in minizinc tip by @nhuet in #84
  • Make docs/README.md point to contributing page by @nhuet in #86
  • Cleaner integration of model and data MSPSP-Instlib by @g-poveda in #87
  • New attribute in CPSolvers : status_solver by @g-poveda in #89
  • MSLIB (+ polishing MSPSP) integration by @g-poveda in #90
  • [Doc] Fix typo in contributing page by @nhuet in #91
  • [Doc ]Remove newlines at the end of version string coming from git by @nhuet in #92
  • [Gihub actions] Fix pip cache key by @nhuet in #93
  • Robustify create-binder-env job by @nhuet in #94
  • Fix mypy issues in knapsack by @nhuet in #95
  • Put common tools for ghh in a separate file by @nhuet in #101
  • Remove pytest slow marker not relevant anymore by @nhuet in #96
  • Make mypy stricter by @nhuet in #97
  • Update dependencies to ease proper typing by @nhuet in #98
  • Fix generic_tools for stricter mypy by @nhuet in #99
  • Fix issues with stricter mypy in coloring by @nhuet in #100
  • Fix mypy issues in tsp by @nhuet in #102
  • Fix issues with stricter mypy in facility by @nhuet in #104
  • Fix issues with stricter myp for knapsack by @nhuet in #105
  • Fix mypy issues in vrp by @nhuet in #103
  • Create a dataclass to specify objective type and default weights by @nhuet in #106
  • Bump isort pre-commit hook by @nhuet in #107
  • Add RCPSP educational notebooks by @nhuet in #60
  • Update pickup_vrp API to be in par with the rest of the library by @nhuet in #108
  • Replace addConstr() by newer addLConstr() available for gurobi >= 9.0 by @nhuet in #113
  • Set "trigger binder env build" step as optional in github workflow by @nhuet in #114
  • Improve "trigger binder build" step by @nhuet in #115
  • Add new generic CplexMilpSolver for linear programming using docplex library by @g-poveda in #110
  • ASP Solver for coloring problem binded to the library by @g-poveda in #109
  • Improve readibility of notebooks page in documentation by @nhuet in #117
  • Use Agg backend for matplotlib in github actions to avoid random issues in windows tests by @nhuet in #119
  • Adding contributors credits by @g-poveda in #116
  • ASP Based solver for knapsack problem by @g-poveda in #120
  • Knapsack iterative solver by @g-poveda in #121
  • Change ortools version in requirements by @g-poveda in #122
  • Fix issue in alternating ga by @nhuet in #123
  • Harmonize use of int (32 or 64) and stop using deprecated numpy aliases by @nhuet in #124
  • Refactor non preemptive rcpsp models and fix typing issues by @nhuet in #127
  • Remove deprecated code by @nhuet in #128
  • Fix an issue when evaluating with encoding priority_worker_per_task by @nhuet in #129
  • Minor fix for rcpsp and rcpsp_multiskill by @g-poveda in #126
  • Pass some relevant logger from debug to info by @g-poveda in #130
  • Fix Rcpsp modules by @g-poveda in #131
  • Coloring Fix by @g-poveda in #132
  • Fix knapsack by @g-poveda in #133
  • RCPSP development by @g-poveda in #134
  • Coloring problem enrichment by @g-poveda in #135
  • Make linter job actually perform a check by @nhuet in #136
  • Ponctual fixes by @g-poveda in #137

Full Changelog: v0.2.1...v0.2.3

v0.2.2

28 Mar 10:08
Compare
Choose a tag to compare

What's Changed

  • Fix typos in minizinc tip by @nhuet in #84
  • Make docs/README.md point to contributing page by @nhuet in #86
  • Cleaner integration of model and data MSPSP-Instlib by @g-poveda in #87
  • New attribute in CPSolvers : status_solver by @g-poveda in #89
  • MSLIB (+ polishing MSPSP) integration by @g-poveda in #90
  • [Doc] Fix typo in contributing page by @nhuet in #91
  • [Doc ]Remove newlines at the end of version string coming from git by @nhuet in #92
  • [Gihub actions] Fix pip cache key by @nhuet in #93
  • Robustify create-binder-env job by @nhuet in #94
  • Fix mypy issues in knapsack by @nhuet in #95
  • Put common tools for ghh in a separate file by @nhuet in #101
  • Remove pytest slow marker not relevant anymore by @nhuet in #96
  • Make mypy stricter by @nhuet in #97
  • Update dependencies to ease proper typing by @nhuet in #98
  • Fix generic_tools for stricter mypy by @nhuet in #99
  • Fix issues with stricter mypy in coloring by @nhuet in #100
  • Fix mypy issues in tsp by @nhuet in #102
  • Fix issues with stricter mypy in facility by @nhuet in #104
  • Fix issues with stricter myp for knapsack by @nhuet in #105
  • Fix mypy issues in vrp by @nhuet in #103
  • Create a dataclass to specify objective type and default weights by @nhuet in #106
  • Bump isort pre-commit hook by @nhuet in #107
  • Add RCPSP educational notebooks by @nhuet in #60
  • Update pickup_vrp API to be in par with the rest of the library by @nhuet in #108
  • Replace addConstr() by newer addLConstr() available for gurobi >= 9.0 by @nhuet in #113
  • Set "trigger binder env build" step as optional in github workflow by @nhuet in #114
  • Improve "trigger binder build" step by @nhuet in #115
  • Add new generic CplexMilpSolver for linear programming using docplex library by @g-poveda in #110
  • ASP Solver for coloring problem binded to the library by @g-poveda in #109
  • Improve readibility of notebooks page in documentation by @nhuet in #117
  • Use Agg backend for matplotlib in github actions to avoid random issues in windows tests by @nhuet in #119
  • Adding contributors credits by @g-poveda in #116
  • ASP Based solver for knapsack problem by @g-poveda in #120
  • Knapsack iterative solver by @g-poveda in #121

Full Changelog: v0.2.1...v0.2.2

v0.2.1

19 Nov 19:14
Compare
Choose a tag to compare

What's Changed

  • Check minizinc binary version and bump minizinc-python version by @nhuet in #48
  • Fix "Fetch data for tests" workflow step for windows by @nhuet in #50
  • Fix the copy() function of RCPSPModel by @g-poveda in #53
  • Update actions to use node 16 by @nhuet in #52
  • New model for resource usage optimisation in RCPSP problem by @g-poveda in #45
  • Use new way of setting output parameter by @nhuet in #57
  • Use pyproject.toml instead of setup.py by @nhuet in #58
  • Show discrete_optimization path used by pytest by @nhuet in #62
  • Use new feature caching pip cache with setup-python action by @nhuet in #61
  • New knapsack solver based on cpmpy library by @g-poveda in #63
  • Knapsack notebook by @nhuet in #59
  • Use pyproject.toml file for mypy configuration by @nhuet in #66
  • Adding new solver for coloring problem based on cost function network by @g-poveda in #64
  • Build and deploy the documentation by @nhuet in #56
  • Fix a bug when calling get_data_available without data_home existing by @nhuet in #67
  • Fix dependencies of the library and test importing each module correctly by @nhuet in #68
  • Fix utility function creating sampled rcpsp instance by @g-poveda in #71
  • Fix github+binder links for notebooks when tagging a release by @nhuet in #72
  • Update automatically binder environment when pushing on default branch or tagging a release by @nhuet in #73
  • Modify prerequisites text for binder users by @nhuet in #74
  • Simplify readme by pointing to online doc by @nhuet in #75
  • Add tips in doc to install minzinc easily in a terminal (works on cloud) by @nhuet in #78
  • Update minizinc install command line for ubuntu in github actions by @nhuet in #79
  • Correct minizinc install command lines in doc for Linux without FUSE by @nhuet in #82
  • Fix installation instructions in editable mode (need recent version of pip) by @nhuet in #83
  • Skip minizinc version check if DO_SKIP_MZN_CHECK env variable is set by @nhuet in #81

Full Changelog: v0.2.0...v0.2.1

v0.2.0

23 Sep 13:48
Compare
Choose a tag to compare

What's Changed

  • Integrate previous work done on a previous repo by @nhuet in #5
  • Fix issues when gurobi not available by @nhuet in #6
  • Test importing all modules by @nhuet in #7
  • Restore njit decorator for sgs_fast_preemptive_minduration() by @nhuet in #8
  • Fix typo and finish a sentence. by @nhuet in #10
  • Clean the code by @nhuet in #9
  • Allow more time for rcpsp_ms to rcpsp solver by @nhuet in #11
  • Add linear flow solver pickup_vrp test by @nhuet in #15
  • Create a coverage report by @nhuet in #12
  • Remove obsolete module and move example to examples/ by @nhuet in #18
  • [codereview.doctor] Add encoding when parsing files by @nhuet in #20
  • [coderview.doctor] Use dataclass instead of NamedTuple by @nhuet in #22
  • [coderview.doctor] Avoid redundant list comprehension by @nhuet in #23
  • [coderview.doctor] Use Optional instead of Union by @nhuet in #24
  • [codereview.doctor] Use f-strings by @nhuet in #21
  • Remove unnecessary prints by @g-poveda in #26
  • Fix mypy issues on generic_tools, coloring, and facility by @nhuet in #25
  • Avoid duplicates by calling look_for_solver_class in look_for_solver by @nhuet in #27
  • [codereview.doctor] Remove "if" conditions that always evaluate to True or False by @nhuet in #19
  • Replace print by logging by @nhuet in #28
  • Remove solve_lns() methods from CP and LP solvers by @nhuet in #29
  • Remove methods only used in former solve_lns() by @nhuet in #30
  • Modify ParametersCP and ParametersMilp by @nhuet in #31
  • Examples Fix and refactoring by @g-poveda in #32
  • Refactor milp solvers by @nhuet in #33
  • Refactor CP solvers by @nhuet in #35
  • Examples and unit test all running by @g-poveda in #37
  • Add pre-commit hooks for notebooks by @nhuet in #39
  • Fix logging messages by @nhuet in #40
  • Update readme by @nhuet in #41
  • Replace no break spaces by regular spaces by @nhuet in #44
  • Enrich the API doc for coloring, facility, and generic_tools by @nhuet in #42
  • Release workflow by @nhuet in #38
  • Add copyright for source files by @nhuet in #43
  • Fix RCSPSP_MS LP solver by @nhuet in #46
  • Update references for other minizinc files by @nhuet in #47

New Contributors

Full Changelog: https://github.com/airbus/discrete-optimization/commits/v0.2.0