PhasedQubitSparsePauli
class qiskit.quantum_info.PhasedQubitSparsePauli(data, /, num_qubits=None)
베이스: object
큐비트-스파스 형식으로 저장된 폴리 연산자입니다.
표현
폴리 연산자는 단일 큐비트 폴리 연산자 와 위상 지수라고 하는 정수 의 텐서 곱입니다. 의 내부 표현은 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개의 큐비트에 작용하는 연산자를 구축합니다.
>>> 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_labelidentity
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.