Skip to main content
IBM Quantum Platform

PhasedQubitSparsePauli

class qiskit.quantum_info.PhasedQubitSparsePauli(data, /, num_qubits=None)

GitHub

베이스: object

큐비트-스파스 형식으로 저장된 폴리 연산자입니다.


표현

Ai(n)∈{I,X,Y,Z}A^{(n)}_i \in \{I, X, Y, Z\} 폴리 연산자는 단일 큐비트 폴리 연산자 P=(−i)m⨂nAi(n)P = (-i)^m \bigotimes_n A^{(n)}_i 와 위상 지수라고 하는 정수 mm 의 텐서 곱입니다. 의 내부 표현은 PhasedQubitSparsePauli 는 비아이디 단일 큐비트 폴리 연산자만 저장합니다.

내부적으로 각 단일 큐비트 폴리 연산자는 숫자 값으로 저장됩니다. 의 문서를 참조하세요 QubitSparsePauli 의 문서를 참조하여 각 폴리와 관련된 숫자 값의 서식에 대한 설명과 함께 paulis 및 indices 어트리뷰트와 관련된 큐비트 인덱스에 대한 설명도 참조하세요.

또한 연산자의 위상은 그룹 위상 지수를 반환하는 phase 속성을 통해 그룹 위상 지수를 반환하며, 이는 동일한 속성의 동작과 일치하는 Pauli.


생성

PhasedQubitSparsePauli 는 여러 생성자를 정의합니다. 기본 생성자는 입력 유형에 따라 보다 구체적인 생성자 중 하나에 위임을 시도합니다. 언제든지 특정 생성자를 사용하여 구성을 더 잘 제어할 수 있습니다.

방법
요약
from_label()밀도가 높은 문자열 레이블을 PhasedQubitSparsePauli.
from_sparse_label()위상의 튜플, 희소 문자열 레이블, 그리고 이들이 적용하는 큐비트로부터 PhasedQubitSparsePauli 를 위상 튜플, 희소 문자열 레이블, 적용되는 큐비트로부터 생성합니다.
from_pauli()하나의 Pauli 를 PhasedQubitSparsePauli.
from_raw_parts()원시 데이터 배열과 위상으로부터 목록을 작성합니다.

__new__

__new__(data, /, num_qubits=None)

의 기본 생성자 QubitSparsePauli.

이는 data 인수의 유형에 따라 명시적 변환 생성자 메서드 중 하나에 위임합니다. num_qubits 이 제공되고 data 유형이 암시하는 생성자가 숫자를 허용하지 않는 경우, 주어진 정수는 입력과 일치해야 합니다.

매개변수

  • 데이터 - 입력의 데이터 유형입니다. 이것은 다른 QubitSparsePauli일 수도 있고, 이 경우 입력이 복사되는 형식이거나 from_label() 또는 from_sparse_label().
  • num_qubits (int|None) – 연산자에 대한 큐비트 수(선택 사항). 대부분의 데이터 입력의 경우, 이를 추론할 수 있으므로 별도로 전달할 필요가 없습니다. 이는 스파스 라벨 형식에서만 필요합니다. 불필요하게 지정된 경우, 입력된 데이터와 일치해야 합니다.

속성

indices

각 비식별 단일 큐비트 용어의 인덱스에 대한 읽기 전용 보기입니다.

인덱스는 항상 정렬된 순서로 표시됩니다.

num_qubits

용어가 정의된 큐비트 수입니다.

paulis

개별 단일 큐비트 용어에 대한 읽기 전용 보기.

배열에서 유효한 값은 Pauli 에 해당하는 값뿐입니다.

phase

위상에 대한 읽기 전용 보기.


메소드

commutes

commutes(other)

Self`가 다른 위상 큐비트 스파스 폴리와 통근하는지 확인합니다.

매개변수

other (PhasedQubitSparsePauli) – 위상 큐비트 희소 폴리를 사용하여 정류 여부를 확인합니다.

compose

compose(other)

다른 컴포지션과의 컴포지션 PhasedQubitSparsePauli.

매개변수

other (PhasedQubitSparsePauli) – 쿼비트 스파스 폴리를 사용하여 작곡할 수 있습니다.

copy

copy()

이 학기 사본을 받아보세요.

from_label

static from_label(label, /)

고밀도 문자열 레이블로 구성합니다.

레이블은 알파벳 시퀀스여야 합니다 'IXYZ'. 레이블은 비트 문자열과 유사하게 해석됩니다. 즉, 가장 오른쪽에 있는 문자는 큐비트 0과 연관됩니다. 이것은 Pauli 및 SparsePauliOp.

매개변수

label (str) – 밀집 레이블.

예제

>>> QubitSparsePauli.from_label("IIIIXZI")
<QubitSparsePauli on 7 qubits: X_2 Z_1>
>>> label = "IYXZI"
>>> pauli = Pauli(label)
>>> assert QubitSparsePauli.from_label(label) == QubitSparsePauli.from_pauli(pauli)

from_pauli

static from_pauli(pauli, /)

를 구성합니다 PhasedQubitSparsePauli 인스턴스를 Pauli 인스턴스를 생성합니다.

매개변수

pauli (Pauli) – 단일 폴리를 변환할 수 있습니다.

예제

>>> label = "iIYXZI"
>>> pauli = Pauli(label)
>>> PhasedQubitSparsePauli.from_pauli(pauli)
<PhasedQubitSparsePauli on 5 qubits: iY_3 X_2 Z_1>
>>> assert PhasedQubitSparsePauli.from_label(label) == PhasedQubitSparsePauli.from_pauli(pauli)

from_raw_parts

static from_raw_parts(num_qubits, paulis, indices, phase=0)

를 구성합니다 PhasedQubitSparsePauli 를 클래스 수준 문서에 설명된 필수 데이터 표현과 일치하는 원시 Numpy 배열로 구성합니다.

각 배열의 데이터는 새롭고 확장 가능한 Rust 공간 할당으로 복사됩니다.

매개변수

  • 숫자_쿼비트 - 연산자가 작동하는 쿼비트 수입니다.
  • 폴리스 - 단일 큐비트 용어 목록입니다. 이것은 dtype이 있는 Numpy 배열이어야 합니다 uint8 (와 호환되는 Pauli).
  • 인덱스 - 각 단일 큐비트 용어가 해당하는 큐비트의 정렬된 목록입니다. 이것은 dtype이 포함된 Numpy 배열이어야 합니다 uint32.
  • 위상 - 연산자의 위상 지수입니다.

예제

100개의 큐비트 중 50개의 큐비트에 작용하는 ZZ 연산자를 구축합니다.

>>> num_qubits = 100
>>> terms = np.array([PhasedQubitSparsePauli.Pauli.Z], dtype=np.uint8)
>>> indices = np.array([50], dtype=np.uint32)
>>> phase = 0
>>> PhasedQubitSparsePauli.from_raw_parts(num_qubits, terms, indices, phase)
<PhasedQubitSparsePauli on 100 qubits: Z_50>

from_sparse_label

static from_sparse_label(sparse_label, num_qubits)

위상 지수에 대한 int의 튜플, 폴리의 문자열, 해당 큐비트의 인덱스로 주어진 스파스 레이블에서 위상 큐비트 스파스 폴리를 구축합니다.

이것은 SparsePauliOp.from_sparse_list().

매개변수

  • sparse_label (tuple[int, str, Sequence[int]]) – 레이블과 각 단일 큐비트 항이 적용되는 큐비트들.
  • num_qubits (int) – 연산자가 작용하는 큐비트의 개수.

예제

간단한 폴리를 구축합니다:

>>> PhasedQubitSparsePauli.from_sparse_label(
...     (0, "ZX", (1, 4)),
...     num_qubits=5,
... )
<PhasedQubitSparsePauli on 5 qubits: X_4 Z_1>

이 메서드는 다음과 같은 동작을 복제할 수 있습니다 from_label()의 동작을 복제할 수 있습니다(튜플의 큐비트 인자 필드가 감소하는 정수로 설정된 경우):

>>> label = "XYXZ"
>>> from_label = PhasedQubitSparsePauli.from_label(label)
>>> from_sparse_label = PhasedQubitSparsePauli.from_sparse_label(
...     (0, label, (3, 2, 1, 0)),
...     num_qubits=4
... )
>>> assert from_label == from_sparse_label

identity

static identity(num_qubits)

주어진 큐비트 수에 대한 ID 연산자를 구합니다.

예제

100개의 큐비트에서 신원을 확인합니다:

>>> QubitSparsePauli.identity(100)
<QubitSparsePauli on 100 qubits: >

to_pauli

to_pauli()

반환 Pauli 를 반환합니다.

to_phased_qubit_sparse_pauli_list

to_phased_qubit_sparse_pauli_list()

이 폴리를 단일 요소로 변환 PhasedQubitSparsePauliList.

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