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.