QHyper.solvers#
This module contains implementations of different solvers. In QHyper exists three types of solvers: classical, quantum annealing and gate-based. Some of them are written from scratch based on popular algorithms, while others are just a wrapper for existing solutions. No solver is imported by deafult to reduce number of dependencies. To use any solver you can import it directly like
from QHyper.solver.gate_based.pennylane.qaoa import QAOA
or use function Solvers.get() with the name, category, and platform.
Any solver that is in directory ‘QHyper/custom’ or ‘custom’ will be
also available in this function.
Interface
|
Abstract base class for solvers. |
|
Class for storing results of the solver. |
Classical Solvers
|
Gurobi solver class. |
Quantum Annealing Solvers
|
Class for solving a problem using the Constrained Quadratic Model (CQM) approach. |
|
DQM solver class. |
Class for solving a problem using Advantage |
Gate-based solvers
|
Clasic QAOA implementation. |
QAOA implementation with additonal support for PennyLane optimizers. |
|
|
Different implementation of QAOA. |
|
Different implementation of QAOA. |
Hyper-optimizer
Not really a solver, but a class that can be used to optimize the hyperparameters of another solver. It is a wrapper around the solver class.
|
Class for hyperparameter optimization |
Additional functions
- class Solvers[source]#
- static get(name, category='', platform='')[source]#
Get solver class by name, category, and platform.
The name is required, other paramters might be required if there would be more than one solver with the same name. The solver will be available by the ‘name’ attribute if defined or by the class name. Letters case doesn’t matter.
- Return type:
Type[Solver]