204 lines
8.8 KiB
Plaintext
204 lines
8.8 KiB
Plaintext
---
|
||
title: tsp
|
||
description: API reference for qiskit.optimization.applications.ising.tsp
|
||
in_page_toc_min_heading_level: 2
|
||
python_api_type: module
|
||
python_api_name: qiskit.optimization.applications.ising.tsp
|
||
---
|
||
|
||
<span id="qiskit-optimization-applications-ising-tsp" />
|
||
|
||
# qiskit.optimization.applications.ising.tsp
|
||
|
||
Convert symmetric TSP instances into Pauli list Deal with TSPLIB format. It supports only EUC\_2D edge weight type. See [https://wwwproxy.iwr.uni-heidelberg.de/groups/comopt/software/TSPLIB95/](https://wwwproxy.iwr.uni-heidelberg.de/groups/comopt/software/TSPLIB95/) and [http://elib.zib.de/pub/mp-testdata/tsp/tsplib/tsp/index.html](http://elib.zib.de/pub/mp-testdata/tsp/tsplib/tsp/index.html) Design the tsp object w as a two-dimensional np.array e.g., w\[i, j] = x means that the length of a edge between i and j is x Note that the weights are symmetric, i.e., w\[j, i] = x always holds.
|
||
|
||
**Functions**
|
||
|
||
| | |
|
||
| --------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------- |
|
||
| [`calc_distance`](#qiskit.optimization.applications.ising.tsp.calc_distance "qiskit.optimization.applications.ising.tsp.calc_distance")(coord\[, name]) | calculate distance |
|
||
| [`get_operator`](#qiskit.optimization.applications.ising.tsp.get_operator "qiskit.optimization.applications.ising.tsp.get_operator")(ins\[, penalty]) | Generate Hamiltonian for TSP of a graph. |
|
||
| [`get_tsp_solution`](#qiskit.optimization.applications.ising.tsp.get_tsp_solution "qiskit.optimization.applications.ising.tsp.get_tsp_solution")(x) | Get graph solution from binary string. |
|
||
| [`parse_tsplib_format`](#qiskit.optimization.applications.ising.tsp.parse_tsplib_format "qiskit.optimization.applications.ising.tsp.parse_tsplib_format")(filename) | Read graph in TSPLIB format from file. |
|
||
| [`random_tsp`](#qiskit.optimization.applications.ising.tsp.random_tsp "qiskit.optimization.applications.ising.tsp.random_tsp")(n\[, low, high, savefile, seed, name]) | Generate a random instance for TSP. |
|
||
| [`tsp_feasible`](#qiskit.optimization.applications.ising.tsp.tsp_feasible "qiskit.optimization.applications.ising.tsp.tsp_feasible")(x) | Check whether a solution is feasible or not. |
|
||
| [`tsp_value`](#qiskit.optimization.applications.ising.tsp.tsp_value "qiskit.optimization.applications.ising.tsp.tsp_value")(z, w) | Compute the TSP value of a solution. |
|
||
|
||
**Classes**
|
||
|
||
| | |
|
||
| ------------------------------------------------------------------------------------------------------------------------------------------ | --------------------------------------------------- |
|
||
| [`TspData`](#qiskit.optimization.applications.ising.tsp.TspData "qiskit.optimization.applications.ising.tsp.TspData")(name, dim, coord, w) | Create new instance of TspData(name, dim, coord, w) |
|
||
|
||
### TspData
|
||
|
||
<Class id="qiskit.optimization.applications.ising.tsp.TspData" signature="TspData(name, dim, coord, w)" modifiers="class">
|
||
Create new instance of TspData(name, dim, coord, w)
|
||
|
||
#### coord
|
||
|
||
<Attribute id="qiskit.optimization.applications.ising.tsp.TspData.coord">
|
||
Alias for field number 2
|
||
</Attribute>
|
||
|
||
#### count
|
||
|
||
<Function id="qiskit.optimization.applications.ising.tsp.TspData.count" signature="count(value, /)">
|
||
Return number of occurrences of value.
|
||
</Function>
|
||
|
||
#### dim
|
||
|
||
<Attribute id="qiskit.optimization.applications.ising.tsp.TspData.dim">
|
||
Alias for field number 1
|
||
</Attribute>
|
||
|
||
#### index
|
||
|
||
<Function id="qiskit.optimization.applications.ising.tsp.TspData.index" signature="index(value, start=0, stop=9223372036854775807, /)">
|
||
Return first index of value.
|
||
|
||
Raises ValueError if the value is not present.
|
||
</Function>
|
||
|
||
#### name
|
||
|
||
<Attribute id="qiskit.optimization.applications.ising.tsp.TspData.name">
|
||
Alias for field number 0
|
||
</Attribute>
|
||
|
||
#### w
|
||
|
||
<Attribute id="qiskit.optimization.applications.ising.tsp.TspData.w">
|
||
Alias for field number 3
|
||
</Attribute>
|
||
</Class>
|
||
|
||
### calc\_distance
|
||
|
||
<Function id="qiskit.optimization.applications.ising.tsp.calc_distance" github="https://github.com/qiskit-community/qiskit-aqua/tree/stable/0.9/qiskit/optimization/applications/ising/tsp.py" signature="calc_distance(coord, name='tmp')">
|
||
calculate distance
|
||
</Function>
|
||
|
||
### get\_operator
|
||
|
||
<Function id="qiskit.optimization.applications.ising.tsp.get_operator" github="https://github.com/qiskit-community/qiskit-aqua/tree/stable/0.9/qiskit/optimization/applications/ising/tsp.py" signature="get_operator(ins, penalty=100000.0)">
|
||
Generate Hamiltonian for TSP of a graph.
|
||
|
||
**Parameters**
|
||
|
||
* **ins** ([*TspData*](#qiskit.optimization.applications.ising.tsp.TspData "qiskit.optimization.applications.ising.tsp.TspData")) – TSP data including coordinates and distances.
|
||
* **penalty** (*float*) – Penalty coefficient for the constraints
|
||
|
||
**Returns**
|
||
|
||
operator for the Hamiltonian and a constant shift for the obj function.
|
||
|
||
**Return type**
|
||
|
||
tuple([WeightedPauliOperator](qiskit.aqua.operators.legacy.WeightedPauliOperator "qiskit.aqua.operators.legacy.WeightedPauliOperator"), float)
|
||
</Function>
|
||
|
||
### get\_tsp\_solution
|
||
|
||
<Function id="qiskit.optimization.applications.ising.tsp.get_tsp_solution" github="https://github.com/qiskit-community/qiskit-aqua/tree/stable/0.9/qiskit/optimization/applications/ising/tsp.py" signature="get_tsp_solution(x)">
|
||
Get graph solution from binary string.
|
||
|
||
**Parameters**
|
||
|
||
**x** (*numpy.ndarray*) – binary string as numpy array.
|
||
|
||
**Returns**
|
||
|
||
**sequence of cities to traverse.**
|
||
|
||
The i-th item in the list corresponds to the city which is visited in the i-th step. The list for an infeasible answer e.g. \[\[0,1],1,] can be interpreted as visiting \[city0 and city1] as the first city, then visit city1 as the second city, then visit no where as the third city).
|
||
|
||
**Return type**
|
||
|
||
list\[int]
|
||
</Function>
|
||
|
||
**`logger` *= \<Logger qiskit.optimization.applications.ising.tsp (WARNING)>***
|
||
|
||
Instance data of TSP
|
||
|
||
### parse\_tsplib\_format
|
||
|
||
<Function id="qiskit.optimization.applications.ising.tsp.parse_tsplib_format" github="https://github.com/qiskit-community/qiskit-aqua/tree/stable/0.9/qiskit/optimization/applications/ising/tsp.py" signature="parse_tsplib_format(filename)">
|
||
Read graph in TSPLIB format from file.
|
||
|
||
**Parameters**
|
||
|
||
**filename** (*str*) – name of the file.
|
||
|
||
**Returns**
|
||
|
||
instance data.
|
||
|
||
**Return type**
|
||
|
||
[TspData](#qiskit.optimization.applications.ising.tsp.TspData "qiskit.optimization.applications.ising.tsp.TspData")
|
||
</Function>
|
||
|
||
### random\_tsp
|
||
|
||
<Function id="qiskit.optimization.applications.ising.tsp.random_tsp" github="https://github.com/qiskit-community/qiskit-aqua/tree/stable/0.9/qiskit/optimization/applications/ising/tsp.py" signature="random_tsp(n, low=0, high=100, savefile=None, seed=None, name='tmp')">
|
||
Generate a random instance for TSP.
|
||
|
||
**Parameters**
|
||
|
||
* **n** (*int*) – number of nodes.
|
||
* **low** (*float*) – lower bound of coordinate.
|
||
* **high** (*float*) – upper bound of coordinate.
|
||
* **savefile** (*str or None*) – name of file where to save graph.
|
||
* **seed** (*int or None*) – random seed - if None, will not initialize.
|
||
* **name** (*str*) – name of an instance
|
||
|
||
**Returns**
|
||
|
||
instance data.
|
||
|
||
**Return type**
|
||
|
||
[TspData](#qiskit.optimization.applications.ising.tsp.TspData "qiskit.optimization.applications.ising.tsp.TspData")
|
||
</Function>
|
||
|
||
### tsp\_feasible
|
||
|
||
<Function id="qiskit.optimization.applications.ising.tsp.tsp_feasible" github="https://github.com/qiskit-community/qiskit-aqua/tree/stable/0.9/qiskit/optimization/applications/ising/tsp.py" signature="tsp_feasible(x)">
|
||
Check whether a solution is feasible or not.
|
||
|
||
**Parameters**
|
||
|
||
**x** (*numpy.ndarray*) – binary string as numpy array.
|
||
|
||
**Returns**
|
||
|
||
feasible or not.
|
||
|
||
**Return type**
|
||
|
||
bool
|
||
</Function>
|
||
|
||
### tsp\_value
|
||
|
||
<Function id="qiskit.optimization.applications.ising.tsp.tsp_value" github="https://github.com/qiskit-community/qiskit-aqua/tree/stable/0.9/qiskit/optimization/applications/ising/tsp.py" signature="tsp_value(z, w)">
|
||
Compute the TSP value of a solution.
|
||
|
||
**Parameters**
|
||
|
||
* **z** (*list\[int]*) – list of cities.
|
||
* **w** (*numpy.ndarray*) – adjacency matrix.
|
||
|
||
**Returns**
|
||
|
||
value of the cut.
|
||
|
||
**Return type**
|
||
|
||
float
|
||
</Function>
|
||
|