CPLEX
Solve a QUBO with CPLEX¶
Default CPLEX parameters:
- cplex_maxtime (float):
600.0
- cplex_log_path (str):
"solver.log"
- do_preprocessing (bool):
False
- do_postprocessing (bool):
False
Note: Although preprocessing and postprocessing can be enabled, CPLEX is usually powerful enough to solve the QUBO sizes we handle without them.
In [ ]:
Copied!
import torch
from qubosolver import QUBOInstance
from qubosolver.config import SolverConfig, ClassicalConfig
from qubosolver.solver import QuboSolver
coefficients = torch.load("qubo_size_15.pt")
instance = QUBOInstance(coefficients)
# Create a SolverConfig object with classical solver options.
cplex = ClassicalConfig(
classical_solver_type="cplex",
cplex_maxtime = 600.0,
cplex_log_path= "cplex.log"
)
config = SolverConfig(
classical=cplex,
)
# Instantiate the qubo (classical) solver class.
classical_solver = QuboSolver(instance, config)
# Solve the QUBO problem and print the solution.
solution = classical_solver.solve()
print("Solution result:", solution)
import torch
from qubosolver import QUBOInstance
from qubosolver.config import SolverConfig, ClassicalConfig
from qubosolver.solver import QuboSolver
coefficients = torch.load("qubo_size_15.pt")
instance = QUBOInstance(coefficients)
# Create a SolverConfig object with classical solver options.
cplex = ClassicalConfig(
classical_solver_type="cplex",
cplex_maxtime = 600.0,
cplex_log_path= "cplex.log"
)
config = SolverConfig(
classical=cplex,
)
# Instantiate the qubo (classical) solver class.
classical_solver = QuboSolver(instance, config)
# Solve the QUBO problem and print the solution.
solution = classical_solver.solve()
print("Solution result:", solution)
Solution result: QUBOSolution(bitstrings=tensor([[1., 0., 0., 0., 0., 1., 1., 0., 0., 0., 0., 1., 0., 1., 0.]]), costs=tensor([-273.9201]), counts=None, probabilities=None, solution_status=<SolutionStatusType.UNPROCESSED: 'unprocessed'>)