示例#1
0
    def test_quad_over_lin(self):
        x = Variable(3, 5)
        y = Variable(3, 5)
        z = Variable()
        s = quad_over_lin(x-y, z)
        self.assertFalse(s.is_constant())
        self.assertFalse(s.is_affine())
        self.assertFalse(s.is_quadratic())
        self.assertTrue(s.is_dcp())

        t = quad_over_lin(x+2*y, 5)
        self.assertFalse(t.is_constant())
        self.assertFalse(t.is_affine())
        self.assertTrue(t.is_quadratic())
        self.assertTrue(t.is_dcp())
示例#2
0
    def test_quad_over_lin(self):
        x = Variable(3, 5)
        y = Variable(3, 5)
        z = Variable()
        s = quad_over_lin(x-y, z)
        self.assertFalse(s.is_constant())
        self.assertFalse(s.is_affine())
        self.assertFalse(s.is_quadratic())
        self.assertTrue(s.is_dcp())

        t = quad_over_lin(x+2*y, 5)
        self.assertFalse(t.is_constant())
        self.assertFalse(t.is_affine())
        self.assertTrue(t.is_quadratic())
        self.assertTrue(t.is_dcp())
示例#3
0
 def quad_over_lin(self, solver):
     p = Problem(Minimize(0.5 * quad_over_lin(abs(self.x-1), 1)),
                 [self.x <= -1])
     self.solve_QP(p, solver)
     for var in p.variables():
         self.assertItemsAlmostEqual(np.array([-1., -1.]),
                                     var.value, places=4)
     for con in p.constraints:
         self.assertItemsAlmostEqual(np.array([2., 2.]),
                                     con.dual_value, places=4)
示例#4
0
 def quad_over_lin(self, solver):
     p = Problem(Minimize(0.5 * quad_over_lin(abs(self.x - 1), 1)),
                 [self.x <= -1])
     s = self.solve_QP(p, solver)
     for var in p.variables():
         self.assertItemsAlmostEqual(numpy.array([-1., -1.]),
                                     s.primal_vars[var.id])
     for con in p.constraints:
         self.assertItemsAlmostEqual(numpy.array([2., 2.]),
                                     s.dual_vars[con.id])