Gurobi
Gurobi is an industry-leading solver for mathematical optimization.
Solvers
Model | Backend |
---|---|
BinaryQuadraticModel | gurobi.qubo |
MPSFile | gurobi.mps |
GurobiParameterModel
Parameters: Solver Parameter options accepted by Gurobi.
Binary Quadratic Model
import strangeworks as sw
from strangeworks_optimization import StrangeworksOptimizer
from strangeworks_optimization_models.parameter_models import GurobiParameterModel
from dimod import BinaryQuadraticModel
sw.authenticate('your-api-key')
linear = {1: -2, 2: -2, 3: -3, 4: -3, 5: -2}
quadratic = {(1, 2): 2, (1, 3): 2, (2, 4): 2, (3, 4): 2, (3, 5): 2, (4, 5): 2}
model = BinaryQuadraticModel(linear, quadratic, "BINARY")
options = GurobiParameterModel(TimeLimit=60)
solver = "gurobi.qubo"
optimizer = StrangeworksOptimizer(model=model, solver=solver, options=options)
sw_job = optimizer.run()
print(f"Job slug: {sw_job.slug}")
print(f"Job status: {optimizer.status(sw_job.slug)}")
results = optimizer.results(sw_job.slug)
Mathemical Programming System
import strangeworks as sw
from strangeworks_optimization import StrangeworksOptimizer
from strangeworks_optimization_models.problem_models import MPSFile
from strangeworks_optimization_models.parameter_models import GurobiParameterModel
sw.authenticate('your-api-key')
file = "example.mps"
model = MPSFile.read_file(file)
options = GurobiParameterModel(TimeLimit=60)
solver = "gurobi.mps"
optimizer = StrangeworksOptimizer(model=model, solver=solver, options=options)
sw_job = optimizer.run()
print(optimizer.status(sw_job.slug))
results = optimizer.results(sw_job.slug)