PyQBPP Document
This documentation for PyQBPP (Python binding of QUBO++) is currently under development. Some pages may contain incomplete or provisional information.
Getting Started
Basics
This section provides a step-by-step introduction to PyQBPP. By reading the pages in order, you will learn how to define variables and expressions, model optimization problems, and solve them using PyQBPP. After completing this tutorial, you should be able to use PyQBPP for most typical applications.
- Defining Variables and Creating Expressions
- Solving Expressions
- Array of Variables and Array Functions
- Solving Partitioning Problem Using Array of Variables
- Permutation Matrix and Solving Assignment Problem
- Integer Variables and Solving Simultaneous Equations
- Factorization Through HUBO Expression
- Range Constraints and Solving Integer Linear Programming
- Native Constraints
Topics
This section provides topic-wise explanations of selected features of PyQBPP. Each page focuses on a specific topic and offers deeper insights into design decisions, usage patterns, and, where appropriate, internal implementations.
- Data Types of Variables and Expressions
- Basic Operators and Functions
- Basic Operators and Functions for Arrays
- Multi-dimensional Variables and Expressions
- Comparison Constraints
- Expression Classes
- Evaluating Expressions
- Replace Functions
- Negated Literals
- Reducing HUBO to QUBO
- Sum Functions for Multi-dimensional Arrays
- Einsum Function for Tensor Contraction
- Slice and Concat
- One-Hot to Integer Conversion
- Easy Solver Usage
- Exhaustive Solver Usage
- ABS3 Solver Usage
- Search Parameters
- Performance Tips
Case Studies
This section provides examples of solving optimization, mathematical, and graph problems using PyQBPP. See the Case Studies page for the full list.
Quick References
- Variables and Expressions
- Operators and Functions
- Operations and Functions for Integer Variables and Constraints
- Solutions
External Solver Integrations
Besides the three built-in solvers, PyQBPP can hand a model to a number of external solvers, grouped by the model form each one consumes:
- QUBO/HUBO Solvers — solvers that take the QUBO/HUBO model directly (no linearization): Gurobi, IBM CPLEX, dimod ExactSolver, IBM Qiskit Optimization (exact / quadratic-direct), plus Fixstars Amplify, D-Wave (Advantage / Native / Leap Hybrid / Neal / Tabu / Steepest Descent), OpenJij, TYTAN-SDK MIKAS, qubovert, Simulated Bifurcation (heuristic samplers / annealers).
- MILP Solvers (SCIP, HiGHS, GLPK, CBC) — exact solvers that require linearization of the QUBO into a pure MILP.
- CP Solvers (OR-Tools CP-SAT) — constraint-programming engine; HUBO of any degree and negated literals handled natively.
These integrations require each solver to be installed separately, and their APIs may change without notice.