Skip to content

LP symbol returns incorrect value #575

Description

@arcondello

lp.zip

import numpy as np
import scipy.optimize

import dwave.optimization

arrays = np.load("lp.npz")
c = arrays["c"]
A_ub = arrays["A_ub"]
b_ub = arrays["b_ub"]
A_eq = arrays["A_eq"]
b_eq = arrays["b_eq"]
lb = arrays["lb"]
ub = arrays["ub"]

# Solve it with scipy
res = scipy.optimize.linprog(
    c=c,
    A_ub=A_ub,
    b_ub=b_ub,
    A_eq=A_eq,
    b_eq=b_eq,
    bounds=list(zip(lb, ub)),
)
scipy_x = res.x
scipy_fun = res.fun

# Solve it with dwave-optimization
model = dwave.optimization.Model()
res = dwave.optimization.linprog(
    c=model.constant(c),
    A_ub=model.constant(A_ub),
    b_ub=model.constant(b_ub),
    A_eq=model.constant(A_eq),
    b_eq=model.constant(b_eq),
    lb=model.constant(lb),
    ub=model.constant(ub),
)
_ = res.x
__ = res.fun
model.states.resize(1)
with model.lock():
    dwopt_x = res.x.state()
    dwopt_fun = res.fun.state()

print(scipy_fun, dwopt_fun)
47779.29074832177 33603159.675

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions