봄의 정원
class qiskit.quantum_info.Stinespring(data, input_dims=None, output_dims=None)
베이스: QuantumChannel
양자 채널의 스타인스프링 표현.
양자 채널 의 스타인스프링 표현은 직사각형 행렬 로서, a의 진화는 DensityMatrix 의 진화는 다음과 같이 주어집니다
여기서 는 서브시스템 2에 대한 것입니다 partial_trace() .
일반 연산자 맵 은 두 개의 행렬 , 로 주어지는 일반화된 스타인스프링 표현을 사용하여 다음과 같이 작성할 수도 있습니다
자세한 내용은 참조 [1을] 참조하세요.
참조
- C.J. Wood, J.D. 비아몬테, D.G. Cory, 텐서 네트워크 및 개방형 양자 시스템을 위한 그래픽 미적분, Quant. Inf. Comp. 15, 0579-0811 (2015). arXiv:1111.6950 [quant-ph]
양자 채널 스타인스프링 연산자를 초기화합니다.
매개변수
- data (QuantumCircuit |circuit.instruction.Instruction | BaseOperator | np.ndarray) – 슈퍼연산자를 초기화하는 데 필요한 데이터.
- input_dims (int |tuple | None) – 입력 하위 시스템의 치수.
- output_dims (int |tuple | None) – 출력 하위 시스템의 치수.
레이즈
QiskitError – 입력 데이터가 Kraus 행렬의 목록으로 초기화될 수 없는 경우.
추가 정보:
입력 또는 출력 차원이 없음인 경우 입력 데이터에서 자동으로 결정됩니다. 출력 치수를 자동으로 결정할 수 없는 경우 스타인스프링 연산자가 실패할 수 있습니다.
속성
atol
기본값: 1e-08
data
dim
튜플(입력_셰이프, 출력_셰이프)을 반환합니다.
num_qubits
N-큐비트 연산자인 경우 큐비트 수를 반환하고, 그렇지 않으면 None을 반환합니다.
qargs
연산자에 대한 qarg를 반환합니다.
rtol
기본값: 1e-05
settings
설정을 반환합니다.
메소드
adjoint
adjoint()
인접한 양자 채널을 반환합니다.
이것은 행렬 헤르미티아 공액과 동일합니다 SuperOp 표현, 즉 채널 의 경우 인접 채널 의 SuperOp 은 입니다.
리턴 유형
compose
compose(other, qargs=None, front=False)
연산자 컴포지션을 다른 스타인스프링으로 반환합니다.
매개변수
- other (Stinespring) – 스타인스프링 오브젝트입니다.
- qargs (list or None) – 다른 연산을 적용할 하위 시스템 위치 목록. 모든 하위 시스템에 ‘None’이 적용되는 경우 (기본값: None).
- front (bool) – True인 경우, 왼쪽 곱셈 대신 오른쪽 연산자 곱셈을 사용하여 합성합니다 [default: False].
리턴
구성된 스타인스프링입니다.
리턴 유형
레이즈
QiskitError – 다른 항이 연산자로 변환될 수 없거나, 지정된 하위 시스템에 대해 차원이 호환되지 않는 경우.
conjugate
conjugate()
공액 양자 채널을 반환합니다.
이것은 행렬 복소 접합체와 동일합니다 SuperOp 표현, 즉 채널 의 경우 공액 채널 의 SuperOp 은 입니다.
copy
dot
dot(other, qargs=None)
오른쪽 곱하기 연산자 self * other를 반환합니다.
매개변수
- other (Operator) – 연산자 객체입니다.
- qargs (list or None) – 다른 연산을 적용할 하위 시스템 위치 목록. 모든 하위 시스템에 ‘None’이 적용되는 경우 (기본값: None).
리턴
오른쪽 행렬 곱하기 연산자.
리턴 유형
점의 곱은 @ 이진 연산자를 사용하여 구할 수 있습니다. 따라서 a.dot(b) 은 a @ b 과 동일합니다.
expand
expand(other)
다른 스타인스프링으로 역순 텐서 곱을 반환합니다.
매개변수
other (Stinespring) – 스타인스프링 오브젝트입니다.
리턴
텐서 곱 , 여기서
은 현재 스타인스프링이고 은 다른 스타인스프링입니다.
리턴 유형
input_dims
is_cp
is_cptp
is_tp
is_unitary
output_dims
power
power(n)
양자 채널의 파워를 반환합니다.
매개변수
n (float) – 지수.
리턴
채널 .
리턴 유형
레이즈
QiskitError – SuperOp 의 입력 및 출력 차원이 서로 다를 경우.
양수가 아니거나 정수가 아닌 지수의 경우 거듭제곱은 표현의 행렬 거듭제곱으로 정의됩니다 SuperOp 즉, 채널 의 경우 파워가 있는 채널 의 SuperOp 은 입니다.
reshape
reshape(input_dims=None, output_dims=None, num_qubits=None)
입력 및 출력 하위 시스템 치수가 재구성된 얕은 복사본을 반환합니다.
매개변수
- input_dims (None or tuple) – 새로운 하위 시스템 입력 치수. None인 경우, 원래 입력 차원이 유지됩니다 [Default: None].
- output_dims (None or tuple) – 새로운 하위 시스템 출력 치수. None인 경우, 원래의 출력 밝기가 유지됩니다 [Default: None].
- num_qubits (None or int) – 를 N-큐비트 연산자로 변환한다 [Default: None].
리턴
는 입력 및 출력 치수가 재형성된 자기를 반환합니다.
리턴 유형
BaseOperator
레이즈
QiskitError – 모든 하위 시스템의 입력 차원 또는 출력 차원의 합이 일정하지 않은 경우.
tensor
tensor(other)
텐서 곱을 다른 스타인스프링으로 반환합니다.
매개변수
other (Stinespring) – 스타인스프링 오브젝트입니다.
리턴
텐서 곱 , 여기서
은 현재 스타인스프링이고 은 다른 스타인스프링입니다.
리턴 유형
텐서 곱은 ^ 이진 연산자를 사용하여 구할 수 있습니다. 따라서 a.tensor(b) 은 a ^ b 과 동일합니다.
to_instruction
to_instruction()
크라우스 또는 UnitaryGate 회로 명령어로 변환합니다.
채널이 유니타리인 경우 유니타리 게이트로 추가되고, 그렇지 않으면 크라우스 시뮬레이터 명령으로 추가됩니다.
리턴
채널에 대한 크라우스 인스트럭션입니다.
리턴 유형
레이즈
QiskitError – 입력 데이터가 N-큐비트 CPTP 양자 채널이 아닌 경우.