def solve_unbounded(use_indirect, gpu): K = { 'f': 10, 'l': 15, 'q': [5, 10, 0, 1], 's': [3, 4, 0, 0, 1], 'ep': 10, 'ed': 10, 'p': [-0.25, 0.5, 0.75, -0.33] } m = tools.get_scs_cone_dims(K) data = tools.gen_unbounded(K, n=m // 3) params = {'normalize': True, 'scale': 0.5, 'cg_rate': 2} sol = scs.solve(data, K, use_indirect=use_indirect, gpu=gpu, **params)
def solve_unbounded(use_indirect, gpu): K = { "f": 10, "l": 15, "q": [5, 10, 0, 1], "s": [3, 4, 0, 0, 1], "ep": 10, "ed": 10, "p": [-0.25, 0.5, 0.75, -0.33], } m = tools.get_scs_cone_dims(K) data = tools.gen_unbounded(K, n=m // 3) params = {"normalize": True, "scale": 0.5} sol = scs.solve(data, K, use_indirect=use_indirect, gpu=gpu, **params)
def solve_feasible(use_indirect, gpu): # cone: K = { 'f': 10, 'l': 15, 'q': [5, 10, 0, 1], 's': [3, 4, 0, 0, 1], 'ep': 10, 'ed': 10, 'p': [-0.25, 0.5, 0.75, -0.33] } m = tools.get_scs_cone_dims(K) data, p_star = tools.gen_feasible(K, n=m // 3, density=0.01) params = {'normalize': True, 'scale': 5, 'cg_rate': 2} sol = scs.solve(data, K, use_indirect=use_indirect, gpu=gpu, **params) x = sol['x'] y = sol['y'] print('p* = ', p_star) print('pri error = ', (np.dot(data['c'], x) - p_star) / p_star) print('dual error = ', (-np.dot(data['b'], y) - p_star) / p_star)
def solve_feasible(use_indirect, gpu): # cone: K = { "f": 10, "l": 15, "q": [5, 10, 0, 1], "s": [3, 4, 0, 0, 1], "ep": 10, "ed": 10, "p": [-0.25, 0.5, 0.75, -0.33], } m = tools.get_scs_cone_dims(K) data, p_star = tools.gen_feasible(K, n=m // 3, density=0.01) params = {"normalize": True, "scale": 5} sol = scs.solve(data, K, use_indirect=use_indirect, gpu=gpu, **params) x = sol["x"] y = sol["y"] print("p* = ", p_star) print("pri error = ", (np.dot(data["c"], x) - p_star) / p_star) print("dual error = ", (-np.dot(data["b"], y) - p_star) / p_star)
num_infeas = 10 opts = { 'max_iters': 100000, 'eps': 1e-5 } # better accuracy than default to ensure test pass K = { 'f': 10, 'l': 25, 'q': [5, 10, 0, 1], 's': [2, 1, 2, 0, 1], 'ep': 0, 'ed': 0, 'p': [0.25, -0.75, 0.33, -0.33, 0.2] } m = tools.get_scs_cone_dims(K) def test_feasible(): for i in range(num_feas): data, p_star = tools.gen_feasible(K, n=m // 3, density=0.1) sol = scs.solve(data, K, use_indirect=False, **opts) yield check_solution, np.dot(data['c'], sol['x']), p_star yield check_solution, np.dot(-data['b'], sol['y']), p_star sol = scs.solve(data, K, use_indirect=True, **opts) yield check_solution, np.dot(data['c'], sol['x']), p_star yield check_solution, np.dot(-data['b'], sol['y']), p_star