Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Overview
| Comment: | Solver: simplify `aggregated_primals` |
|---|---|
| Downloads: | Tarball | ZIP archive |
| Timelines: | family | ancestors | descendants | both | aggregatable |
| Files: | files | file ages | folders |
| SHA1: |
3c9ee3758505eea4851060667a97ad74 |
| User & Date: | fifr 2019-07-15 11:18:49.851 |
Context
|
2019-07-15
| ||
| 12:48 | Merge trunk check-in: ecb9507ef3 user: fifr tags: aggregatable | |
| 11:18 | Solver: simplify `aggregated_primals` check-in: 3c9ee37585 user: fifr tags: aggregatable | |
| 10:59 | Update version to 0.6.0-dev check-in: b77f03d616 user: fifr tags: aggregatable | |
Changes
Changes to examples/mmcf.rs.
1 | /* | | | 1 2 3 4 5 6 7 8 9 | /* * Copyright (c) 2016, 2017, 2018, 2019 Frank Fischer <frank-fischer@shadow-soft.de> * * This program is free software: you can redistribute it and/or * modify it under the terms of the GNU General Public License as * published by the Free Software Foundation, either version 3 of the * License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, but |
| ︙ | ︙ | |||
48 49 50 51 52 53 54 |
solver.terminator = Box::new(StandardTerminator {
termination_precision: 1e-6,
});
solver.solve().unwrap();
let costs: f64 = (0..solver.problem().num_subproblems())
.map(|i| {
| | < | 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 |
solver.terminator = Box::new(StandardTerminator {
termination_precision: 1e-6,
});
solver.solve().unwrap();
let costs: f64 = (0..solver.problem().num_subproblems())
.map(|i| {
let aggr_primals = solver.aggregated_primals(i);
solver.problem().get_primal_costs(i, &aggr_primals)
})
.sum();
info!("Primal costs: {}", costs);
} else {
panic!("Usage: {} FILENAME", program);
}
}
|
Changes to src/solver.rs.
|
| | | 1 2 3 4 5 6 7 8 | // Copyright (c) 2016, 2017, 2018, 2019 Frank Fischer <frank-fischer@shadow-soft.de> // // This program is free software: you can redistribute it and/or // modify it under the terms of the GNU General Public License as // published by the Free Software Foundation, either version 3 of the // License, or (at your option) any later version. // // This program is distributed in the hope that it will be useful, but |
| ︙ | ︙ | |||
719 720 721 722 723 724 725 |
/// Return the current aggregated primal information for a subproblem.
///
/// This function returns all currently used minorants $x_i$ along
/// with their coefficients $\alpha_i$. The aggregated primal can
/// be computed by combining the minorants $\bar{x} =
/// \sum_{i=1}\^m \alpha_i x_i$.
| | > | | | < > | 719 720 721 722 723 724 725 726 727 728 729 730 731 732 733 734 735 736 737 738 |
/// Return the current aggregated primal information for a subproblem.
///
/// This function returns all currently used minorants $x_i$ along
/// with their coefficients $\alpha_i$. The aggregated primal can
/// be computed by combining the minorants $\bar{x} =
/// \sum_{i=1}\^m \alpha_i x_i$.
pub fn aggregated_primals(&self, subproblem: usize) -> P::Primal {
Aggregatable::combine(
self.minorants[subproblem]
.iter()
.map(|m| (m.multiplier, m.primal.as_ref().unwrap())),
)
}
fn show_info(&self, step: Step) {
let time = self.start_time.elapsed();
info!(
"{} {:0>2}:{:0>2}:{:0>2}.{:0>2} {:4} {:4} {:4}{:1} {:9.4} {:9.4} \
{:12.6e}({:12.6e}) {:12.6e}",
|
| ︙ | ︙ |