Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
History of file src/solver.rs at check-in 12aebdedf7c29df3
|
2019-12-21
| ||
| 22:48 | Merge release file: [efa312ef3b] check-in: [51732172c2] user: fifr branch: modifyprimals, size: 38392 | |
| 21:28 | Add `dyn` to trait object types file: [3b74e53843] check-in: [45d9ecf62b] user: fifr branch: modifyprimals, size: 38020 | |
| 21:02 | Add `dyn` to trait object types file: [81a7f70f2c] check-in: [147bcf602c] user: fifr branch: release, size: 37371 | |
|
2019-11-22
| ||
| 09:24 | problem: make `ResultSender` a trait with implementation `ChannelSender` file: [7be3579b36] check-in: [43abfc4c67] user: fifr branch: result-sender, size: 873 | |
|
2019-07-30
| ||
| 09:19 | Copy `sync` to `asyn` module as a basis file: [5d3829ae1b] check-in: [8fb77f4bd8] user: fifr branch: async-separation, size: 858 | |
| 08:01 | Added: Rearrange master problem module file: [b4051a484d] check-in: [d5eed55bb2] user: fifr branch: restructure, size: 843 | |
| 07:25 | Deleted: Remove old sequential solver check-in: [b194454b53] user: fifr branch: restructure, size: 0 | |
|
2019-07-25
| ||
| 13:53 | Merge trunk file: [a71f21551d] check-in: [f0a36f7482] user: fifr branch: async, size: 35706 | |
| 13:46 | firstorderproblem: pass the subproblem index to `extend_subgradient` file: [15ce9dfd36] check-in: [166a377203] user: fifr branch: trunk, size: 37355 | |
| 13:42 | Fix indexing of minorants in solver. Each minorants is assigned a globally unique and invariant identifier. This identifiers is always used to refer to that minorant. The former implementation violated this rule during the model update when the subgradient extension callback is called. This caused the wrong primal to be used for the subgradient extension ultimately leading to wrong subgradients/minorants. file: [99b5b53ffb] check-in: [4728cdaec5] user: fifr branch: trunk, size: 37350 | |
| 10:31 | firstorderproblem: pass the subproblem index to `extend_subgradient` file: [c42c150531] check-in: [ff30e74d44] user: fifr branch: async, size: 35123 | |
|
2019-07-22
| ||
| 11:50 | Move additional requirements to basic traits. This includes bounds on `Send` and `'static` so that master problems and function oracles can always be used in threads. The requirements have always been there as additional bounds for the solvers, but it is easier (and more descriptive) to state them in the basic traits. file: [1b320ebacd] check-in: [2c9472f892] user: fifr branch: async, size: 35117 | |
| 09:05 | Move convenience typs to crate level file: [9d49695f1b] check-in: [adb6de0ae8] user: fifr branch: master-builder, size: 35297 | |
| 08:52 | Introduce master problem builder file: [327a9fd3a1] check-in: [5ee9fe59e5] user: fifr branch: master-builder, size: 35668 | |
|
2019-07-20
| ||
| 14:17 | Remove unused parameters from `SolverParam` file: [deb6acb86d] check-in: [f5557bc6af] user: fifr branch: async, size: 35179 | |
| 13:56 | Implement new generic terminator interface file: [8927bbba47] check-in: [ff06564d0f] user: fifr branch: terminator, size: 36597 | |
| 12:20 | Implement new generic weigther interface file: [16bebc90af] check-in: [8dc408e351] user: fifr branch: weighter, size: 37220 | |
|
2019-07-19
| ||
| 14:14 | Implement `Default` for `StandardTerminator` file: [afb993eaa5] check-in: [6253cbde2b] user: fifr branch: async, size: 36889 | |
| 14:05 | Basic implementation of parallel solver file: [ba9aceeb6f] check-in: [c73935e202] user: fifr branch: async, size: 36771 | |
|
2019-07-17
| ||
| 19:21 | Add `MasterProblem::Err` type variable file: [8a59c36f6b] check-in: [2d05075c29] user: fifr branch: async, size: 36800 | |
| 15:38 | Simplify error handling (again) by using boxed errors file: [57470ce51a] check-in: [b6b5c1ec21] user: fifr branch: async, size: 36759 | |
| 14:41 | solver: make master problem a type argument file: [f2405d0d0b] check-in: [6186a4f7ed] user: fifr branch: async, size: 36835 | |
| 14:14 | master: add error type parameter for subgradient extension callback file: [963023b5d3] check-in: [f6352834ce] user: fifr branch: async, size: 36747 | |
| 11:23 | Make all errors Send + Sync file: [2b70ef0100] check-in: [1e94fdd305] user: fifr branch: async, size: 36719 | |
|
2019-07-15
| ||
| 19:44 | Merge trunk file: [a6eb090eb3] check-in: [3eeaf28f08] user: fifr branch: async, size: 36703 | |
| 19:33 | Modernize some clippy warnings file: [e0c8d065be] check-in: [394e0533c6] user: fifr branch: trunk, size: 36772 | |
| 12:48 | Merge trunk file: [252fd5c5fe] check-in: [ecb9507ef3] user: fifr branch: aggregatable, size: 36731 | |
| 12:32 | Solver: add `solve_with_limit` file: [00b1b4283a] check-in: [2314de719c] user: fifr branch: trunk, size: 36800 | |
| 12:29 | Solver: call `init` from `solve` not from `solve_iter`. `solve_iter` is supposed to be called several times. Hence the solver must not be reinitialized each time the function is called. file: [7aad005306] check-in: [7749770720] user: fifr branch: trunk, size: 36492 | |
| 12:20 | Solver: simplify re-raise of master problem errors file: [802624df74] check-in: [bf831bc6e2] user: fifr branch: trunk, size: 36492 | |
| 11:18 | Solver: simplify `aggregated_primals` file: [259796f0a0] check-in: [3c9ee37585] user: fifr branch: aggregatable, size: 37008 | |
| 10:58 | FirstOrderProblem: require `Primal` to be aggregatable. This allows to remove the `aggregate_primals` methods. file: [916c4342a2] check-in: [a98dc9db36] user: fifr branch: aggregatable, size: 36985 | |
| 10:33 | solver: fix initialization of `Solver` in `solve_iter` file: [7bfe7b8320] check-in: [80086db562] user: fifr branch: trunk, size: 37077 | |
|
2018-12-12
| ||
| 15:41 | Merge trunk file: [c304a5796a] check-in: [e1f5bd7920] user: fifr branch: modifyprimals, size: 38005 | |
| 15:38 | Replace `extern crate` with `use` file: [ba7a4b93d6] check-in: [32372fda04] user: fifr branch: trunk, size: 36996 | |
| 15:30 | Update to 2018 edition file: [b94b2f5d16] check-in: [80cbe311ac] user: fifr branch: trunk, size: 36948 | |
|
2018-08-30
| ||
| 11:07 | Implement `Update::ModifyPrimals` file: [e29d89e899] check-in: [a5c90ab126] user: fifr branch: modifyprimals, size: 37929 | |
| 09:04 | Add `Update::ModifyPrimal` update information file: [f155d33946] check-in: [ee9e94be2a] user: fifr branch: modifyprimals, size: 36987 | |
|
2018-08-18
| ||
| 11:15 | Reformat file: [d00a050ed7] check-in: [4dad0cad83] user: fifr branch: error-handling, size: 36920 | |
|
2018-06-27
| ||
| 07:05 | solver: remove unnecessary `move` from extend subgradient closure file: [1f983703ce] check-in: [f410ce94ba] user: fifr branch: error-handling, size: 36937 | |
|
2018-06-26
| ||
| 21:39 | Implement `MasterProblemError` as more specific enum file: [d7e36dbc14] check-in: [58f8ffe7a1] user: fifr branch: error-handling, size: 36946 | |
| 21:17 | master: Subgradient extension callback may return an error. This callback eventually calls a method of the oracle and may fail with some user error. This error is now returned to the master problem and finally back to the solver. file: [b6153a17f5] check-in: [cd30b6f272] user: fifr branch: error-handling, size: 36955 | |
| 13:46 | Remove explicit lifetime from `FirstOrderOracle` file: [74791750a7] check-in: [0b6fbe2b30] user: fifr branch: error-handling, size: 36944 | |
| 13:40 | Remove dependency on `failure` crate file: [b3aec054b9] check-in: [ade34c179c] user: fifr branch: error-handling, size: 37130 | |
|
2018-06-06
| ||
| 20:17 | Fix several clippy warnings file: [28b7c84320] check-in: [1adcbb8b61] user: fifr branch: trunk, size: 35648 | |
|
2017-12-13
| ||
| 22:48 | Remove empty lines file: [fce6115f84] check-in: [25714ffdea] user: fifr branch: trunk, size: 36446 | |
|
2017-11-21
| ||
| 10:06 | Reformat sources using `rustfmt` file: [4c52cb0a4e] check-in: [998cbd7227] user: fifr branch: trunk, size: 36544 | |
|
2017-11-20
| ||
| 09:24 | BoxedMasterProblem is now constructed with wrapped unconstrainted master. It is more idiomatic to pass the wrapped UnconstrainedMasterProblem to the constructor instead of constructing the wrapped master in the constructor. An advantage is that errors raised by the construction of the unconstrainted master can be handled more directly. file: [32611c01f0] check-in: [7293704f87] user: fifr branch: trunk, size: 35288 | |
| 09:15 | Improve dimension check in master initialization. file: [9033b303ef] check-in: [443fb2dfa5] user: fifr branch: trunk, size: 35195 | |
| 09:11 | Refactoring file: [4aa50b81f7] check-in: [741fb52a85] user: fifr branch: trunk, size: 35060 | |
| 09:05 | solver: remove remaing `try!` file: [da260ba320] check-in: [40f31dd62c] user: fifr branch: trunk, size: 35124 | |
| 09:02 | Refactor `SolverError::Parameter` file: [0a18c57aec] check-in: [c24cf8d06e] user: fifr branch: trunk, size: 35154 | |
| 07:55 | Add SolverError variants for master and oracle errors. file: [65aaf151b7] check-in: [b0a2986e97] user: fifr branch: trunk, size: 35165 | |
|
2017-11-19
| ||
| 20:30 | Add possible error handling to master problem methods file: [8002945ba0] check-in: [16ede320bb] user: fifr branch: trunk, size: 34282 | |
|
2017-11-18
| ||
| 21:42 | Use `failure` for error handling. file: [19739b1f71] check-in: [df7544e94f] user: fifr branch: trunk, size: 34206 | |
|
2017-11-02
| ||
| 08:42 | Use digit separators in long integer literals file: [6e636361ef] check-in: [ff47afc279] user: fifr branch: trunk, size: 35707 | |
|
2017-04-18
| ||
| 13:08 | solver: do not call `init` in `solver_iter`. file: [28dfff2517] check-in: [fb00b3c18e] user: fifr branch: trunk, size: 35704 | |
| 13:04 | Solver::solve returns `Error::IterationLimit` if limit has been reached. file: [2fb2644257] check-in: [9bbb1b8836] user: fifr branch: trunk, size: 35527 | |
| 12:59 | solver: add `solver_iter` method. file: [9f2e1d5fce] check-in: [10b0be88b8] user: fifr branch: trunk, size: 35587 | |
|
2017-03-07
| ||
| 16:52 | solver: fix updating of `self.bounds` when adding new variables. file: [ebedc1def0] check-in: [34ecdf278f] user: fifr branch: trunk, size: 34832 | |
|
2017-03-06
| ||
| 16:58 | master: allow moving of existing variables. This changes the master problem API, but the implementation of `boxed` does not yet implement this feature. file: [3605d4b83e] check-in: [3d746e5739] user: fifr branch: trunk, size: 34724 | |
| 16:50 | Add `MoveVariable` update. The `Solver` struct accepts these updates and handles them. However, they are not passed to the master problem, yet. file: [96f26bc075] check-in: [ce9ab8ec19] user: fifr branch: trunk, size: 34756 | |
| 16:35 | solver: silence a clippy warning. file: [7348ac40b4] check-in: [8b9adfcbb9] user: fifr branch: trunk, size: 33389 | |
|
2017-03-03
| ||
| 15:46 | solver: fix adding new variables to master. file: [2240c2056b] check-in: [705a1cf52f] user: fifr branch: trunk, size: 33324 | |
| 15:41 | solver: set center value of newly separated variables correctly. The former implementation only worked with new variables being centered at 0. file: [e18c9059e9] check-in: [5e794600f2] user: fifr branch: trunk, size: 33324 | |
|
2017-02-28
| ||
| 10:56 | solver: add `center` and `candidate` methods. file: [f8fd08c306] check-in: [86f5e96862] user: fifr branch: trunk, size: 33227 | |
|
2017-02-22
| ||
| 16:32 | Remove `DVector` from external API. The use of `[Real]` or `Vec<Real>` is sufficient in most cases. file: [6c293f03e8] check-in: [d7ed56f9b3] user: fifr branch: trunk, size: 33005 | |
|
2017-01-20
| ||
| 09:19 | Refactor several lint warnings. file: [c77f09f605] check-in: [f0ef5ba392] user: fifr branch: trunk, size: 33012 | |
|
2016-10-19
| ||
| 07:37 | Run `rustfmt` on all sources. file: [ed65331a99] check-in: [2bc4277460] user: fifr branch: trunk, size: 32991 | |
|
2016-10-13
| ||
| 17:47 | Change parameters of `FirstOrderProblem::aggregate_primals`. Now the primals and coefficients are passed as (coeff, primal) pairs. This ensures that the number of coefficients always equals the number of primals by design. file: [7c9788ca5e] check-in: [5221a3331a] user: fifr branch: trunk, size: 32025 | |
|
2016-10-11
| ||
| 08:50 | Add variable+value update. file: [12134cfbf2] check-in: [8d2547a9f9] user: fifr branch: trunk, size: 32036 | |
| 08:45 | solver: Check bounds for validity. file: [f80b6e5c56] check-in: [d67ab3a0b0] user: fifr branch: trunk, size: 31595 | |
|
2016-10-10
| ||
| 20:33 | solver: Add `last_primal` method to `UpdateState`. file: [455923779f] check-in: [40a866dae4] user: fifr branch: trunk, size: 30717 | |
| 20:33 | solver: Add `cur_y` and `nxt_y` fields to `UpdateState`. file: [138b031a5e] check-in: [2b281a925b] user: fifr branch: trunk, size: 30462 | |
| 14:43 | Add `IterationInfo` to update state. file: [dbdd4928cb] check-in: [8d6b894491] user: fifr branch: trunk, size: 29785 | |
|
2016-10-06
| ||
| 09:28 | solver: Call `update_problem` only once per iteration. file: [0e8d373bd7] check-in: [d08662bfb8] user: fifr branch: trunk, size: 29072 | |
| 06:27 | solver: Add a debug assertion. file: [1b2d1b0ca6] check-in: [f7d5aaf424] user: fifr branch: trunk, size: 29117 | |
|
2016-10-05
| ||
| 20:20 | solver: Enlarge vectors when adding new variables. file: [1e525fe60f] check-in: [039c268628] user: fifr branch: trunk, size: 29044 | |
| 20:14 | solver: Remove duplicate method `update_problem`. file: [b88a135ee0] check-in: [8d95c5134e] user: fifr branch: trunk, size: 28861 | |
| 20:11 | solver: Do not terminate of problem has been changed. file: [361c9d2845] check-in: [3248967d1a] user: fifr branch: trunk, size: 29965 | |
| 16:54 | Add problem update callback. file: [41149cfa3a] check-in: [814bd7230a] user: fifr branch: trunk, size: 28626 | |
| 12:58 | solver: Update multipliers from master in `solve_model`. This is required so that `aggregated_primals` returns the correct multipliers even if no futher iteration is executed. In particular, if only one iteration is executed. file: [f39de7c967] check-in: [106f4bb24e] user: fifr branch: trunk, size: 26779 | |
|
2016-10-01
| ||
| 20:44 | Make `aggregate_primals` take ownership of minorants. This makes sure the problem can track exactly when minorants are not used anymore. file: [f98417cdb4] check-in: [1318918860] user: fifr branch: trunk, size: 26719 | |
| 20:03 | Implement computation of aggregated primals. file: [08a7218298] check-in: [39420cd8e3] user: fifr branch: trunk, size: 26814 | |
| 07:49 | Aggregate primal information. For this, master problems must return the coefficients and the problem trait needs to implement an `aggregate` method. file: [ee0e357dc6] check-in: [7b213efa22] user: fifr branch: trunk, size: 25959 | |
|
2016-09-30
| ||
| 19:42 | FirstOrderProblem returns primal information along minorants. file: [9a81b4967c] check-in: [9a0f6816f5] user: fifr branch: trunk, size: 25184 | |
|
2016-09-29
| ||
| 06:41 | solver: Align info output of "_endit". file: [0b273ecacf] check-in: [a360cd0f65] user: fifr branch: trunk, size: 25174 | |
| 06:38 | solver: Fix computation of `new_cutval`. file: [a9806367ff] check-in: [12aebdedf7] user: fifr branch: trunk, size: 25173 | |
| 06:37 | solver: Initialize subgradient with first master evaluation. file: [d0928a45a4] check-in: [9d2ba83f87] user: fifr branch: trunk, size: 25142 | |
| 06:37 | solver: Handle error when setting the number of suproblems in the master. file: [4b4877061c] check-in: [a475dc4e2d] user: fifr branch: trunk, size: 24557 | |
|
2016-09-28
| ||
| 21:15 | solver: Fix fractions in time output. file: [57006d0aa4] check-in: [77d15f47e4] user: fifr branch: trunk, size: 24551 | |
| 21:05 | solver: Compress minorants with smallest multipliers. file: [23abb366ec] check-in: [a86c952bc8] user: fifr branch: trunk, size: 24550 | |
| 16:31 | solver: Handle minorants correctly. file: [28a03735c5] check-in: [e671068275] user: fifr branch: trunk, size: 24108 | |
| 15:52 | Add `MinorantIndex` as reference to minorants to master problem. file: [6402964398] check-in: [29f93aefac] user: fifr branch: trunk, size: 23723 | |
| 15:15 | solver: Use `CplexMaster` as default for large master problems. file: [592e0262e8] check-in: [cc9ce5ef15] user: fifr branch: trunk, size: 23702 | |
| 15:02 | Add `MasterProblem::set_num_subproblems`. file: [2c5245183b] check-in: [a89b3502b5] user: fifr branch: trunk, size: 23431 | |
| 11:28 | solver: Allow larger bundle sizes when compressing bundles. file: [647352101b] check-in: [1f65b89c9e] user: fifr branch: trunk, size: 23388 | |
| 11:27 | solver: Add validity check for parameters. file: [91e00af442] check-in: [4cf9ac6c65] user: fifr branch: trunk, size: 23283 | |
| 11:26 | solver: Make `params` public. file: [76c5cf11bf] check-in: [5fd72003f9] user: fifr branch: trunk, size: 21646 | |
| 08:42 | Document some modules file: [0918b9a32f] check-in: [07f16d6a13] user: fifr branch: trunk, size: 21642 | |
| 06:10 | solver: Reformat info output. file: [ea44ae6dda] check-in: [9768a88763] user: fifr branch: trunk, size: 21606 | |
|
2016-09-27
| ||
| 10:46 | Added: Initial record file: [1fd7985cd3] check-in: [4cd78f8116] user: fifr branch: trunk, size: 21603 | |