Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Overview
| Comment: | solver: Allow larger bundle sizes when compressing bundles. |
|---|---|
| Downloads: | Tarball | ZIP archive |
| Timelines: | family | ancestors | descendants | both | trunk |
| Files: | files | file ages | folders |
| SHA1: |
1f65b89c9eb4f8be7de7d7407fea2ed3 |
| User & Date: | fifr 2016-09-28 11:28:18.696 |
Context
|
2016-09-28
| ||
| 12:23 | minorant: Add `Minorant::new`. check-in: 19d05ec52f user: fifr tags: trunk | |
| 11:28 | solver: Allow larger bundle sizes when compressing bundles. check-in: 1f65b89c9e user: fifr tags: trunk | |
| 11:27 | solver: Add validity check for parameters. check-in: 4cf9ac6c65 user: fifr tags: trunk | |
Changes
Changes to src/bin/test_mcf.rs.
| ︙ | ︙ | |||
30 31 32 33 34 35 36 37 38 39 40 41 42 43 |
let mut args = env::args();
let program = args.next().unwrap();
if let Some(filename) = args.next() {
info!("Reading instance: {}", filename);
let mmcf = mcf::MMCFProblem::read_mnetgen(&filename).unwrap();
let mut solver = Solver::new_params(mmcf, SolverParams {
min_weight: 1e-3,
max_weight: 100.0,
..Default::default()
}).unwrap();
solver.terminator = Box::new(StandardTerminator{
termination_precision: 1e-6
});
| > | 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 |
let mut args = env::args();
let program = args.next().unwrap();
if let Some(filename) = args.next() {
info!("Reading instance: {}", filename);
let mmcf = mcf::MMCFProblem::read_mnetgen(&filename).unwrap();
let mut solver = Solver::new_params(mmcf, SolverParams {
max_bundle_size: 2,
min_weight: 1e-3,
max_weight: 100.0,
..Default::default()
}).unwrap();
solver.terminator = Box::new(StandardTerminator{
termination_precision: 1e-6
});
|
| ︙ | ︙ |
Changes to src/solver.rs.
| ︙ | ︙ | |||
569 570 571 572 573 574 575 |
debug!(" expected={}", self.expected_progress);
Ok(())
}
/// Reduce size of bundle.
fn compress_bundle(&mut self) {
| | | > | > | 569 570 571 572 573 574 575 576 577 578 579 580 581 582 583 584 585 586 587 |
debug!(" expected={}", self.expected_progress);
Ok(())
}
/// Reduce size of bundle.
fn compress_bundle(&mut self) {
for i in 0..self.problem.num_subproblems() {
let n = self.master.num_minorants(i);
if n >= self.params.max_bundle_size {
self.master.aggregate(0, &(self.params.max_bundle_size-2..n).collect::<Vec<_>>());
}
}
}
/// Perform a descent step.
fn descent_step(&mut self) {
let new_weight = self.weighter.weight(¤t_state!(self, Step::Descent), &self.params);
self.master.set_weight(new_weight);
|
| ︙ | ︙ |