238 lines
6.9 KiB
Plaintext
238 lines
6.9 KiB
Plaintext
---
|
||
title: CouplingMap
|
||
description: API reference for qiskit.transpiler.CouplingMap
|
||
in_page_toc_min_heading_level: 1
|
||
python_api_type: class
|
||
python_api_name: qiskit.transpiler.CouplingMap
|
||
---
|
||
|
||
# CouplingMap
|
||
|
||
<Class id="qiskit.transpiler.CouplingMap" isDedicatedPage={true} github="https://github.com/qiskit/qiskit/tree/stable/0.18/qiskit/transpiler/coupling.py" signature="CouplingMap(couplinglist=None, description=None)" modifiers="class">
|
||
Bases: `object`
|
||
|
||
Directed graph specifying fixed coupling.
|
||
|
||
Nodes correspond to physical qubits (integers) and directed edges correspond to permitted CNOT gates
|
||
|
||
Create coupling graph. By default, the generated coupling has no nodes.
|
||
|
||
**Parameters**
|
||
|
||
* **couplinglist** (*list or None*) – An initial coupling graph, specified as an adjacency list containing couplings, e.g. \[\[0,1], \[0,2], \[1,2]].
|
||
* **description** (*str*) – A string to describe the coupling map.
|
||
|
||
## Methods
|
||
|
||
### add\_edge
|
||
|
||
<Function id="qiskit.transpiler.CouplingMap.add_edge" signature="CouplingMap.add_edge(src, dst)">
|
||
Add directed edge to coupling graph.
|
||
|
||
src (int): source physical qubit dst (int): destination physical qubit
|
||
</Function>
|
||
|
||
### add\_physical\_qubit
|
||
|
||
<Function id="qiskit.transpiler.CouplingMap.add_physical_qubit" signature="CouplingMap.add_physical_qubit(physical_qubit)">
|
||
Add a physical qubit to the coupling graph as a node.
|
||
|
||
physical\_qubit (int): An integer representing a physical qubit.
|
||
|
||
**Raises**
|
||
|
||
**CouplingError** – if trying to add duplicate qubit
|
||
</Function>
|
||
|
||
### distance
|
||
|
||
<Function id="qiskit.transpiler.CouplingMap.distance" signature="CouplingMap.distance(physical_qubit1, physical_qubit2)">
|
||
Returns the undirected distance between physical\_qubit1 and physical\_qubit2.
|
||
|
||
**Parameters**
|
||
|
||
* **physical\_qubit1** (*int*) – A physical qubit
|
||
* **physical\_qubit2** (*int*) – Another physical qubit
|
||
|
||
**Returns**
|
||
|
||
The undirected distance
|
||
|
||
**Return type**
|
||
|
||
int
|
||
|
||
**Raises**
|
||
|
||
**CouplingError** – if the qubits do not exist in the CouplingMap
|
||
</Function>
|
||
|
||
### draw
|
||
|
||
<Function id="qiskit.transpiler.CouplingMap.draw" signature="CouplingMap.draw()">
|
||
Draws the coupling map.
|
||
|
||
This function needs [pydot](https://github.com/erocarrera/pydot), which in turn needs [Graphviz](https://www.graphviz.org/) to be installed. Additionally, [pillow](https://python-pillow.org/) will need to be installed.
|
||
|
||
**Returns**
|
||
|
||
Drawn coupling map.
|
||
|
||
**Return type**
|
||
|
||
PIL.Image
|
||
|
||
**Raises**
|
||
|
||
[**MissingOptionalLibraryError**](qiskit.aqua.MissingOptionalLibraryError "qiskit.aqua.MissingOptionalLibraryError") – when pydot or pillow are not installed.
|
||
</Function>
|
||
|
||
### from\_full
|
||
|
||
<Function id="qiskit.transpiler.CouplingMap.from_full" signature="CouplingMap.from_full(num_qubits, bidirectional=True)" modifiers="classmethod">
|
||
Return a fully connected coupling map on n qubits.
|
||
</Function>
|
||
|
||
### from\_grid
|
||
|
||
<Function id="qiskit.transpiler.CouplingMap.from_grid" signature="CouplingMap.from_grid(num_rows, num_columns, bidirectional=True)" modifiers="classmethod">
|
||
Return qubits connected on a grid of num\_rows x num\_columns.
|
||
</Function>
|
||
|
||
### from\_line
|
||
|
||
<Function id="qiskit.transpiler.CouplingMap.from_line" signature="CouplingMap.from_line(num_qubits, bidirectional=True)" modifiers="classmethod">
|
||
Return a fully connected coupling map on n qubits.
|
||
</Function>
|
||
|
||
### from\_ring
|
||
|
||
<Function id="qiskit.transpiler.CouplingMap.from_ring" signature="CouplingMap.from_ring(num_qubits, bidirectional=True)" modifiers="classmethod">
|
||
Return a fully connected coupling map on n qubits.
|
||
</Function>
|
||
|
||
### get\_edges
|
||
|
||
<Function id="qiskit.transpiler.CouplingMap.get_edges" signature="CouplingMap.get_edges()">
|
||
Gets the list of edges in the coupling graph.
|
||
|
||
**Returns**
|
||
|
||
Each edge is a pair of physical qubits.
|
||
|
||
**Return type**
|
||
|
||
Tuple(int,int)
|
||
</Function>
|
||
|
||
### is\_connected
|
||
|
||
<Function id="qiskit.transpiler.CouplingMap.is_connected" signature="CouplingMap.is_connected()">
|
||
Test if the graph is connected.
|
||
|
||
Return True if connected, False otherwise
|
||
</Function>
|
||
|
||
### largest\_connected\_component
|
||
|
||
<Function id="qiskit.transpiler.CouplingMap.largest_connected_component" signature="CouplingMap.largest_connected_component()">
|
||
Return a set of qubits in the largest connected component.
|
||
</Function>
|
||
|
||
### make\_symmetric
|
||
|
||
<Function id="qiskit.transpiler.CouplingMap.make_symmetric" signature="CouplingMap.make_symmetric()">
|
||
Convert uni-directional edges into bi-directional.
|
||
</Function>
|
||
|
||
### neighbors
|
||
|
||
<Function id="qiskit.transpiler.CouplingMap.neighbors" signature="CouplingMap.neighbors(physical_qubit)">
|
||
Return the nearest neighbors of a physical qubit.
|
||
|
||
Directionality matters, i.e. a neighbor must be reachable by going one hop in the direction of an edge.
|
||
</Function>
|
||
|
||
### reduce
|
||
|
||
<Function id="qiskit.transpiler.CouplingMap.reduce" signature="CouplingMap.reduce(mapping)">
|
||
Returns a reduced coupling map that corresponds to the subgraph of qubits selected in the mapping.
|
||
|
||
**Parameters**
|
||
|
||
**mapping** (*list*) – A mapping of reduced qubits to device qubits.
|
||
|
||
**Returns**
|
||
|
||
A reduced coupling\_map for the selected qubits.
|
||
|
||
**Return type**
|
||
|
||
[CouplingMap](qiskit.transpiler.CouplingMap "qiskit.transpiler.CouplingMap")
|
||
|
||
**Raises**
|
||
|
||
**CouplingError** – Reduced coupling map must be connected.
|
||
</Function>
|
||
|
||
### shortest\_undirected\_path
|
||
|
||
<Function id="qiskit.transpiler.CouplingMap.shortest_undirected_path" signature="CouplingMap.shortest_undirected_path(physical_qubit1, physical_qubit2)">
|
||
Returns the shortest undirected path between physical\_qubit1 and physical\_qubit2.
|
||
|
||
**Parameters**
|
||
|
||
* **physical\_qubit1** (*int*) – A physical qubit
|
||
* **physical\_qubit2** (*int*) – Another physical qubit
|
||
|
||
**Returns**
|
||
|
||
The shortest undirected path
|
||
|
||
**Return type**
|
||
|
||
List
|
||
|
||
**Raises**
|
||
|
||
**CouplingError** – When there is no path between physical\_qubit1, physical\_qubit2.
|
||
</Function>
|
||
|
||
### size
|
||
|
||
<Function id="qiskit.transpiler.CouplingMap.size" signature="CouplingMap.size()">
|
||
Return the number of physical qubits in this graph.
|
||
</Function>
|
||
|
||
### subgraph
|
||
|
||
<Function id="qiskit.transpiler.CouplingMap.subgraph" signature="CouplingMap.subgraph(nodelist)">
|
||
Return a CouplingMap object for a subgraph of self.
|
||
|
||
nodelist (list): list of integer node labels
|
||
</Function>
|
||
|
||
## Attributes
|
||
|
||
### distance\_matrix
|
||
|
||
<Attribute id="qiskit.transpiler.CouplingMap.distance_matrix">
|
||
Return the distance matrix for the coupling map.
|
||
</Attribute>
|
||
|
||
### is\_symmetric
|
||
|
||
<Attribute id="qiskit.transpiler.CouplingMap.is_symmetric">
|
||
Test if the graph is symmetric.
|
||
|
||
Return True if symmetric, False otherwise
|
||
</Attribute>
|
||
|
||
### physical\_qubits
|
||
|
||
<Attribute id="qiskit.transpiler.CouplingMap.physical_qubits">
|
||
Returns a sorted list of physical\_qubits
|
||
</Attribute>
|
||
</Class>
|
||
|