Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
History of file src/mcf/problem.rs at check-in fa31409d9b31078d
|
2024-07-16
| ||
| 13:30 | mcf: fix handling empty primals. Before the first iteration the `create_update` callback is called once with empty primals (because there is none, yet). There are no (separated) variables, either. We must not separate anything in this case (and must not call `evaluate_constraint` because it will fail). file: [1eca0863f7] check-in: [addf0513e0] user: fifr branch: trunk, size: 21637 | |
|
2024-01-02
| ||
| 17:03 | mcf::problem: remove unnecessary `&` file: [af219fecb4] check-in: [9b083078db] user: fifr branch: trunk, size: 21361 | |
|
2023-08-12
| ||
| 17:44 | Merge trunk file: [60016af5ae] check-in: [4199625023] user: fifr branch: mpi, size: 21365 | |
| 17:43 | problem::FirstOrderProblem: use implicit impl traits file: [1ccd346fa5] check-in: [d979db1a2e] user: fifr branch: trunk, size: 20962 | |
|
2023-07-08
| ||
| 17:55 | mcf::problem: do not crash on send errors. Sending result data could fail if the solver has already terminated. This is possible in an asynchronous setting. We show a warning in this case. file: [e6ada6751c] check-in: [76c491ed4d] user: fifr branch: mpi, size: 21398 | |
| 11:02 | examples/mmcf: first send minorant, then objective. This is currently (for testing) necessary because otherwise the asynchronous solver won't do a step. file: [52cec0fe93] check-in: [0778fd3534] user: fifr branch: mpi, size: 20995 | |
|
2023-05-08
| ||
| 15:30 | mcf::problem: remove unnecessary parentheses file: [543e93f831] check-in: [26a59bba75] user: fifr branch: mpi-cvx, size: 20995 | |
|
2023-04-06
| ||
| 15:00 | mpi: rename `create_update` to `compute_update` file: [46b3074e75] check-in: [a11ffd8f5a] user: fifr branch: mpi, size: 20997 | |
|
2023-04-05
| ||
| 21:24 | Fix many clippy/linter warnings file: [e79992a54d] check-in: [d02e699a01] user: fifr branch: mpi, size: 20996 | |
| 19:58 | mcf::problem: remove some unnecessary qualifications file: [d8098b4e22] check-in: [63a3ee04b4] user: fifr branch: mpi, size: 21233 | |
| 19:56 | mcf::problem: fix deprecated use if `INFINITY` file: [d26253230b] check-in: [3cdbaa73cf] user: fifr branch: mpi, size: 21271 | |
| 19:48 | mcf::problem: store complete `subdatas` vec in an `Arc`. The `subdatas` vec is read-only anyway. The new implementation prevents some unnecessary copies. file: [1db912172c] check-in: [c2cde07f32] user: fifr branch: mpi, size: 21290 | |
| 19:46 | mpi: `create_update` takes a callback instead of a channel. file: [6fa6afde94] check-in: [48e285c382] user: fifr branch: mpi, size: 21226 | |
| 09:46 | Add `DistributedFirstOrderProblem` trait file: [2eab402155] check-in: [78fe5f1328] user: fifr branch: mpi, size: 22936 | |
|
2023-01-16
| ||
| 14:31 | mmcf: add configuration for artificial delays file: [638e947dea] check-in: [abf6b6de39] user: fifr branch: trunk, size: 19812 | |
|
2022-06-08
| ||
| 20:19 | mcf::problem: fix selecting the user choosen mcf solver file: [01befe0aa0] check-in: [7c74440116] user: fifr branch: trunk, size: 18770 | |
|
2022-03-28
| ||
| 10:21 | Merge release file: [ae593954f6] check-in: [4c8b43ef8f] user: fifr branch: trunk, size: 18723 | |
| 10:19 | mcf::problem: update copyright year file: [580e529aa4] check-in: [fe8bea1bbd] user: fifr branch: release, size: 10490 | |
| 10:19 | mcf::problem: allow dead code in `ArcInfo` file: [f60ab0f70e] check-in: [9ba0a5332b] user: fifr branch: release, size: 10490 | |
|
2021-07-05
| ||
| 08:37 | mcf::problem: remove unused import `Read` file: [d22b9cd75a] check-in: [0d03d60d89] user: fifr branch: trunk, size: 18703 | |
|
2021-07-01
| ||
| 07:27 | mmcf: remove now unsupported `multimodel` option file: [d1725d5d42] check-in: [fa31409d9b] user: fifr branch: trunk, size: 18709 | |
| 07:18 | mmcf: add some doc comments file: [1b69b2b864] check-in: [78b057dcc9] user: fifr branch: trunk, size: 19040 | |
|
2021-06-30
| ||
| 20:22 | mmcf: simplify reading netgen instances file: [a8ae14dfaa] check-in: [ff08b91f61] user: fifr branch: trunk, size: 17710 | |
| 12:22 | mcf/problem: remove unneeded `&` file: [4c23583ac2] check-in: [e3b961e889] user: fifr branch: trunk, size: 18034 | |
| 09:43 | mmcf: allow to select network flow solver when reading mnetgen instances file: [4f0d0c5b61] check-in: [736a0d7893] user: fifr branch: mcf-trait, size: 18035 | |
| 09:42 | MCF solvers now implement the trait `mcf::Solver` file: [f053b466d4] check-in: [76363b77bc] user: fifr branch: mcf-trait, size: 17800 | |
|
2021-06-29
| ||
| 07:13 | mcf::problem: use format version of `assert!` file: [eaeccc6ada] check-in: [3f333f2454] user: fifr branch: release, size: 10470 | |
|
2021-05-09
| ||
| 19:33 | Address some clippy warnings file: [c69a786370] check-in: [ad538a4f5b] user: fifr branch: trunk, size: 17772 | |
|
2021-05-07
| ||
| 20:25 | Add rs-graph-based mmcf solver file: [8812d1b271] check-in: [39f01e7103] user: fifr branch: trunk, size: 17900 | |
|
2020-07-22
| ||
| 17:53 | mcf: split mutable and non-mutable data of subproblems file: [10420dafee] check-in: [90cbecbf84] user: fifr branch: async, size: 17890 | |
| 17:01 | mcf: split mutable and non-mutable data of subproblems file: [3be3d17495] check-in: [5a539bbac0] user: fifr branch: garbage, size: 17895 | |
| 16:32 | mcf: reduce exclusive areas using some locks file: [cbb8ee8cd8] check-in: [14d0e18966] user: fifr branch: async, size: 17639 | |
|
2020-07-21
| ||
| 10:52 | solver: remove `nxt_submods` file: [9063b3390b] check-in: [5e896f316a] user: fifr branch: async, size: 17464 | |
|
2020-07-20
| ||
| 19:32 | Merge trunk file: [363573ea45] check-in: [5ea4ec77c8] user: fifr branch: async, size: 17464 | |
| 15:02 | Simplify `Minorant` API and remove `Extendable` file: [802a398090] check-in: [1f0489f726] user: fifr branch: minorant-trait, size: 18637 | |
| 10:29 | Master problem convert minorants to some internal representation. file: [e634f8a692] check-in: [7189c81425] user: fifr branch: minorant-trait, size: 18659 | |
| 08:48 | Add `Extendable` trait file: [9632706c0d] check-in: [42021dd676] user: fifr branch: minorant-trait, size: 18643 | |
| 08:46 | mcf: fix index in separation file: [dd79ec2e41] check-in: [d4b9cff708] user: fifr branch: minorant-trait, size: 18635 | |
|
2020-07-19
| ||
| 20:47 | Make `Minorant` a trait file: [5d8c60f7be] check-in: [095240b3e2] user: fifr branch: minorant-trait, size: 18628 | |
|
2020-07-18
| ||
| 18:49 | Merge trunk file: [4acdb78c37] check-in: [e12bd4bd5d] user: fifr branch: async, size: 17546 | |
| 12:24 | Add `primal` field to `Minorant` file: [76d4d166a8] check-in: [be42fa28cd] user: fifr branch: minorant-primal, size: 18719 | |
|
2020-06-15
| ||
| 09:04 | mcf.problem: simplify errors using `thiserror` file: [bc90c661ec] check-in: [522e74fdf6] user: fifr branch: error, size: 17605 | |
|
2020-06-11
| ||
| 18:35 | Move `SubModel` to submodule `guessmodels::GuessModel` file: [f39ce7d880] check-in: [b7b6413301] user: fifr branch: garbage, size: 19232 | |
|
2020-02-26
| ||
| 15:19 | Merge trunk file: [70e7510a9d] check-in: [5a51954703] user: fifr branch: async, size: 18796 | |
| 15:04 | Remove dependency on `itertools` file: [c4a0a1f3ac] check-in: [053ea63481] user: fifr branch: trunk, size: 18778 | |
|
2019-12-22
| ||
| 16:44 | Mark all `Error` enums as non-exhaustive file: [398b1f8127] check-in: [3f7a044a98] user: fifr branch: async, size: 18748 | |
|
2019-12-21
| ||
| 21:28 | Add `dyn` to trait object types file: [f6d580e450] check-in: [45d9ecf62b] user: fifr branch: modifyprimals, size: 10448 | |
| 21:02 | Add `dyn` to trait object types file: [c6c5fd1786] check-in: [147bcf602c] user: fifr branch: release, size: 10454 | |
|
2019-11-22
| ||
| 21:24 | Fix some clippy warnings file: [2c051afd23] check-in: [7e04a844ca] user: fifr branch: trunk, size: 18730 | |
| 13:17 | Implement `UpdateSender` as a trait file: [314948473b] check-in: [af51c49bb3] user: fifr branch: result-sender, size: 18765 | |
| 09:24 | problem: make `ResultSender` a trait with implementation `ChannelSender` file: [238c160bb9] check-in: [43abfc4c67] user: fifr branch: result-sender, size: 18898 | |
| 09:01 | problem: hide result channel in opaque type `ResultSender` file: [ccc5e2a128] check-in: [4d0fdfb346] user: fifr branch: result-sender, size: 18930 | |
|
2019-08-23
| ||
| 10:47 | mcf: remove `num_traits` file: [6992c85674] check-in: [9b15c8f8e3] user: fifr branch: no-num-traits, size: 19156 | |
|
2019-08-09
| ||
| 07:39 | mmcf: check for valid nodes and commodities in supply file. file: [7573395e95] check-in: [2b78ee841c] user: fifr branch: trunk, size: 19201 | |
| 06:56 | mmcf: raise error on invalid capacity constraint index file: [d523a5feb6] check-in: [8bc7072907] user: fifr branch: mnetgen-read-error, size: 18985 | |
| 06:52 | mmcf: raise error on extra fields at the end of lines file: [25616d165a] check-in: [c7b636d0d4] user: fifr branch: mnetgen-read-error, size: 18664 | |
| 06:50 | mmcf: fix error raised on invalid commodity file: [2c8d15e0c9] check-in: [7fc39a4811] user: fifr branch: mnetgen-read-error, size: 18376 | |
| 06:50 | mmcf: handle invalid node/arcs/com as error file: [18091bd83a] check-in: [8a398017bf] user: fifr branch: mnetgen-read-error, size: 18377 | |
| 06:38 | mmcf: replace assert with regular error file: [b4b9028f6f] check-in: [3bb0aadaec] user: fifr branch: mnetgen-read-error, size: 17182 | |
| 06:35 | mmcf: raise errors on missing fields when reading files file: [8faa4da25f] check-in: [da23337f70] user: fifr branch: mnetgen-read-error, size: 17105 | |
| 06:23 | mmcf: return error instead of panic on parse error file: [ba79a7e5a1] check-in: [1b93d52072] user: fifr branch: mnetgen-read-error, size: 16309 | |
|
2019-08-07
| ||
| 14:27 | mmcf: separate new constraints asynchronously file: [b2b6405f37] check-in: [df68dc2620] user: fifr branch: async-separation, size: 16293 | |
| 13:59 | problem: change bounds of `update` so it can be used asynchronously. We add several bounds on `index: I` and `state: U` parameters so the implementation of `update` could be done in a different thread. file: [6506acddf2] check-in: [663684e31c] user: fifr branch: async-separation, size: 15691 | |
| 12:08 | asyn: handle problem updates asynchronously file: [707afe389d] check-in: [dbb2741979] user: fifr branch: async-separation, size: 15692 | |
|
2019-07-30
| ||
| 11:28 | Simplify result types of `Display` impls file: [a0bf142dfd] check-in: [d1c6725705] user: fifr branch: trunk, size: 15447 | |
| 07:40 | Move `parallel` to `solver::sync` file: [6172754b54] check-in: [62c311d2a4] user: fifr branch: restructure, size: 15466 | |
| 07:25 | Remove old sequential solver file: [75d49b9540] check-in: [b194454b53] user: fifr branch: restructure, size: 15467 | |
|
2019-07-26
| ||
| 08:08 | Implement `Aggregatable` for vectors of aggregatables file: [4f7e8050b1] check-in: [7041eeba52] user: fifr branch: async, size: 19736 | |
| 08:04 | Improve interface of `Aggregatable`. The new interface requires two elementary operations which can be used to define `combine`. The latter method gets a default implementation, which should usually be as efficient as before. file: [9605187bf5] check-in: [1b2accaddf] user: fifr branch: async, size: 20340 | |
|
2019-07-25
| ||
| 15:02 | mmcf: fix some clippy warnings file: [438a7ad4d0] check-in: [8cb260149c] user: fifr branch: problem-update, size: 20350 | |
| 14:50 | mmcf: add `set_separate_constraints` method file: [16b1460343] check-in: [4e64e6a06c] user: fifr branch: mmcf-separation, size: 20318 | |
| 14:24 | mmcf: return early if no inactive constraints remain file: [0809fb85f1] check-in: [5401c89abf] user: fifr branch: mmcf-separation, size: 19865 | |
| 14:24 | mmcf: remove debug output file: [0aa151db8b] check-in: [98ffc4729c] user: fifr branch: mmcf-separation, size: 19686 | |
| 14:21 | mmcf: separate all capacity constraints file: [f1904e0966] check-in: [df9a12da5e] user: fifr branch: mmcf-separation, size: 19924 | |
| 07:42 | mmcf: maintain list of active constraints file: [52a5e60dff] check-in: [896b1829cc] user: fifr branch: mmcf-separation, size: 14426 | |
| 07:35 | mmcf: specify order of active constraints in subproblem evaluation file: [4d0d8e3712] check-in: [764878b044] user: fifr branch: mmcf-separation, size: 14135 | |
|
2019-07-24
| ||
| 08:00 | Relax requirements of `Aggregatable::combine` to `Borrow`. Instead of an iterator over references the new implementation of `combine` requires the elements only to implement `Borrow`. This way it can be called with references as well as with values. file: [28ba542a76] check-in: [f459ca047d] user: fifr branch: parallel-primal, size: 13768 | |
|
2019-07-23
| ||
| 14:30 | mcf::problem: make MMCFProblem implement `parallel::FirstOrderProblem`. This implementation supports parallel evaluation of all subproblems. file: [b8a1a0b18b] check-in: [5c566d7149] user: fifr branch: mmcf-parallel, size: 13738 | |
| 13:16 | mmcf: put all subproblems in an `RwLock` file: [cd4a08d9a5] check-in: [fd63d80f7d] user: fifr branch: mmcf-parallel, size: 11732 | |
| 13:06 | mmcf: add independent evaluation of each subproblem file: [22dbb3e6fb] check-in: [9f344e6086] user: fifr branch: mmcf-parallel, size: 11705 | |
| 12:12 | mmcf: move rhs data to `Subproblem` file: [6f4813065b] check-in: [72531a536b] user: fifr branch: mmcf-parallel, size: 12501 | |
| 11:57 | mmcf: move lhs data to `Subproblem` file: [42c0648a42] check-in: [7138078a5c] user: fifr branch: mmcf-parallel, size: 12337 | |
| 11:21 | mmcf: split data in `Subproblem` structure file: [5e30ccea47] check-in: [4d96ced3a6] user: fifr branch: mmcf-parallel, size: 12280 | |
|
2019-07-17
| ||
| 11:23 | Make all errors Send + Sync file: [af9c7cb9db] check-in: [1e94fdd305] user: fifr branch: async, size: 12044 | |
|
2019-07-15
| ||
| 19:53 | mcf.problem: use `iter` instead of `into_iter` file: [4206da236f] check-in: [f1406e69ec] user: fifr branch: aggregatable, size: 10841 | |
| 10:58 | FirstOrderProblem: require `Primal` to be aggregatable. This allows to remove the `aggregate_primals` methods. file: [e48ceabc0d] check-in: [a98dc9db36] user: fifr branch: aggregatable, size: 10846 | |
|
2018-12-12
| ||
| 15:38 | Replace `extern crate` with `use` file: [1d218ba7f1] check-in: [32372fda04] user: fifr branch: trunk, size: 10444 | |
| 15:30 | Update to 2018 edition file: [5eb51307c2] check-in: [80cbe311ac] user: fifr branch: trunk, size: 10427 | |
|
2018-08-18
| ||
| 11:15 | Reformat file: [366d1deea7] check-in: [4dad0cad83] user: fifr branch: error-handling, size: 10542 | |
|
2018-06-26
| ||
| 13:46 | Remove explicit lifetime from `FirstOrderOracle` file: [e1b808fafe] check-in: [0b6fbe2b30] user: fifr branch: error-handling, size: 10555 | |
| 13:40 | Remove dependency on `failure` crate file: [13aab104c2] check-in: [ade34c179c] user: fifr branch: error-handling, size: 10613 | |
|
2018-06-06
| ||
| 20:17 | Fix several clippy warnings file: [2966fd1ffc] check-in: [1adcbb8b61] user: fifr branch: trunk, size: 10313 | |
|
2017-12-13
| ||
| 22:48 | Remove empty lines file: [5393f7f58c] check-in: [25714ffdea] user: fifr branch: trunk, size: 10855 | |
|
2017-11-21
| ||
| 10:06 | Reformat sources using `rustfmt` file: [cb063e3a78] check-in: [998cbd7227] user: fifr branch: trunk, size: 10988 | |
|
2017-11-18
| ||
| 21:42 | Use `failure` for error handling. file: [98d403e65f] check-in: [df7544e94f] user: fifr branch: trunk, size: 10209 | |
|
2017-11-01
| ||
| 16:10 | Add some missing type annotation when calling `sum` file: [025037c2ac] check-in: [02dee82532] user: fifr branch: trunk, size: 10921 | |
|
2017-02-22
| ||
| 16:32 | Remove `DVector` from external API. The use of `[Real]` or `Vec<Real>` is sufficient in most cases. file: [ead0953468] check-in: [d7ed56f9b3] user: fifr branch: trunk, size: 10905 | |
|
2017-01-20
| ||
| 20:34 | problem: refactor some loops using iterators. file: [245d4179ba] check-in: [358bb8efe2] user: fifr branch: trunk, size: 10925 | |
| 09:19 | Refactor several lint warnings. file: [5334a94900] check-in: [f0ef5ba392] user: fifr branch: trunk, size: 11002 | |
|
2016-10-19
| ||
| 07:37 | Run `rustfmt` on all sources. file: [3b0cb066ee] check-in: [2bc4277460] user: fifr branch: trunk, size: 11020 | |
|
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: [57706d9f48] check-in: [5221a3331a] user: fifr branch: trunk, size: 10426 | |
|
2016-10-02
| ||
| 07:02 | mcf: Verify arc numbers when reading files. file: [27fc4afb03] check-in: [d98bdda26e] user: fifr branch: trunk, size: 10420 | |
|
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: [2da0f0ecbc] check-in: [1318918860] user: fifr branch: trunk, size: 10273 | |
| 20:03 | Implement computation of aggregated primals. file: [6528434b02] check-in: [39420cd8e3] user: fifr branch: trunk, size: 10038 | |
| 18:44 | mmcf: Implement `aggregate_primals` file: [b43146dd8f] check-in: [44f8c93bc4] user: fifr branch: trunk, size: 9521 | |
| 07:49 | Aggregate primal information. For this, master problems must return the coefficients and the problem trait needs to implement an `aggregate` method. file: [08aeb41b7e] check-in: [7b213efa22] user: fifr branch: trunk, size: 9040 | |
|
2016-09-30
| ||
| 19:42 | FirstOrderProblem returns primal information along minorants. file: [3df13aeab3] check-in: [9a0f6816f5] user: fifr branch: trunk, size: 9019 | |
|
2016-09-28
| ||
| 16:30 | mcf: Support disaggregated subproblems. file: [7f584dec43] check-in: [4a174be0f5] user: fifr branch: trunk, size: 8980 | |
| 06:15 | Added: Add MMCF problem and solver. file: [bed26186fb] check-in: [3388440148] user: fifr branch: trunk, size: 8281 | |