Skip to main content
IBM Quantum Platform

레이아웃

class qiskit.transpiler.Layout(input_dict=None)

GitHub

베이스: object

레이아웃을 나타내는 양방향 딕셔너리.

가상 큐비트를 물리적 큐비트에 매핑하여 주관적 사전에서 레이아웃을 구성합니다


메소드

add

add(virtual_bit, physical_bit=None)

GitHub

비트와 물리적_비트 사이에 맵 요소를 추가합니다. 물리적_bit가 정의되지 않은 경우 비트는 새로운 물리적 비트에 매핑됩니다.

매개변수

  • virtual_bit (tuple) – A (qu)bit. 예: ( QuantumRegister(3, 'qr'), 2).
  • physical_bit (int) – 물리적인 비트입니다. (예:

add_register

add_register(reg)

GitHub

마지막에 레그의 각 비트를 매핑하는 물리적_쿼비트를 추가합니다.

매개변수

reg (Register) – (쿼)비트 레지스터. 예를 들어, QuantumRegister(3, ‘qr’).

combine_into_edge_map

combine_into_edge_map(another_layout)

GitHub

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) – 결합할 다른 레이아웃입니다.

리턴

"엣지 맵".

리턴 유형

dict

레이즈

LayoutError – another_layout는 self보다 클 수는 있지만, 작을 수는 없습니다. 그렇지 않으면, 인상합니다.

compose

compose(other, qubits)

GitHub

이 레이아웃을 다른 레이아웃과 함께 구성합니다.

이 레이아웃이 P 큐비트에서 Q 큐비트의 위치로의 매핑을 나타내고, 다른 레이아웃이 Q 큐비트에서 R 큐비트의 위치로의 매핑을 나타낸다면, 구성된 레이아웃은 P 큐비트에서 R 큐비트의 위치로의 매핑을 나타냅니다.

매개변수

  • other (Layout) – 기존 Layout 을 사용하여 Layout 와 함께.
  • qubits (list[Qubit]) – 가 other 정의된 대상들의 Qubit 목록으로, 큐비트의 other 위치와 실제 큐비트 간의 대응 관계를 확립하는 데 사용됩니다.

리턴

other 레이아웃으로 구성된 이 레이아웃을 나타내는 새 레이아웃 객체입니다.

리턴 유형

레이아웃

copy

copy()

GitHub

레이아웃 인스턴스의 복사본을 반환합니다.

from_dict

from_dict(input_dict)

GitHub

사전에서 레이아웃을 채웁니다.

사전은 가상 큐비트(튜플)와 물리적 큐비트(인트) 사이의 바이젝티브 매핑이어야 합니다.

매개변수

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)

GitHub

정수 목록을 가상 큐비트(목록의 인덱스)를 물리적 큐비트(목록 값)에 매핑하는 레이아웃으로 변환합니다.

매개변수

  • int_list (list) – 정수 목록입니다.
  • *qregs ( QuantumRegisters ) - 레이아웃을 적용할 퀀텀 레지스터입니다.

리턴

해당 레이아웃 객체입니다.

리턴 유형

레이아웃

레이즈

LayoutError – 입력 레이아웃이 올바르지 않습니다.

from_qubit_list

static from_qubit_list(qubit_list, *qregs)

GitHub

가상 큐비트, 큐비트 또는 없음이 포함된 목록에서 레이아웃을 채웁니다.

매개변수

  • qubit_list (list) –g.: [ [QR0], 없음, [QR2], [QR3] ]
  • *qregs ( QuantumRegisters ) - 레이아웃을 적용할 퀀텀 레지스터입니다.

리턴

해당 레이아웃 객체

리턴 유형

레이아웃

레이즈

LayoutError – 요소가 Qubit이나 None이 아닌 경우

generate_trivial_layout

static generate_trivial_layout(*regs)

GitHub

레지스터와 큐비트가 있는 간단한("일대일") 레이아웃을 레지스터에 생성합니다.

매개변수

* regs* (레지스터, 큐비트* ) - 레이아웃에 포함할 레지스터와 큐비트입니다.

리턴

모든 규정이 주어진 순서대로 나열된 레이아웃입니다.

리턴 유형

레이아웃

get_physical_bits

get_physical_bits()

GitHub

키가 물리 (쿼)비트이고 값이 가상 (쿼)비트인 딕셔너리를 반환합니다.

get_registers

get_registers()

GitHub

레이아웃 [QuantumRegister(2, ‘qr0’ ), QuantumRegister(3, ‘qr1’ )] 의 레지스터를 반환합니다. :returns: 레이아웃의 레지스터 세트 :rtype: Set

get_virtual_bits

get_virtual_bits()

GitHub

키가 가상 (쿼)비트이고 값이 물리 (쿼)비트인 딕셔너리를 반환합니다.

inverse

inverse(source_qubits, target_qubits)

GitHub

이 레이아웃의 역을 구합니다.

이는 레이아웃이 주관적 매핑일 때 가능하지만 입력 큐비트와 출력 큐비트가 다를 수 있습니다(특히 이 레이아웃은 확장된 안실라 가상 큐비트에서 물리적 큐비트로의 매핑일 수 있습니다). 따라서 이 레이아웃이 P 큐비트에서 Q 큐비트의 위치로의 매핑을 나타낸다면, 역 레이아웃은 Q 큐비트에서 P 큐비트의 위치로의 매핑을 나타냅니다.

매개변수

  • source_qubits (list[Qubit]) – 레이아웃의 도메인을 나타내는 객체 목록입니다 Qubit .
  • target_qubits (list[Qubit]) – 레이아웃의 이미지를 나타내는 객체들의 Qubit 목록입니다.

리턴

이 레이아웃의 역을 나타내는 새 레이아웃 객체입니다.

order_based_on_type

static order_based_on_type(value1, value2)

GitHub

는 유형에 따라 물리적/가상 중 어느 것을 결정합니다. 반품(가상, 실제)

reorder_bits

reorder_bits(bits)

GitHub

비트의 정렬된 목록이 주어지면 이 레이아웃에 따라 비트의 순서를 다시 지정합니다.

비트 목록은 이 레이아웃의 가상 비트와 정확히 일치해야 합니다.

매개변수

bits (list[Bit]) – 순서를 다시 정해야 할 부분들.

리턴

주문한 비트.

리턴 유형

목록

swap

swap(left, right)

GitHub

지도를 왼쪽과 오른쪽으로 바꿉니다.

매개변수

  • left (tuple orint) – 오른쪽으로 바꿀 항목입니다.
  • right (tuple orint) – 왼쪽으로 바꿀 항목입니다.

레이즈

LayoutError – 왼쪽과 오른쪽의 유형이 다를 경우.

to_permutation

to_permutation(qubits)

GitHub

이 레이아웃에 해당하는 순열을 생성합니다.

이는 레이아웃이 동일한 소스 큐비트와 타깃 큐비트를 가진 바이젝티브 매핑일 때 가능합니다(예를 들어, 'final_layout'은 물리적 회로 큐비트의 순열에 해당). 이 레이아웃이 큐비트에서 새로운 위치로의 매핑인 경우, 결과 순열은 순열을 적용한 후 어떤 큐비트가 0, 1, 2 등의 위치를 차지하는지 설명합니다.

예를 들어 큐비트 목록이 [qr_0, qr_1, qr_2] 이고 레이아웃이 qr_0 에서 2 로, qr_1 에서 0 로, qr_2 에서 1 로 매핑된다고 가정해 보겠습니다. qubits 에서 02 으로, 10 으로, 21 으로 매핑하며, 해당 순열은 [1, 2, 0] 입니다.

매개변수

qubits (list[Qubit])

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