-
Notifications
You must be signed in to change notification settings - Fork 43
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
Prototyping custom model/optimizer #535
Conversation
@laradicp I wasn't working when direct mode was deactivated, so I made some modifications. However, I don't think it's a good solution because I think we should build the mapping It's more difficult than I thought. We must figure out how we can build this relation My first idea was to use |
Tests are ok |
I find this organization strange. You have subproblem formulation, inside you have optimizer, which itself has In
We may define There is also a functionality missing, which allows us to say that a certain variable is implicit representative. Concerning setup variables, I think they should should be managed automatically by Coluna |
Ok, may be sp. setup variables should also be managed by the user. So we may have something like
With the knowledge of setup variable, the user can check whether a certain solution has a negative reduced cost. Here setup vars may be defined automatically by Coluna, but |
Follow up in #537 |
Ok for me. Why the tests do not pass? |
Because we need to release a new version of BlockDecomposition |
* dev branch to prepare release of 0.4.0 * Move storage & records in ColunaBase (#507) * Renaming in storage (#509) * RecordContainer -> RecordWrapper * state -> record * rename lot of things, remove getters of Storage not used by Algorithms * Storage -> StorageUnitWrapper * Deletion of `AbstractData` (#510) * RecordContainer -> RecordWrapper * state -> record * rename lot of things, remove getters of Storage not used by Algorithms * start removing AbstractData structs * tests ok * getunit -> getstorageunit; StorageDict -> Storage * fix docstring * Bijection StorageUnit -> Record (#518) * Bijection StorageUnit -> Record * address Ruslan's comments * Implementation of column generation stages (#525) * Implementation of column generation stages (for example, heuristic and exact stage) * Update after conversation with Guillaume + stabilization correction * Simplification for ColCutGenConquer * Some more modifs due to Guillaume comments * Counting the number of exact calls when testing the pricing stages (#530) * Add bound callback tests (#532) * add bound callback tests * include bound callback in runtests * fix test * Apply suggestions from code review Co-authored-by: Guillaume Marques <guillaume.marques@protonmail.com> * add comment * Apply suggestions from code review Co-authored-by: Guillaume Marques <guillaume.marques@protonmail.com> Co-authored-by: Guillaume Marques <guillaume.marques@protonmail.com> * Vector of optimizers in `Formulation` (#534) * vector of optimizers in formulation * solver_id -> optimizer_id * add Manifest * update Manifest * remove Manifest because does not work * changes * rm files * address Ruslan's comment * Update src/MathProg/optimizerwrappers.jl Co-authored-by: Vitor Nesello <vitornesello@gmail.com> * add Manifest * change ci * remove ci change * rm Manifest Co-authored-by: Vitor Nesello <vitornesello@gmail.com> * UnitsUsageDict -> UnitsUsage (#522) * UnitsUsageDict -> UnitsAccess * wip * improve * tests ok * Custom data for variables and constraints (#495) * draft for support of customer data * custom data in solution * custom data for cut callback * computecoeff * store custom data of solutions in manager * add Manifest * rm Manifest * Support to custom cuts over custom data assigned to columns with new test * tests ok Co-authored-by: Artur Alves Pessoa <artur.a.pessoa@gmail.com> * Prototyping custom model/optimizer (#535) * Start example * wip draft * continue * add map * works with caching optimizer * varids in Env * wrong result * multiply costs by -1 * fix scaling * Apply suggestions from code review * Update test/interfaces/model.jl Co-authored-by: Lara Pontes <laradicp@gmail.com> * Follow up of "custom data" (#538) * add AbstractCustomData and set/get inc_val * fix bugs * remove duplicate methods * delete unnecessary prefixes and fix some bugs * revert some changes and update docstring * custom information for dw sp (#542) * docstring for restricted master heuristic (#543) * docstring for restricted master heuristic * Update src/Algorithm/conquer.jl * Refactoring `ObjValues` & `OptimizationState` (#544) * clean + doc * move doc from objvalues to optstate; tests of objvalues; update ci * update * update branching priorioty deprecated method * tests ok * tests ok * tests ok * delete duplicated tests Co-authored-by: Ruslan Sadykov <41117501+rrsadykov@users.noreply.github.com> Co-authored-by: Artur Pessoa <artur.a.pessoa@gmail.com> Co-authored-by: Lara di Cavalcanti Pontes <34425678+laradicp@users.noreply.github.com> Co-authored-by: Vitor Nesello <vitornesello@gmail.com> Co-authored-by: Lara Pontes <laradicp@gmail.com>
First implementation for the custom model/optimizer.
At the moment it's not possible to replace the
Formulation
by a custom one because it requires much more work.