# quboResult

Result of solving QUBO problem

Since R2023a

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

## Description

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.

## Creation

### Syntax

``result = solve(qprob)``
``result = solve(qprob,Algorithm=ts)``

### Description

example

````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)`.

## Properties

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.

## Examples

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]```

The`BestX` 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`.

## Algorithms

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.

## References

[1] Palubeckis, G. Iterated Tabu Search for the Unconstrained Binary Quadratic Optimization Problem. Informatica (2006), 17(2), pp. 279–296. Available at https://citeseerx.ist.psu.edu/document?repid=rep1&type=pdf&doi=3c323a1d41cd0e2ca1ddb27192e475ea73959e52.

## Version History

Introduced in R2023a