qiskit-documentation/docs/api/qiskit/0.27/qiskit.optimization.applica...

206 lines
8.9 KiB
Plaintext
Raw Permalink Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

---
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
<Attribute id="qiskit.optimization.applications.ising.tsp.logger" attributeValue="<Logger qiskit.optimization.applications.ising.tsp (WARNING)>">
Instance data of TSP
</Attribute>
### 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>