RsBundle  Diff

Differences From Artifact [d9391ae157]:

  • File src/master/master.rs — part of check-in [13bd6e4507] at 2016-09-29 15:43:38 on branch trunk — master: Improve some docs. (user: fifr size: 3740)

To Artifact [2dff0ccb74]:

  • File src/master/master.rs — part of check-in [e1c52daa3a] at 2016-09-29 15:44:53 on branch trunk — master: Rearrange methods of `MasterProblem` (user: fifr size: 3740)

44
45
46
47
48
49
50












51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70






71
72
73
74
75
76
77







+
+
+
+
+
+
+
+
+
+
+
+








-
-
-
-
-
-







    fn set_num_subproblems(&mut self, n : usize) -> Result<()>;

    /// Set the lower and upper bounds of the variables.
    fn set_vars(&mut self, nvars: usize, lb : Option<DVector>, ub: Option<DVector>);

    /// Return the current number of minorants of subproblem `fidx`.
    fn num_minorants(&self, fidx : usize) -> usize;

    /// Return the current weight of the quadratic term.
    fn weight(&self) -> Real;

    /// Set the weight of the quadratic term, must be > 0.
    fn set_weight(&mut self, weight: Real);

    /// Set the maximal number of inner iterations.
    fn set_max_updates(&mut self, max_updates: usize);

    /// Return the current number of inner iterations.
    fn cnt_updates(&self) -> usize;

    /// Add a new minorant to the model.
    ///
    /// The function returns a unique (among all minorants of all
    /// subproblems) index of the minorant. This index must remain
    /// valid until the minorant is aggregated.
    fn add_minorant(&mut self, fidx: usize, minorant: Minorant) -> Result<Self::MinorantIndex>;

    /// Return the current weight of the quadratic term.
    fn weight(&self) -> Real;

    /// Set the weight of the quadratic term, must be > 0.
    fn set_weight(&mut self, weight: Real);

    /// Solve the master problem.
    fn solve(&mut self, cur_value: Real) -> Result<()>;

    /// Aggregate the given minorants according to the current solution.
    ///
    /// The (indices of the) minorants to be aggregated get invalid
    /// after this operation. The index of the new aggregated minorant
92
93
94
95
96
97
98
99

100
101
102
103
104
105
98
99
100
101
102
103
104

105













-
+
-
-
-
-
-
-
    fn get_dualoptnorm2(&self) -> Real;

    /// Return the multiplier associated with a minorant.
    fn multiplier(&self, min : Self::MinorantIndex) -> Real;

    /// Move the center of the master problem to $\alpha \cdot d$.
    fn move_center(&mut self, alpha: Real, d: &DVector);

}
    /// Set the maximal number of inner iterations.
    fn set_max_updates(&mut self, max_updates: usize);

    /// Return the current number of inner iterations.
    fn cnt_updates(&self) -> usize;
}