레이아웃
class qiskit.transpiler.Layout(input_dict=None)
베이스: object
레이아웃을 나타내는 양방향 딕셔너리.
가상 큐비트를 물리적 큐비트에 매핑하여 주관적 사전에서 레이아웃을 구성합니다
메소드
add
add(virtual_bit, physical_bit=None)
비트와 물리적_비트 사이에 맵 요소를 추가합니다. 물리적_bit가 정의되지 않은 경우 비트는 새로운 물리적 비트에 매핑됩니다.
매개변수
- virtual_bit (tuple) – A (qu)bit. 예: ( QuantumRegister(3, 'qr'), 2).
- physical_bit (int) – 물리적인 비트입니다. (예:
add_register
add_register(reg)
마지막에 레그의 각 비트를 매핑하는 물리적_쿼비트를 추가합니다.
매개변수
reg (Register) – (쿼)비트 레지스터. 예를 들어, QuantumRegister(3, ‘qr’).
combine_into_edge_map
combine_into_edge_map(another_layout)
Self와 다른_layout을 "엣지 맵"으로 결합합니다.
예를 들어,
self another_layout resulting edge map
qr_1 -> 0 0 <- q_2 qr_1 -> q_2
qr_2 -> 2 2 <- q_1 qr_2 -> q_1
qr_3 -> 3 3 <- q_0 qr_3 -> q_0에지 맵은 예를 들어 compose를 통해 지연을 작성하는 데 사용됩니다.
매개변수
another_layout (Layout) – 결합할 다른 레이아웃입니다.
리턴
"엣지 맵".
리턴 유형
레이즈
LayoutError – another_layout는 self보다 클 수는 있지만, 작을 수는 없습니다. 그렇지 않으면, 인상합니다.
compose
compose(other, qubits)
이 레이아웃을 다른 레이아웃과 함께 구성합니다.
이 레이아웃이 P 큐비트에서 Q 큐비트의 위치로의 매핑을 나타내고, 다른 레이아웃이 Q 큐비트에서 R 큐비트의 위치로의 매핑을 나타낸다면, 구성된 레이아웃은 P 큐비트에서 R 큐비트의 위치로의 매핑을 나타냅니다.
매개변수
- other (Layout) – 기존
Layout을 사용하여Layout와 함께. - qubits (list[Qubit]) – 가
other정의된 대상들의Qubit목록으로, 큐비트의other위치와 실제 큐비트 간의 대응 관계를 확립하는 데 사용됩니다.
리턴
other 레이아웃으로 구성된 이 레이아웃을 나타내는 새 레이아웃 객체입니다.
리턴 유형
copy
from_dict
from_dict(input_dict)
사전에서 레이아웃을 채웁니다.
사전은 가상 큐비트(튜플)와 물리적 큐비트(인트) 사이의 바이젝티브 매핑이어야 합니다.
매개변수
input_dict (dict) –
예:
{(QuantumRegister(3, 'qr'), 0): 0,
(QuantumRegister(3, 'qr'), 1): 1,
(QuantumRegister(3, 'qr'), 2): 2}
Can be written more concisely as follows:
* virtual to physical::
{qr[0]: 0,
qr[1]: 1,
qr[2]: 2}
* physical to virtual::
{0: qr[0],
1: qr[1],
2: qr[2]}from_intlist
static from_intlist(int_list, *qregs)
정수 목록을 가상 큐비트(목록의 인덱스)를 물리적 큐비트(목록 값)에 매핑하는 레이아웃으로 변환합니다.
매개변수
- int_list (list) – 정수 목록입니다.
- *qregs ( QuantumRegisters ) - 레이아웃을 적용할 퀀텀 레지스터입니다.
리턴
해당 레이아웃 객체입니다.
리턴 유형
레이즈
LayoutError – 입력 레이아웃이 올바르지 않습니다.
from_qubit_list
static from_qubit_list(qubit_list, *qregs)
가상 큐비트, 큐비트 또는 없음이 포함된 목록에서 레이아웃을 채웁니다.
매개변수
- qubit_list (list) –g.: [ [QR0], 없음, [QR2], [QR3] ]
- *qregs ( QuantumRegisters ) - 레이아웃을 적용할 퀀텀 레지스터입니다.
리턴
해당 레이아웃 객체
리턴 유형
레이즈
LayoutError – 요소가 Qubit이나 None이 아닌 경우
generate_trivial_layout
static generate_trivial_layout(*regs)
레지스터와 큐비트가 있는 간단한("일대일") 레이아웃을 레지스터에 생성합니다.
매개변수
* regs* (레지스터, 큐비트* ) - 레이아웃에 포함할 레지스터와 큐비트입니다.
리턴
모든 규정이 주어진 순서대로 나열된 레이아웃입니다.
리턴 유형
get_physical_bits
get_registers
get_registers()
레이아웃 [QuantumRegister(2, ‘qr0’ ), QuantumRegister(3, ‘qr1’ )] 의 레지스터를 반환합니다. :returns: 레이아웃의 레지스터 세트 :rtype: Set
get_virtual_bits
inverse
inverse(source_qubits, target_qubits)
이 레이아웃의 역을 구합니다.
이는 레이아웃이 주관적 매핑일 때 가능하지만 입력 큐비트와 출력 큐비트가 다를 수 있습니다(특히 이 레이아웃은 확장된 안실라 가상 큐비트에서 물리적 큐비트로의 매핑일 수 있습니다). 따라서 이 레이아웃이 P 큐비트에서 Q 큐비트의 위치로의 매핑을 나타낸다면, 역 레이아웃은 Q 큐비트에서 P 큐비트의 위치로의 매핑을 나타냅니다.
매개변수
- source_qubits (list[Qubit]) – 레이아웃의 도메인을 나타내는 객체 목록입니다
Qubit. - target_qubits (list[Qubit]) – 레이아웃의 이미지를 나타내는 객체들의
Qubit목록입니다.
리턴
이 레이아웃의 역을 나타내는 새 레이아웃 객체입니다.
order_based_on_type
reorder_bits
reorder_bits(bits)
비트의 정렬된 목록이 주어지면 이 레이아웃에 따라 비트의 순서를 다시 지정합니다.
비트 목록은 이 레이아웃의 가상 비트와 정확히 일치해야 합니다.
매개변수
bits (list[Bit]) – 순서를 다시 정해야 할 부분들.
리턴
주문한 비트.
리턴 유형
목록
swap
to_permutation
to_permutation(qubits)
이 레이아웃에 해당하는 순열을 생성합니다.
이는 레이아웃이 동일한 소스 큐비트와 타깃 큐비트를 가진 바이젝티브 매핑일 때 가능합니다(예를 들어, 'final_layout'은 물리적 회로 큐비트의 순열에 해당). 이 레이아웃이 큐비트에서 새로운 위치로의 매핑인 경우, 결과 순열은 순열을 적용한 후 어떤 큐비트가 0, 1, 2 등의 위치를 차지하는지 설명합니다.
예를 들어 큐비트 목록이 [qr_0, qr_1, qr_2] 이고 레이아웃이 qr_0 에서 2 로, qr_1 에서 0 로, qr_2 에서 1 로 매핑된다고 가정해 보겠습니다. qubits 에서 0 을 2 으로, 1 을 0 으로, 2 을 1 으로 매핑하며, 해당 순열은 [1, 2, 0] 입니다.
매개변수