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)mnAi(n)P = (-i)^m \bigotimes_n A^{(n)}_i 와 위상 지수라고 하는 정수 mm 의 텐서 곱입니다. 의 내부 표현은 PhasedQubitSparsePauli 는 비아이디 단일 큐비트 폴리 연산자만 저장합니다.

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

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


생성

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

방법
요약
from_label()밀도가 높은 문자열 레이블을 PhasedQubitSparsePauli.
from_sparse_label()위상의 튜플, 희소 문자열 레이블, 그리고 이들이 적용하는 큐비트로부터 PhasedQubitSparsePauli 를 위상 튜플, 희소 문자열 레이블, 적용되는 큐비트로부터 생성합니다.
from_pauli()하나의 PauliPhasedQubitSparsePauli.
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과 연관됩니다. 이것은 PauliSparsePauliOp.

매개변수

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에서 버그, 오타를 보고하거나 컨텐츠를 요청하십시오.