qat.opt
Generic combinatorial optimization
The class CombinatorialProblem
, together with Clause
and Var
allow one to represent a general combinatorial problem, like 3-SAT. Clauses (Clause
) are declared by combining variables (Var
). The cost Hamiltonian extraction is handled by the (Clause
) class. The final cost Hamiltonian consists of the weighted sum of the cost Hamiltonian of its clauses.
Encoding general Combinatorial problems with many |
|
A Class to define clauses between variables, for e.g. satisfiability problems |
|
A class for the variables themselves overloading logical operators to closely interact with the |
Quadratic problems: Ising and QUBO
Classes for the Ising and QUBO formulations of combinatorial problems, solved via annealing (or gate-based or analog approaches).
The class to represent Ising Hamiltonians |
|
The class encoding Maximum Weighted Independent Set (MWIS) problems |
|
The class encoding Quadratic Unconstrained Binary Optimization (QUBO) problems |
Classes for the supported NP-Hard problems
Each of the following inherits from either Ising
or QUBO
.
A class to encode the Binary Integer Linear Programming problem |
|
A class to encode the Graph Colouring problem |
|
A class to encode the Graph Partitioning problem |
|
A class to encode the K-Clique problem |
|
A class to encode the Max Cut problem |
|
A class to encode the Number Partitioning problem |
|
A class to encode the Vertex Cover problem |
Generating QAOA Ansätze or QA Jobs
A class with methods to generate custom mixing Hamiltonians for analog Adiabatic Quantum Optimization |
|
An interface from which |
|
An interface from which |
|
A class allowing to produce variational circuits for QAOA from a target Hamiltonian |
The classes of the objects produced by MixingFactory
, together with the interface they specialize from, are documented in the qat.opt.mixing_factory
module.