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_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 사이에 경로가 없을 때.