コード例 #1
0
ファイル: test_prob.py プロジェクト: m-j-mcdonald/sco
    def test_find_closest_feasible_point_leq_cnts(self):
        cnt_vals = [np.ones((2,1)), np.array([[-1.0],[1.0]]), \
            np.array([[-1.0],[-1.0]])]
        true_var_vals = [np.zeros((2,1)), np.array([[-1.0],[0.0]]), \
            -1*np.ones((2,1))]

        for true_var_val, cnt_val in zip(true_var_vals, cnt_vals):
            model = grb.Model()
            prob = Prob(model)
            grb_var1 = model.addVar(lb=-1 * GRB.INFINITY,
                                    ub=GRB.INFINITY,
                                    name='x1')
            grb_var2 = model.addVar(lb=-1 * GRB.INFINITY,
                                    ub=GRB.INFINITY,
                                    name='x2')
            grb_vars = np.array([[grb_var1], [grb_var2]])
            var = Variable(grb_vars, np.zeros((2, 1)))

            model.update()

            aff_expr = AffExpr(np.eye(2), np.zeros((2, 1)))
            leq_expr = LEqExpr(aff_expr, cnt_val)
            bexpr = BoundExpr(leq_expr, var)
            prob.add_cnt_expr(bexpr)
            prob.find_closest_feasible_point()
            self.assertTrue(np.allclose(var.get_value(), true_var_val))
コード例 #2
0
ファイル: test_prob.py プロジェクト: c-l/sco
    def test_callback(self):
        x = {}
        def test():
            x[1] = 2
        callback = test
        model = grb.Model()
        prob = Prob(model, callback)

        prob.find_closest_feasible_point()
        self.assertTrue(1 in x)
        x[1] = 3
        prob.optimize()
        self.assertTrue(1 in x)
コード例 #3
0
ファイル: test_prob.py プロジェクト: m-j-mcdonald/sco
    def test_callback(self):
        x = {}

        def test():
            x[1] = 2

        callback = test
        model = grb.Model()
        prob = Prob(model, callback)

        prob.find_closest_feasible_point()
        self.assertTrue(1 in x)
        x[1] = 3
        prob.optimize()
        self.assertTrue(1 in x)
コード例 #4
0
ファイル: test_prob.py プロジェクト: c-l/sco
    def test_find_closest_feasible_point_eq_cnts(self):
        model = grb.Model()
        prob = Prob(model)
        grb_var1 = model.addVar(lb=-1 * GRB.INFINITY, ub=GRB.INFINITY, name='x1')
        grb_var2 = model.addVar(lb=-1 * GRB.INFINITY, ub=GRB.INFINITY, name='x2')
        grb_vars = np.array([[grb_var1],[grb_var2]])
        var = Variable(grb_vars, np.zeros((2,1)))

        model.update()

        val = np.array([[5.0],[-10.0]])
        aff_expr = AffExpr(np.eye(2), np.zeros((2,1)))
        eq_expr = EqExpr(aff_expr, val)
        bexpr = BoundExpr(eq_expr, var)
        prob.add_cnt_expr(bexpr)
        prob.find_closest_feasible_point()
        self.assertTrue(np.allclose(var.get_value(), val))
コード例 #5
0
ファイル: test_prob.py プロジェクト: m-j-mcdonald/sco
    def test_find_closest_feasible_point_eq_cnts(self):
        model = grb.Model()
        prob = Prob(model)
        grb_var1 = model.addVar(lb=-1 * GRB.INFINITY,
                                ub=GRB.INFINITY,
                                name='x1')
        grb_var2 = model.addVar(lb=-1 * GRB.INFINITY,
                                ub=GRB.INFINITY,
                                name='x2')
        grb_vars = np.array([[grb_var1], [grb_var2]])
        var = Variable(grb_vars, np.zeros((2, 1)))

        model.update()

        val = np.array([[5.0], [-10.0]])
        aff_expr = AffExpr(np.eye(2), np.zeros((2, 1)))
        eq_expr = EqExpr(aff_expr, val)
        bexpr = BoundExpr(eq_expr, var)
        prob.add_cnt_expr(bexpr)
        prob.find_closest_feasible_point()
        self.assertTrue(np.allclose(var.get_value(), val))
コード例 #6
0
ファイル: test_prob.py プロジェクト: c-l/sco
    def test_find_closest_feasible_point_leq_cnts(self):
        cnt_vals = [np.ones((2,1)), np.array([[-1.0],[1.0]]), \
            np.array([[-1.0],[-1.0]])]
        true_var_vals = [np.zeros((2,1)), np.array([[-1.0],[0.0]]), \
            -1*np.ones((2,1))]

        for true_var_val, cnt_val in zip(true_var_vals, cnt_vals):
            model = grb.Model()
            prob = Prob(model)
            grb_var1 = model.addVar(lb=-1 * GRB.INFINITY, ub=GRB.INFINITY, name='x1')
            grb_var2 = model.addVar(lb=-1 * GRB.INFINITY, ub=GRB.INFINITY, name='x2')
            grb_vars = np.array([[grb_var1],[grb_var2]])
            var = Variable(grb_vars, np.zeros((2,1)))

            model.update()

            aff_expr = AffExpr(np.eye(2), np.zeros((2,1)))
            leq_expr = LEqExpr(aff_expr, cnt_val)
            bexpr = BoundExpr(leq_expr, var)
            prob.add_cnt_expr(bexpr)
            prob.find_closest_feasible_point()
            self.assertTrue(np.allclose(var.get_value(), true_var_val))