Main Content

tabuSearchResult

Result of solve for Tabu search algorithm

Since R2023a

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

Description

The properties of the tabuSearchResult object give information about the solution process that Tabu search performed to solve a QUBO problem. solve calls tabuSearch to solve a QUBO problem. The resulting solution is a quboResult object, which in turn contains a tabuSearchResult object.

Properties

expand all

This property is read-only.

Objective function values returned from calls to simple Tabu search, returned as a real vector. The objective function values are for the elements of AllX.

This property is read-only.

Solutions returned from calls to simple Tabu search, returned as a real matrix. Each column of the matrix represents one potential solution. The associated objective function value is in the corresponding entry of AllFunctionValues.

This property is read-only.

Smallest objective function value found, returned as a real scalar. BestFunctionValue is the smallest entry in AllFunctionValues.

This property is read-only.

Solution with smallest objective function value, returned as a real vector. BestX corresponds to an entry in AllX with the smallest objective function value.

This property is read-only.

Time the algorithm runs in seconds, returned as a real scalar. ClockTime is measured internally using tic and toc.

This property is read-only.

Maximum time in seconds observed between improvements, returned as a real scalar. The algorithm measures time between improvements (decreases) in the objective function value, and reports the maximum of these times.

This property is read-only.

Reason the algorithm stopped, returned as a character vector.

This property is read-only.

Number of Tabu search calls, returned as a positive integer.

This property is read-only.

Number of iterations in each call to simple Tabu search, returned as a vector of nonnegative integers

This property is read-only.

First time the best objective function value was encountered in seconds, returned as a positive scalar.

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]

Examine the AlgorithmResult portion of result.

result.AlgorithmResult
ans = 

  tabuSearchResult with properties:

                  AllX: [3×2 double]
     AllFunctionValues: [18 7]
                 BestX: [3×1 double]
     BestFunctionValue: 7
         TimeFirstBest: 0.010143 sec
        TabuIterations: [309 301 301 301 301 301 301 301 301 301 301 301 301 301 301 301 301 301 301 301 301 … ] (1×3335 double)
    NumTabuSearchCalls: 3335
               Message: 'TabuSearch stopped because MaxStallTime is exceeded.'
      LongestStallTime: 0.50001 sec
             ClockTime: 0.51016 sec

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