RsBundle  Diff

Differences From Artifact [47a28edb62]:

  • File src/solver/sync.rs — part of check-in [61d6399085] at 2022-09-01 09:00:20 on branch cvx-constraint — solver: initialize y variables in convexity constraints correctly (user: fifr size: 34387)

To Artifact [aece8106b8]:

  • File src/solver/sync.rs — part of check-in [b4f788b3fe] at 2022-09-01 15:36:39 on branch cvx-constraint — solver: initialize center of master problems correctly. They do not need to be zero anymore because of the convexity constraints. (user: fifr size: 34482)

534
535
536
537
538
539
540


541
542
543
544
545
546
547
        // Initialize the master problem.
        let mut master = self.master.build().map_err(Error::BuildMaster)?;
        master.set_num_subproblems(m).map_err(Error::BuildMaster)?;
        master
            .set_vars(n, lower_bounds, upper_bounds)
            .map_err(Error::BuildMaster)?;
        master.set_convexity_sets(constraint_sets.into_values());



        self.master_proc = Some(MasterProcess::start(master, tx, &mut self.threadpool));

        debug!("Initial problem evaluation");
        // We need an initial evaluation of all oracles for the first center.
        let y = Arc::new(self.data.cur_y.clone());
        for i in 0..m {







>
>







534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
        // Initialize the master problem.
        let mut master = self.master.build().map_err(Error::BuildMaster)?;
        master.set_num_subproblems(m).map_err(Error::BuildMaster)?;
        master
            .set_vars(n, lower_bounds, upper_bounds)
            .map_err(Error::BuildMaster)?;
        master.set_convexity_sets(constraint_sets.into_values());
        // we must set the center correctly
        master.move_center(1.0, &self.data.cur_y);

        self.master_proc = Some(MasterProcess::start(master, tx, &mut self.threadpool));

        debug!("Initial problem evaluation");
        // We need an initial evaluation of all oracles for the first center.
        let y = Arc::new(self.data.cur_y.clone());
        for i in 0..m {