## What Is a QUBO Problem?

Note

Installation Required: This functionality requires MATLAB Support Package for Quantum Computing.

### QUBO and Ising Problem Definitions

A Quadratic Unconstrained Binary Optimization (QUBO) problem is a quadratic optimization problem in binary variables. For x(i), a binary variable with N components, the objective function to minimize has the form

`$f\left(x\right)=\sum _{i=1}^{N}\sum _{j=1}^{N}{Q}_{i,j}{x}_{i}{x}_{j}+\sum _{i=1}^{N}{c}_{i}{x}_{i}+d.$`
• Q can be a real symmetric matrix. If Q is not symmetric, the software internally replaces Q with the equivalent symmetric matrix

`$\stackrel{^}{Q}=\frac{Q+{Q}^{\prime }}{2}$`

for the expression

`$x\text{'}\stackrel{⌢}{Q}x=x\text{'}Qx.$`
• c is a numeric vector with N components.

• d is a scalar.

Convert your problem to a QUBO problem by using the `qubo` function.

```qprob = qubo(Q) % or qprob = qubo(Q,c) % or qprob = qubo(Q,c,d)```

An Ising problem has the same formulation as a QUBO problem, except the Ising variables y(i) are ±1 instead of the QUBO x variables 0 or 1. You can convert between the two formulations using a linear mapping. For a QUBO problem represented with variable x and an Ising problem with variable y, the mapping is

`$\begin{array}{l}y=2x-1\\ x=\frac{y+1}{2}.\end{array}$`

The objective function values in the two formulations differ by an easily calculated amount.

`$\begin{array}{c}x\text{'}Qx+c\text{'}x+d=\frac{\left(y+1\right)\text{'}Q\left(y+1\right)}{4}+c\text{'}\left(\frac{y+1}{2}\right)+d\\ =\frac{y\text{'}Qy}{4}+\left(\frac{1\text{'}Q+c\text{'}}{2}\right)y+d+\frac{1\text{'}Q1}{4}+\frac{c\text{'}1}{2},\end{array}$`

where 1 represents the column vector of ones having the same length as y.

### QUBO Problem Application

As explained in Glover, Kochenberger, and Du [1], many combinatorial optimization problems, such as the Traveling Salesperson Problem and quadratic assignment problems, can be formulated as QUBO problems. For a set of techniques to formulate common combinatorial optimization problems into this framework, see Lucas [2].

Also, many current and proposed quantum computers use QUBO or Ising as the problem type. To try to find a quantum solution to a combinatorial optimization problem, you formulate a QUBO problem and then pass the problem to quantum hardware for the solution.

### Solution Methods

To solve a QUBO problem, perform these two steps.

1. Place your problem into a QUBO object by calling `qubo`.

2. Solve the QUBO by calling `solve`, which uses the tabu search algorithm.

For example, create a QUBO problem for the quadratic matrix `Q`, linear vector `c`, and constant term `d`.

```Q = [0 -1 2;... -1 0 4;... 2 4 0]; c = [-5 6 -4]; d = 12; qprob = qubo(Q,c,d)```
```qprob = qubo with properties: QuadraticTerm: [3×3 double] LinearTerm: [-5 6 -4] ConstantTerm: 12 NumVariables: 3```

Solve the problem using the tabu search algorithm.

`result = solve(qprob)`
```result = quboResult with properties: BestX: [3×1 double] BestFunctionValue: 7 AlgorithmResult: [1×1 tabuSearchResult]```

Alternatively, if you have an Optimization Toolbox™ license and your problem has up to 100 or 200 variables, convert the QUBO problem to a mixed-integer linear programming (MILP) problem and solve it using `intlinprog`, as shown in Verify Optimality by Solving QUBO as MILP.

## References

[1] Glover, Fred, Gary Kochenberger, and Yu Du. Quantum Bridge Analytics I: A Tutorial on Formulating and Using QUBO Models. Available at https://arxiv.org/abs/1811.11538.

[2] Lucas, Andrew. Ising formulations of many NP problems. Available at https://arxiv.org/pdf/1302.5843.pdf.

[3] Kochenberger, G. A., and F. Glover. A Unified Framework for Modeling and Solving Combinatorial Optimization Problems: A Tutorial. In: Hager, W. W., Huang, S. J., Pardalos, P. M., Prokopyev, O. A. (eds) Multiscale Optimization Methods and Applications. Nonconvex Optimization and Its Applications, vol 82. Springer, Boston, MA. https://doi.org/10.1007/0-387-29550-X_4. Available at https://www.researchgate.net/publication/226808473_A_Unified_Framework_for_Modeling_and_Solving_Combinatorial_Optimization_Problems_A_Tutorial.