Skip to main content

Gurobi

Gurobi is an industry-leading solver for mathematical optimization.

Solvers

ModelBackend
BinaryQuadraticModelgurobi.qubo
MPSFilegurobi.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)