CouplingMap
class qiskit.transpiler.CouplingMap(couplinglist=None, description=None)
베이스: 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)
커플링 그래프에 방향 에지를 추가합니다.
해당 에지가 이미 결합 그래프에 존재하는 경우, 이 작업은 아무 작업도 수행하지 않습니다.
src (int): 소스 물리 큐비트 dst (int): 대상 물리 큐비트
add_physical_qubit
add_physical_qubit(physical_qubit)
커플링 그래프에 물리적 큐비트를 노드로 추가합니다.
물리_큐비트 (int): 물리적 큐비트를 나타내는 정수입니다.
레이즈
CouplingError – 중복된 큐비트를 추가하려고 할 경우
compute_distance_matrix
compute_distance_matrix()
노드 쌍에 대한 전체 거리 행렬을 계산합니다.
거리 맵 self._dist_matrix 은 모든_쌍_최단_경로_길이를 사용하여 그래프에서 계산됩니다. 이는 일반적으로 내부적으로 distance_matrix 어트리뷰트 또는 distance() 메서드를 통해 내부적으로 처리되지만, 이러한 메서드 외부에서 거리 행렬에 액세스하거나 미리 생성하려는 경우 호출할 수 있습니다.
connected_components
connected_components()
를 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)
physical_qubit1 와 physical_qubit2 사이의 직진 거리를 반환합니다.
매개변수
리턴
직접 연결되지 않은 거리
리턴 유형
레이즈
CouplingError – CouplingMap 에 큐비트가 존재하지 않는다면
draw
draw(method='neato')
커플링 맵을 그립니다.
이 함수는 패키지의 graphviz_draw() 함수를 호출하여 rustworkx 패키지의 CouplingMap 객체를 그립니다.
이 함수는 사용자가 제어할 수 있는 문자열(예: 큐비트 객체)이 포함된 파일에 대해 시스템의 Graphviz 도구를 호출합니다. 이 함수는 신뢰할 수 있는 입력에 대해서만 호출하는 것이 좋습니다.
매개변수
method (str) – 사용할 레이아웃 방법. 지원되는 메서드 graphviz_draw() 목록은 관련 문서를 참조하십시오
리턴
커플링 맵을 그립니다.
리턴 유형
PIL.Image
from_full
from_grid
classmethod from_grid(num_rows, num_columns, bidirectional=True)
Num_rows x num_column의 그리드에 연결된 큐비트의 커플링 맵을 반환합니다.
리턴 유형
from_heavy_hex
classmethod from_heavy_hex(distance, bidirectional=True)
무거운 육각형 그래프 커플링 맵을 반환합니다.
무거운 육각형 그래프가 설명되어 있습니다:
https://journals.aps.org/prx/abstract/10.1103/PhysRevX.10.011022
매개변수
- distance (int) – 생성된 헤비 헥스 그래프의 코드 거리. 거리 값은 임의의 홀수 양의 정수일 수 있습니다. 이 거리는 큐비트 수와 다음과 같은 관계에 있습니다: 여기서 는 큐비트 수이고, 는
distance매개변수입니다. - bidirectional (bool) – 출력 결합 그래프의 간선이 양방향인지 여부. 기본적으로 이 설정은
True
리턴
무거운 육각 커플링 그래프
리턴 유형
from_heavy_square
classmethod from_heavy_square(distance, bidirectional=True)
무거운 사각형 그래프 커플링 맵을 반환합니다.
무거운 사각형 그래프가 설명되어 있습니다:
https://journals.aps.org/prx/abstract/10.1103/PhysRevX.10.011022
매개변수
- distance (int) – 생성된 헤비 스퀘어 그래프의 코드 거리. 거리 값은 임의의 홀수 양의 정수일 수 있습니다. 이 거리는 큐비트 수와 다음과 같은 관계에 있습니다: 여기서 는 큐비트 수이고, 는
distance매개변수입니다. - bidirectional (bool) – 출력 결합 그래프의 간선이 양방향인지 여부. 기본적으로 이 설정은
True
리턴
무거운 사각형 커플링 그래프
리턴 유형
from_hexagonal_lattice
classmethod from_hexagonal_lattice(rows, cols, bidirectional=True)
육각형 격자 그래프 커플링 맵을 반환합니다.
매개변수
- rows (int) – 그래프를 생성할 때 사용할 행의 수.
- cols (int) – 그래프를 생성할 때 사용할 열의 수.
- bidirectional (bool) – 출력 결합 그래프의 간선이 양방향인지 여부. 기본적으로 이 설정은
True
리턴
육각형 격자 결합 그래프
리턴 유형
from_line
from_ring
classmethod from_ring(num_qubits, bidirectional=True)
링의 각 이웃 큐비트에 연결된 n개의 큐비트의 결합 맵을 반환합니다.
리턴 유형
get_edges
is_connected
largest_connected_component
make_symmetric
neighbors
reduce
reduce(mapping, check_if_connected=True)
매핑에서 선택한 큐비트의 하위 그래프에 해당하는 축소된 커플링 맵을 반환합니다.
매개변수
- mapping (list) – 축소된 큐비트를 장치 큐비트로 매핑하는 것.
- check_if_connected (bool) – : True인 경우, 축소된 결합 매핑이 연결되어 있는지 확인합니다.
리턴
선택한 큐비트에 대한 감소된 커플링_맵입니다.
리턴 유형
레이즈
CouplingError – 축소된 결합 맵은 반드시 연결되어 있어야 합니다.
shortest_undirected_path
shortest_undirected_path(physical_qubit1, physical_qubit2)
physical_qubit1 와 physical_qubit2 사이의 최단 직접 경로를 반환합니다.
매개변수
리턴
가장 짧은 직접 경로
리턴 유형
목록
레이즈
CouplingError – physical_qubit1 와 physical_qubit2 사이에 경로가 없을 때.