Overview#

Kaiwu SDK#

The SDK is currently a software development kit based on coherent optical quantum computing for solving QUBO. It aims to assist developers in building software algorithms directly applicable to coherent optical quantum computers within the Python environment. Additionally, it provides a physical interface (presently offering the Ising matrix) to access and utilize quantum computing devices. The SDK comprises various classical solvers, as well as pre- and post-processing modules. It directly translates mathematical algorithms into inputs recognizable by quantum computers, allowing developers to engage in quantum computing algorithm development at the mathematical modeling layer without requiring specialized knowledge in quantum physics.

CPQC#

CPQC (Coherent Photonic Quantum Computer), is a quantum computer technology that QBoson focuses on developing at present. CPQC is an optical quantum computer based on degenerate optical parametric oscillator (DOPO). In mathematical practice, we can abstract CPQC as a specialized computer for optimizing Ising models.

Ising Model#

Ising Model is a kind of stochastic process model describing the phase transition of substances, with the mathematical form of:

H(\sigma)=-\sum_{i,j}J_{ij}\sigma_i\sigma_j-\mu\sum_ih_i\sigma_i

where \sigma are spin variables to be solved, taking the values of \{-1,1\}. H is the Hamiltonian. J,\mu,h are quadratic coefficients and linear coefficients respectively.

QUBO#

QUBO (Quadratic unconstrained binary optimization) has the following mathematical form:

f_Q(x)=\sum_{i\leqslant j}q_{ij}x_ix_j

where x are binary variables to be solved, taking the values of \{0,1\}. f is the objective function. q is the quadratic coefficients, which is given. In the form of linear algebra:

f_Q(\pmb x)=\pmb x^T\pmb Q\pmb x

where \pmb x are variables, \pmb Q is the QUBO matrix. The objective of QUBO model is to find \pmb x to maximize or minimize f, that is:

\pmb x^*=\mathop{\arg\min}\limits_{\pmb x}f_Q(\pmb x)

In Kaiwu SDK, viewing QUBO model details through kw.qubo.details will display offset and coefficients information. Where offset represents the constant term in the QUBO model, which has nothing to do with the variables. coefficients represents the coefficient value of each binary variable in the QUBO model, And the coefficient values of their interaction terms.

Solving Models Using CPQC#

The process of solving QUBO or optimizing Ising model is a process of importing q_{ij} in QUBO or J_{ij} in Ising to CPQC, and CPQC returns \pmb x or \sigma.