Ejemplo n.º 1
0
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)
Ejemplo n.º 2
0
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)
Ejemplo n.º 3
0
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)
Ejemplo n.º 4
0
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