Pauli
class qiskit.quantum_info.Pauli(data=None)
베이스: BasePauli
N-쿼비트 폴리 연산자.
이 클래스는 전체 -qubit Pauli 그룹에서 연산자를 나타냅니다
여기서 및 은 단일 큐비트 폴리 행렬입니다:
초기화
폴리 오브젝트는 여러 가지 방법으로 초기화할 수 있습니다:
Pauli(obj)여기서
obj는 폴리 문자열,Pauli또는ScalarOp연산자 또는 폴리 게이트 또는 폴리 게이트만 포함된QuantumCircuit입니다.
Pauli((z, x, phase))여기서
z및x은 부울numpy.ndarrays이고phase은 정수[0, 1, 2, 3]입니다.
Pauli((z, x))사소한 단계가 있는
Pauli((z, x, 0))에 해당합니다.
스트링 표시
-쿼비트 폴리는 ['I', 'X', 'Y', 'Z'] 의 문자로 구성된 문자열과 선택적으로 ['', '-i', '-', 'i'] 의 위상 계수로 표현할 수 있습니다. 예: 'XYZ' 또는 '-iZIZ'.
문자열 표현에서 qubit-0 은 가장 오른쪽에 있는 폴리 문자에 해당하고, qubit- 은 가장 왼쪽에 있는 폴리 문자에 해당합니다. 예를 들어 'XYZ' 은 을 'Z' 은 qubit-0, 'Y' 은 qubit-1, 'X' 은 qubit-2 으로 나타냅니다.
문자열 표현은 클래스 초기화(Pauli('-iXYZ'))를 사용하여 Pauli 로 변환할 수 있습니다. Pauli 객체는 다시 문자열 표현으로 변환할 수 있습니다 to_label() 메서드 또는 str(pauli) 를 사용하여 다시 문자열 표현으로 변환할 수 있습니다.
str 을 사용하여 Pauli 을 문자열로 변환하면 많은 수의 큐비트에 대해 반환된 문자열이 잘려나가고 to_label() 은 잘리지 않은 전체 문자열을 반환합니다. 기본 잘라내기 길이는 50자입니다. 기본값은 __truncate__ 속성을 정수 값으로 설정하여 변경할 수 있습니다. 0 로 설정하면 잘림이 수행되지 않습니다.
배열 표현
-쿼비트 폴리의 내부 데이터 구조는 두 개의 길이 부울 벡터 , , 그리고 폴리 연산자를 정의하는 정수 입니다
-번째 큐비트는 및 배열의 -번째 항목에 해당합니다
여기서 z[k] = P.z[k], x[k] = P.x[k] .
및 배열은 다음을 사용하여 액세스하고 업데이트할 수 있습니다 z 및 x 속성을 사용하여 액세스하고 업데이트할 수 있습니다. 위상 정수는 을 사용하여 액세스하고 업데이트할 수 있습니다 phase 속성을 사용하여 액세스하고 업데이트할 수 있습니다.
매트릭스 연산자 표현
폴리는 Operator 로 변환하거나 to_operator() 메서드를 사용하여 밀도 또는 희소 복소 행렬로 변환할 수 있습니다 to_matrix() 메서드를 사용합니다.
데이터 액세스
개별 큐비트 폴리스는 폴리스의 하위 집합을 선택하기 위해 정수, 목록 또는 슬라이스를 허용하는 [] 연산자를 사용하여 액세스하고 업데이트할 수 있습니다. 폴리의 하위 집합을 선택하면 현재 폴리의 위상이 삭제된다는 점에 유의하세요.
예를 들면 다음과 같습니다
from qiskit.quantum_info import Pauli
P = Pauli('-iXYZ')
print('P[0] =', repr(P[0]))
print('P[1] =', repr(P[1]))
print('P[2] =', repr(P[2]))
print('P[:] =', repr(P[:]))
print('P[::-1] =', repr(P[::-1]))폴리를 초기화합니다.
심플렉틱 배열 입력 데이터를 사용할 때는 z와 x 인수를 모두 제공해야 하지만 첫 번째(z) 인수는 문자열 레이블, 폴리 연산자 또는 ScalarOp 입력 데이터에 사용할 수 있습니다.
매개변수
data (str ortuple orPauli orScalarOp) – 폴리에 대한 입력 데이터입니다. 입력이 튜플인 경우 (z, x) 또는 (z, x, phase) 형식이어야 하며, 여기서 z 및 x 은 부울 Numpy 배열, phase는 의 정수여야 합니다. 입력이 문자열인 경우 phase와 Pauli 문자열의 연결(예: 'XYZ', '-iZIZ')이어야 합니다 여기서 위상 문자열은 ['+', '-', ''], ['1', ''], ['i', 'j', ''] 의 최대 세 문자를 순서대로 조합한 것입니다(예: ''), '-1j' 폴리 문자열은 'I', 'X', 'Y' 또는 'Z'(예: 'Z', 'XIYY') 중 하나 이상의 문자로 구성됩니다.
레이즈
QiskitError – 입력 배열의 형상이 유효하지 않은 경우.
속성
dim
튜플(입력_셰이프, 출력_셰이프)을 반환합니다.
name
작업 유형에 대한 고유 문자열 식별자입니다.
num_clbits
클래식 비트 수입니다.
num_qubits
N-큐비트 연산자인 경우 큐비트 수를 반환하고, 그렇지 않으면 None을 반환합니다.
phase
폴리에 대한 그룹 위상 지수를 반환합니다.
qargs
연산자에 대한 qarg를 반환합니다.
settings
설정을 반환합니다.
x
폴리에 대한 x 벡터입니다.
z
폴리에 대한 z 벡터입니다.
메소드
adjoint
anticommutes
anticommutes(other, qargs=None)
다른 폴리가 자신과 함께 출퇴근하면 True를 반환합니다.
매개변수
리턴
폴리가 출퇴근하지 않는 경우 참이고, 출퇴근하는 경우 거짓입니다.
리턴 유형
apply_layout
apply_layout(layout, num_qubits=None)
여기에 트랜스파일러 레이아웃 적용 Pauli
매개변수
- layout (TranspileLayout |list[int] | None) – A
TranspileLayout정수 목록 또는 없음입니다. 레이아웃과 num_qubits가 모두 0이면 연산자의 복사본이 반환됩니다. - num_qubits (int | None) – 연산자를 확장할 큐비트 수입니다. 제공되지 않은 경우
layout가TranspileLayout이면 기본적으로 트랜스파일러 출력 회로 큐비트 수가 사용됩니다.layout이 정수의 목록인 경우 지정된 순열은 확장 없이 적용됩니다. 레이아웃이 없음인 경우 연산자는 지정된 큐비트 수만큼 확장됩니다.
리턴
새로운 Pauli 제공된 레이아웃이 적용된
리턴 유형
commutes
commutes(other, qargs=None)
폴리가 다른 사람과 함께 출퇴근하면 True를 반환합니다.
매개변수
리턴
폴리가 출퇴근하면 참이고, 출퇴근을 반대하면 거짓입니다.
리턴 유형
compose
compose(other, qargs=None, front=False, inplace=False)
다른 폴리를 사용하여 연산자 구성을 반환합니다.
매개변수
- other (Pauli) – 폴리 객체입니다.
- qargs (list or None) – 내적 연산을 적용할 큐비트(기본값: None).
- front (bool) – True이면 왼쪽 곱셈 대신 오른쪽 연산자 곱셈을 사용하여 구성합니다. [기본값: False].
- inplace (bool) – True인 경우 제자리에서 업데이트합니다(기본값: False).
리턴
작곡가 폴리.
리턴 유형
레이즈
QiskitError – 다른 항이 연산자로 변환될 수 없거나, 지정된 하위 시스템에 대해 차원이 호환되지 않는 경우.
conjugate
copy
delete
delete(qubits)
큐비트가 삭제된 폴리를 반환합니다.
매개변수
qubits (int orlist) – 큐비트를 삭제할 수 있습니다.
리턴
지정된 큐비트가 제거된 결과 폴리를 반환합니다.
리턴 유형
레이즈
QiskitError – ind가 배열 크기나 큐비트 수의 범위를 벗어난 경우.
dot
dot(other, qargs=None, inplace=False)
오른쪽 곱하기 연산자 self * other를 반환합니다.
매개변수
- other (Pauli) – 연산자 객체입니다.
- qargs (list or None) – 내적 연산을 적용할 큐비트(기본값: None).
- inplace (bool) – True인 경우 제자리에서 업데이트합니다(기본값: False).
리턴
운영자 본인 * 기타.
리턴 유형
equiv
equiv(other)
폴리가 그룹 단계까지 동등하면 True를 반환합니다.
매개변수
other (Pauli) – 연산자 객체입니다.
리턴
폴리가 조별 예선까지 동등하다면 사실입니다.
리턴 유형
evolve
evolve(other, qargs=None, frame='h')
클리포드에 의한 파울리의 하이젠베르크(기본값) 또는 슈뢰딩거 그림 진화를 수행하여 진화한 파울리를 반환합니다.
슈뢰딩거 그림 진화는 매개변수 frame='s' 를 전달하여 선택할 수 있습니다. 이 옵션을 사용하면 더 빠르게 계산할 수 있습니다.
하이젠베르크 그림은 폴리를 로 진화시킵니다.
슈뢰딩거 그림은 폴리를 로 진화시킵니다.
매개변수
- other (Pauli orClifford orQuantumCircuit) – 진화를 위한 클리포드 연산자.
- qargs (list) – 클리포드를 적용할 큐비트 목록입니다.
- frame (string) –
'h'하이젠베르크(기본값) 또는 슈뢰딩거 프레임워크의 경우's'.
리턴
폴리 (하이젠베르크 그림) 또는 폴리 (슈뢰딩거 그림).
리턴 유형
레이즈
QiskitError – 큐비트와 qarg의 클리포드 수가 일치하지 않는 경우.
expand
expand(other)
다른 폴리를 사용하여 역순 텐서 곱을 반환합니다.
매개변수
other (Pauli) – 폴리 객체입니다.
리턴
텐서 곱 , 여기서
는 현재 폴리이고 는 다른 폴리입니다.
리턴 유형
input_dims
insert
insert(qubits, value)
특정 큐비트 값에 폴리를 삽입합니다.
매개변수
리턴
를 입력하면 항목이 삽입된 결과 폴리를 확인할 수 있습니다.
리턴 유형
레이즈
QiskitError – 삽입 큐비트가 유효하지 않은 경우.
inverse
output_dims
power
power(n)
연산자를 n번 자기 자신과 합성한 결과를 반환합니다.
매개변수
n (int) – 셀프 작성 횟수 ( n>0 ).
리턴
n-회 구성 연산자입니다.
리턴 유형
레이즈
QiskitError – 연산자의 입력 및 출력 차원이 같지 않거나, 지수가 양의 정수가 아닌 경우.
reshape
reshape(input_dims=None, output_dims=None, num_qubits=None)
입력 및 출력 하위 시스템 치수가 재구성된 얕은 복사본을 반환합니다.
매개변수
- input_dims (None or tuple) – 새로운 하위 시스템 입력 차원. None인 경우 원래 입력이 희미하게 유지됩니다. [기본값: None].
- output_dims (None or tuple) – 새로운 하위 시스템 출력 차원. None인 경우 원래 출력이 흐려집니다. [기본값: None].
- num_qubits (None or int) – n-큐비트 연산자로 재형성 [기본값입니다: 없음].
리턴
는 입력 및 출력 치수가 재형성된 자기를 반환합니다.
리턴 유형
BaseOperator
레이즈
QiskitError – 모든 하위 시스템의 입력 차원 또는 출력 차원의 합이 일정하지 않은 경우.
set_truncation
classmethod set_truncation(val)
잘림 현상 발생 전까지 표시할 파울리 문자 수를 설정합니다.
매개변수
val (int) – 문자 수입니다.
잘라내기 값을 0으로 설정하면 잘라내기가 비활성화됩니다.
tensor
tensor(other)
텐서 곱을 다른 폴리와 함께 반환합니다.
매개변수
other (Pauli) – 폴리 객체입니다.
리턴
**텐서 제품 , 여기서 **
는 현재 폴리이고 는 다른 폴리입니다.
리턴 유형
텐서 곱은 ^ 이진 연산자를 사용하여 구할 수 있습니다. 따라서 a.tensor(b) 은 a ^ b 과 동일합니다.
to_instruction
to_label
to_label()
폴리를 문자열 레이블로 변환합니다.
to_label과 의 차이점은, 후자의 경우 큐비트 수가 __str__() 많을 때 출력이 잘린다는 점입니다.
리턴
폴리 문자열 레이블을 사용합니다.
리턴 유형
to_matrix
to_matrix(sparse=False)
Numpy 배열 또는 희소 CSR 행렬로 변환합니다.
매개변수
sparse (bool) – true이면 희소 CSR 행렬을 반환하고, 그렇지 않으면 고밀도 Numpy 배열을 반환합니다(기본값: False).
리턴
폴리 매트릭스.
리턴 유형