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
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
- 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
- Gurobi Optimizer 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
Experimental Solver Support
Experimental Solver Support — PyQBPP-only experimental integrations that let you call third-party solvers through a unified interface, including Fixstars Amplify, D-Wave (Advantage / Leap Hybrid / Neal / Tabu / Steepest Descent), dimod ExactSolver, OpenJij, TYTAN-SDK MIKAS, qubovert, Simulated Bifurcation, IBM CPLEX, IBM Qiskit Optimization, and Google OR-Tools CP-SAT.