Skip to main content
IBM Quantum Platform

CouplingMap

class qiskit.transpiler.CouplingMap(couplinglist=None, description=None)

GitHub

베이스: object

고정 커플링을 지정하는 지시형 그래프.

노드는 물리적 큐비트(정수)에 해당하고 방향 에지는 허용된 CNOT 게이트에 해당하며, 소스 및 대상은 각각 제어 큐비트와 대상 큐비트에 해당합니다.

커플링 그래프를 생성합니다. 기본적으로 생성된 커플링에는 노드가 없습니다.

매개변수

  • couplinglist (list or None) – 커플링을 포함하는 인접성 목록으로 지정된 초기 커플링 그래프(예: [[0,1], [0,2], [1,2] ])입니다. 노드는 0부터 연속적으로 인덱싱되어야 합니다. 누락된 노드는 커플링 맵에 고립된 노드로 추가됩니다.
  • description (str) – 커플링 맵을 설명하는 문자열입니다.

속성

description

graph

distance_matrix

커플링 맵의 거리 행렬을 반환합니다.

큐비트 사이에 경로가 없는 경우 거리 행렬의 이 위치에 있는 값은 math.inf 입니다.

is_symmetric

그래프가 대칭인지 테스트합니다.

대칭이면 True를 반환하고, 그렇지 않으면 False를 반환합니다

physical_qubits

물리적_쿼빗의 정렬된 목록을 반환합니다


메소드

add_edge

add_edge(src, dst)

GitHub

커플링 그래프에 방향 에지를 추가합니다.

src (int): 소스 물리 큐비트 dst (int): 대상 물리 큐비트

add_physical_qubit

add_physical_qubit(physical_qubit)

GitHub

커플링 그래프에 물리적 큐비트를 노드로 추가합니다.

물리_큐비트 (int): 물리적 큐비트를 나타내는 정수입니다.

레이즈

CouplingError – 중복된 큐비트를 추가하려고 할 경우

compute_distance_matrix

compute_distance_matrix()

GitHub

노드 쌍에 대한 전체 거리 행렬을 계산합니다.

거리 맵 self._dist_matrix 은 모든_쌍_최단_경로_길이를 사용하여 그래프에서 계산됩니다. 이는 일반적으로 내부적으로 distance_matrix 어트리뷰트 또는 distance() 메서드를 통해 내부적으로 처리되지만, 이러한 메서드 외부에서 거리 행렬에 액세스하거나 미리 생성하려는 경우 호출할 수 있습니다.

connected_components

connected_components()

GitHub

CouplingMap 를 하위 그래프 CouplingMap 로 분리합니다.

의 연결된 구성 요소는 CouplingMap 의 연결된 구성 요소는 더 큰 하위 그래프의 일부가 아닌 하위 그래프입니다. 예를 들어 다음과 같은 커플링 맵이 있다고 가정해 보겠습니다:

0 --> 1   4 --> 5 ---> 6 --> 7
|     |
|     |
V     V
2 --> 3

인 경우 해당 그래프의 연결된 구성 요소가 하위 그래프입니다:

0 --> 1
|     |
|     |
V     V
2 --> 3

그리고:

4 --> 5 ---> 6 --> 7

연결된 객체의 경우 CouplingMap 객체의 경우 연결된 구성 요소는 하나뿐이며, 전체 CouplingMap.

이 메서드는 이 그래프의 각 연결 CouplingMap 성분마다 하나씩, 총 CouplingMap 개체 목록을 반환합니다. 속성 graph 내 각 노드의 데이터 페이로드에는 원본 그래프의 큐비트 번호가 포함됩니다. 이를 통해 구성 요소 부분 그래프 내의 큐비트 인덱스를 결합된 그래프의 원래 큐비트에 CouplingMap매핑할 수 있게 됩니다. 예를 들어,

from qiskit.transpiler import CouplingMap

cmap = CouplingMap([[0, 1], [1, 2], [2, 0], [3, 4], [4, 5], [5, 3]])
component_cmaps = cmap.connected_components()
print(component_cmaps[1].graph[0])

3 를 출력하고 두 번째 컴포넌트의 인덱스 0 는 원래 cmap의 쿼비트 3입니다.

리턴

연결된 각 개체에 대한 CouplingMap 개체 목록

컴포넌트. 이 목록의 순서는 결정론적이지만 구현에 따라 다르므로 API의 일부로 의존해서는 안 됩니다.

리턴 유형

목록

distance

distance(physical_qubit1, physical_qubit2)

GitHub

physical_qubit1 와 physical_qubit2 사이의 직진 거리를 반환합니다.

매개변수

  • physical_qubit1 (int) – 물리적 큐비트
  • physical_qubit2 (int) – 또 다른 물리적 큐비트

리턴

직접 연결되지 않은 거리

리턴 유형

int

레이즈

CouplingError – CouplingMap 에 큐비트가 존재하지 않는다면

draw

draw(method='neato')

GitHub

커플링 맵을 그립니다.

이 함수는 패키지의 graphviz_draw() 함수를 호출하여 rustworkx 패키지의 CouplingMap 객체를 그립니다.

경고

이 함수는 사용자가 제어할 수 있는 문자열(예: 큐비트 객체)이 포함된 파일에 대해 시스템의 Graphviz 도구를 호출합니다. 이 함수는 신뢰할 수 있는 입력에 대해서만 호출하는 것이 좋습니다.

매개변수

method (str) – 사용할 레이아웃 방식. 지원되는 메서드 목록은 graphviz_draw() 관련 문서를 참조하십시오

리턴

커플링 맵을 그립니다.

리턴 유형

PIL.Image

from_full

classmethod from_full(num_qubits, bidirectional=True)

GitHub

N개의 큐비트에 완전히 연결된 커플링 맵을 반환합니다.

리턴 유형

CouplingMap

from_grid

classmethod from_grid(num_rows, num_columns, bidirectional=True)

GitHub

Num_rows x num_column의 그리드에 연결된 큐비트의 커플링 맵을 반환합니다.

리턴 유형

CouplingMap

from_heavy_hex

classmethod from_heavy_hex(distance, bidirectional=True)

GitHub

무거운 육각형 그래프 커플링 맵을 반환합니다.

무거운 육각형 그래프가 설명되어 있습니다:

https://journals.aps.org/prx/abstract/10.1103/PhysRevX.10.011022

매개변수

  • distance (int) – 생성된 무거운 육각 그래프의 코드 거리입니다. 거리 값은 홀수 양의 정수일 수 있습니다. n=5d22d12n = \frac{5d^2 - 2d - 1}{2} 여기서 nn 은 큐비트 수, dddistance 매개변수입니다.
  • bidirectional (bool) – 출력 커플링 그래프의 에지가 양방향인지 여부입니다. 기본값은 다음과 같이 설정되어 있습니다 True

리턴

무거운 육각 커플링 그래프

리턴 유형

CouplingMap

from_heavy_square

classmethod from_heavy_square(distance, bidirectional=True)

GitHub

무거운 사각형 그래프 커플링 맵을 반환합니다.

무거운 사각형 그래프가 설명되어 있습니다:

https://journals.aps.org/prx/abstract/10.1103/PhysRevX.10.011022

매개변수

  • distance (int) – 생성된 무거운 사각형 그래프의 코드 거리입니다. 거리 값은 홀수 양의 정수일 수 있습니다. n=3d22dn = 3d^2 - 2d 여기서 nn 은 큐비트 수, dddistance 매개변수입니다.
  • bidirectional (bool) – 출력 커플링 그래프의 에지가 양방향인지 여부입니다. 기본값은 다음과 같이 설정되어 있습니다 True

리턴

무거운 사각형 커플링 그래프

리턴 유형

CouplingMap

from_hexagonal_lattice

classmethod from_hexagonal_lattice(rows, cols, bidirectional=True)

GitHub

육각형 격자 그래프 커플링 맵을 반환합니다.

매개변수

  • rows (int) – 그래프를 생성할 행의 개수입니다.
  • cols (int) – 그래프를 생성할 열의 개수입니다.
  • bidirectional (bool) – 출력 커플링 그래프의 에지가 양방향인지 여부입니다. 기본값은 다음과 같이 설정되어 있습니다 True

리턴

육각형 격자 결합 그래프

리턴 유형

CouplingMap

from_line

classmethod from_line(num_qubits, bidirectional=True)

GitHub

한 줄로 연결된 n개의 큐비트의 커플링 맵을 반환합니다.

리턴 유형

CouplingMap

from_ring

classmethod from_ring(num_qubits, bidirectional=True)

GitHub

링의 각 이웃 큐비트에 연결된 n개의 큐비트의 결합 맵을 반환합니다.

리턴 유형

CouplingMap

get_edges

get_edges()

GitHub

커플링 그래프에서 에지 목록을 가져옵니다.

리턴

각 에지는 한 쌍의 물리적 큐비트입니다.

리턴 유형

튜플 (int,int )

is_connected

is_connected()

GitHub

그래프가 연결되었는지 테스트합니다.

연결되면 True를 반환하고, 연결되지 않으면 False를 반환합니다

largest_connected_component

largest_connected_component()

GitHub

가장 크게 연결된 컴포넌트의 큐비트 집합을 반환합니다.

make_symmetric

make_symmetric()

GitHub

단방향 에지를 양방향으로 변환합니다.

neighbors

neighbors(physical_qubit)

GitHub

물리적 큐비트의 가장 가까운 이웃을 반환합니다.

즉, 에지 방향으로 한 홉만 이동하면 이웃에 도달할 수 있어야 합니다.

reduce

reduce(mapping, check_if_connected=True)

GitHub

매핑에서 선택한 큐비트의 하위 그래프에 해당하는 축소된 커플링 맵을 반환합니다.

매개변수

  • mapping (list) – 감소된 큐비트를 디바이스 큐비트에 매핑합니다.
  • check_if_connected (bool) – true이면 축소된 커플링 맵이 연결되어 있는지 확인합니다.

리턴

선택한 큐비트에 대한 감소된 커플링_맵입니다.

리턴 유형

CouplingMap

레이즈

CouplingError – 축소된 결합 맵은 반드시 연결되어 있어야 합니다.

shortest_undirected_path

shortest_undirected_path(physical_qubit1, physical_qubit2)

GitHub

physical_qubit1 와 physical_qubit2 사이의 최단 직접 경로를 반환합니다.

매개변수

  • physical_qubit1 (int) – 물리적 큐비트
  • physical_qubit2 (int) – 또 다른 물리적 큐비트

리턴

가장 짧은 직접 경로

리턴 유형

목록

레이즈

CouplingError – physical_qubit1 와 physical_qubit2 사이에 경로가 없을 때.

size

size()

GitHub

이 그래프에서 물리적 큐비트 수를 반환합니다.

이 페이지가 도움이 되었습니까?
GitHub에서 버그, 오타를 보고하거나 컨텐츠를 요청하십시오.