Esempio n. 1
0
 def test_osqp_solver(self):
     prog = mp.MathematicalProgram()
     x = prog.NewContinuousVariables(2, "x")
     prog.AddLinearConstraint(x[0] >= 1)
     prog.AddLinearConstraint(x[1] >= 1)
     prog.AddQuadraticCost(np.eye(2), np.zeros(2), x)
     solver = OsqpSolver()
     self.assertTrue(solver.available())
     self.assertEqual(solver.solver_type(), mp.SolverType.kOsqp)
     result = solver.Solve(prog)
     self.assertEqual(result, mp.SolutionResult.kSolutionFound)
     x_expected = np.array([1, 1])
     self.assertTrue(np.allclose(prog.GetSolution(x), x_expected))
Esempio n. 2
0
 def test_osqp_solver(self):
     prog = mp.MathematicalProgram()
     x = prog.NewContinuousVariables(2, "x")
     prog.AddLinearConstraint(x[0] >= 1)
     prog.AddLinearConstraint(x[1] >= 1)
     prog.AddQuadraticCost(np.eye(2), np.zeros(2), x)
     solver = OsqpSolver()
     self.assertTrue(solver.available())
     self.assertEqual(solver.solver_type(), mp.SolverType.kOsqp)
     result = solver.Solve(prog, None, None)
     self.assertTrue(result.is_success())
     x_expected = np.array([1, 1])
     self.assertTrue(np.allclose(result.GetSolution(x), x_expected))
     self.assertEqual(result.get_solver_details().status_val, 1)
    def test(self):
        prog = mp.MathematicalProgram()
        x = prog.NewContinuousVariables(2)
        b = prog.NewBinaryVariables(2)

        prog.AddLinearConstraint(x[0] + 2 * x[1] + b[0] == 2.)
        prog.AddLinearConstraint(x[0] - 3.1 * b[1] >= 1)
        prog.AddLinearConstraint(b[1] + 1.2 * x[1] - b[0] <= 5)
        prog.AddQuadraticCost(x[0] * x[0])

        dut = bnb.MixedIntegerBranchAndBound(prog, OsqpSolver().solver_id())
        solution_result = dut.Solve()
        self.assertEqual(solution_result, mp.SolutionResult.kSolutionFound)
        self.assertAlmostEqual(dut.GetOptimalCost(), 1.)
        self.assertAlmostEqual(dut.GetSubOptimalCost(0), 1.)
        self.assertAlmostEqual(dut.GetSolution(x[0], 0), 1.)
        self.assertAlmostEqual(dut.GetSolution(x[0], 1), 1.)
        np.testing.assert_allclose(dut.GetSolution(x, 0), [1., 0.], atol=1e-12)
 def unavailable(self):
     """Per the BUILD file, this test is only run when OSQP is disabled."""
     solver = OsqpSolver()
     self.assertFalse(solver.available())
Esempio n. 5
0
 def unavailable(self):
     """Per the BUILD file, this test is only run when OSQP is disabled."""
     solver = OsqpSolver()
     self.assertFalse(solver.available())