Main Content


Result of solving QUBO problem

Since R2023a

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


The properties of a quboResult object provide information about the solution process performed by solve to solve a QUBO problem. solve uses the tabu search algorithm to solve a QUBO problem. The resulting solution contains a quboResult object.




result = solve(qprob) solves a QUBO problem using the default tabuSearch algorithm, and returns a quboResult object.

result = solve(qprob,Algorithm=ts), solves a QUBO problem using the ts tabu search algorithm, and returns a quboResult object. Use this syntax when you want to set the properties of the tabu search object ts.

Input Arguments

expand all

QUBO problem, specified as a qubo object. Create qprob using the qubo function.

Tabu search algorithm, specified as a tabuSearch object. Set algorithm properties using the tabuSearch function.

Example: To run the algorithm for no more than 60 seconds, set ts = tabuSearch(MaxTime=60) and then call solve(qprob,Algorithm=ts).


expand all

This property is read-only.

Solution point corresponding to the minimal objective function value, returned as a real vector.

This property is read-only.

Best (smallest) objective function value, returned as a real scalar. Generally, BestFunctionValue is the objective function value at BestX.

This property is read-only.

Result details, returned as a tabuSearchResult object.


collapse all

Create and solve a QUBO problem.

Q = [0 -1 2;...
    -1 0 4;...
    2 4 0];
c = [-5 6 -4];
d = 12;
qprob = qubo(Q,c,d);
result = solve(qprob)
result = 

  quboResult with properties:

                BestX: [3×1 double]
    BestFunctionValue: 7
      AlgorithmResult: [1×1 tabuSearchResult]

TheBestX property contains the point giving the lowest objective function value found, and the BestFunctionValue property contains that objective function value. For more details of the solution process, you can examine the AlgorithmResult property, as shown in tabuSearchResult.


The tabu search algorithm is based on Palubeckis [1]. Starting from a random binary vector, the software repeatedly attempts to find a binary vector with a lower objective function value by switching some existing values from 1 to 0 or from 0 to 1. The software tries to avoid cycling, or the repeated evaluation of the same point, by using a tabu list. For details, see Tabu Search Algorithm.


[1] Palubeckis, G. Iterated Tabu Search for the Unconstrained Binary Quadratic Optimization Problem. Informatica (2006), 17(2), pp. 279–296. Available at

Version History

Introduced in R2023a