In [ ]:
Copied!
from qubosolver import QUBOInstance
from qubosolver.solver import QuboSolver
from qubosolver.config import SolverConfig, ClassicalConfig
qubo = QUBOInstance(coefficients=[[-2.0, 1.0], [1.0, -2.0]])
# we can return at most max_bitstrings solutions.
config = SolverConfig(use_quantum = False, classical=ClassicalConfig(classical_solver_type="tabu_search", max_bitstrings=2))
solver = QuboSolver(qubo, config)
solution = solver.solve()
print(solution)
from qubosolver import QUBOInstance
from qubosolver.solver import QuboSolver
from qubosolver.config import SolverConfig, ClassicalConfig
qubo = QUBOInstance(coefficients=[[-2.0, 1.0], [1.0, -2.0]])
# we can return at most max_bitstrings solutions.
config = SolverConfig(use_quantum = False, classical=ClassicalConfig(classical_solver_type="tabu_search", max_bitstrings=2))
solver = QuboSolver(qubo, config)
solution = solver.solve()
print(solution)
QUBOSolution(bitstrings=tensor([[1, 0]], dtype=torch.int32), costs=tensor([-2.]), counts=tensor([2]), probabilities=tensor([1.]), solution_status=<SolutionStatusType.UNPROCESSED: 'unprocessed'>)
Quickstart: Solving a QUBO with Simulated Annealing¶
Below, we show how to solve a QUBO problem using the Simulated Annealing solver.
In [ ]:
Copied!
from qubosolver import QUBOInstance
from qubosolver.solver import QuboSolver
from qubosolver.config import SolverConfig, ClassicalConfig
qubo = QUBOInstance(coefficients=[[-2.0, 1.0], [1.0, -2.0]])
config = SolverConfig(use_quantum = False, classical=ClassicalConfig(classical_solver_type="simulated_annealing", max_bitstrings=2))
solver = QuboSolver(qubo, config)
solution = solver.solve()
print(solution)
from qubosolver import QUBOInstance
from qubosolver.solver import QuboSolver
from qubosolver.config import SolverConfig, ClassicalConfig
qubo = QUBOInstance(coefficients=[[-2.0, 1.0], [1.0, -2.0]])
config = SolverConfig(use_quantum = False, classical=ClassicalConfig(classical_solver_type="simulated_annealing", max_bitstrings=2))
solver = QuboSolver(qubo, config)
solution = solver.solve()
print(solution)
QUBOSolution(bitstrings=tensor([[0, 1],
[1, 1]], dtype=torch.int32), costs=tensor([-4., -4.], dtype=torch.float64), counts=tensor([1, 1]), probabilities=tensor([0.5000, 0.5000]), solution_status=<SolutionStatusType.UNPROCESSED: 'unprocessed'>)
Quickstart: Solving a QUBO with Simulated Annealing followed by tabu search¶
Below, we show how to solve a QUBO problem using the Simulated Annealing solver, followed by Tabu Search.
In [ ]:
Copied!
from qubosolver import QUBOInstance
from qubosolver.solver import QuboSolver
from qubosolver.config import SolverConfig, ClassicalConfig
qubo = QUBOInstance(coefficients=[[-2.0, 1.0], [1.0, -2.0]])
config = SolverConfig(use_quantum = False, classical=ClassicalConfig(classical_solver_type="simulated_annealing_tabu_search", max_bitstrings=2))
solver = QuboSolver(qubo, config)
solution = solver.solve()
print(solution)
from qubosolver import QUBOInstance
from qubosolver.solver import QuboSolver
from qubosolver.config import SolverConfig, ClassicalConfig
qubo = QUBOInstance(coefficients=[[-2.0, 1.0], [1.0, -2.0]])
config = SolverConfig(use_quantum = False, classical=ClassicalConfig(classical_solver_type="simulated_annealing_tabu_search", max_bitstrings=2))
solver = QuboSolver(qubo, config)
solution = solver.solve()
print(solution)
QUBOSolution(bitstrings=tensor([[0, 1]], dtype=torch.int32), costs=tensor([-2.]), counts=tensor([2]), probabilities=tensor([1.]), solution_status=<SolutionStatusType.UNPROCESSED: 'unprocessed'>)