StabilizerState
class qiskit.quantum_info.StabilizerState(data, validate=True)
베이스: QuantumState
StabilizerState 클래스. 참조 [1의] 규칙을 사용하는 안정제 시뮬레이터. 내부 클래스 기준 Clifford.
from qiskit import QuantumCircuit
from qiskit.quantum_info import StabilizerState, Pauli
# Bell state generation circuit
qc = QuantumCircuit(2)
qc.h(0)
qc.cx(0, 1)
stab = StabilizerState(qc)
# Print the StabilizerState
print(stab)
# Calculate the StabilizerState measurement probabilities dictionary
print (stab.probabilities_dict())
# Calculate expectation value of the StabilizerState
print (stab.expectation_value(Pauli('ZZ')))StabilizerState(StabilizerTable: ['+XX', '+ZZ'])
{'00': 0.5, '11': 0.5}
1안정제 목록이 주어집니다, qiskit.quantum_info.StabilizerState.from_stabilizer_list() 는 목록에 의해 안정화된 상태를 반환합니다
from qiskit.quantum_info import StabilizerState
stabilizer_list = ["ZXX", "-XYX", "+ZYY"]
stab = StabilizerState.from_stabilizer_list(stabilizer_list)참조
- S. 아론슨, D. 고츠먼, 안정기 회로의 향상된 시뮬레이션, Phys. Rev. A 70, 052328 (2004). arXiv:quant-ph/0406196
StabilizerState 개체를 초기화합니다.
매개변수
- data (StabilizerState |Clifford |Pauli |QuantumCircuit |circuit.instruction.Instruction) – 안정화 상태를 구성할 수 있는 데이터.
- validate (bool) – 스태빌라이저 상태 데이터가 유효한 클리포드인지 확인합니다.
속성
clifford
반환 StabilizerState 클리포드 데이터
dim
총 상태 차원을 반환합니다.
num_qubits
N-큐비트 상태인 경우 큐비트 수를 반환하고, 그렇지 않으면 없음으로 반환합니다.
메소드
conjugate
copy
dims
equiv
equiv(other)
두 생성 세트가 동일한 안정제 그룹을 생성하면 True를 반환합니다.
매개변수
other (StabilizerState) – 또 다른 StabilizerState.
리턴
다른 생성 집합에 동일한 StabilizerState 을 생성하는 생성 집합이 있는 경우 참입니다.
리턴 유형
evolve
evolve(other, qargs=None)
클리포드 연산자에 의해 안정화 상태를 진화시킵니다.
매개변수
- other (Clifford orQuantumCircuit orqiskit.circuit.Instruction) – 진화를 위한 클리포드 연산자.
- qargs (list) – 연산자를 적용할 스태빌라이저 하위 시스템 위치 목록입니다.
리턴
출력 안정기 상태입니다.
리턴 유형
레이즈
- QiskitError – ‘other’가 ‘ StabilizerState ’가 아닌 경우.
- QiskitError – 연산자 차원이 지정된 ‘ StabilizerState ’ 하위 시스템의 차원과 일치하지 않는 경우.
expand
expand(other)
텐서 곱 안정화 상태 다른 ⊗ 자기를 반환합니다.
매개변수
other (StabilizerState) – 안정화 상태 객체입니다.
리턴
텐서 곱 연산자 다른 ⊗ 자기.
리턴 유형
레이즈
QiskitError – ‘other’가 ‘ StabilizerState ’가 아닌 경우.
expectation_value
expectation_value(oper, qargs=None)
폴리 또는 SparsePauliOp 연산자의 기대값을 계산합니다.
매개변수
- oper (Pauli |SparsePauliOp) – 폴리 또는 SparsePauliOp 연산자를 사용하여 기대값을 평가합니다.
- qargs (None | list) – 연산자를 적용할 하위 시스템.
리턴
기대치입니다.
레이즈
QiskitError – oper가 파울리 연산자나 SparsePauliOp 연산자가 아닌 경우.
리턴 유형
from_stabilizer_list
classmethod from_stabilizer_list(stabilizers, allow_redundant=False, allow_underconstrained=False)
스태빌라이저 컬렉션에서 스태빌라이저 상태를 생성합니다.
매개변수
- stabilizers (Collection[str]) – 스태빌라이저 문자열 목록
- allow_redundant (bool) – 중복된 안정자를 허용한다(즉, 일부 안정자가 다른 안정자의 곱으로 표현될 수 있다)
- allow_underconstrained (bool) – 과소 제약된 안정화기 집합을 허용한다(즉, 안정화기가 유일한 상태를 지정하지 않는다)
리턴
안정제에 의해 안정화된 상태입니다.
리턴 유형
is_valid
measure
measure(qargs=None)
하위 시스템을 측정하고 결과 및 측정 후 상태를 반환합니다.
이 함수는 측정 결과 샘플링을 위해 QuantumStates 내부 난수 생성기를 사용합니다. RNG 시드는 seed() 메서드를 사용하여 설정할 수 있습니다.
매개변수
qargs (list or None) – 측정값을 샘플링할 하위 시스템을 설정합니다(없음인 경우 모든 하위 시스템의 측정값을 샘플링합니다(기본값: 없음).
리턴
쌍 (outcome, state) 여기서 outcome 은
측정 결과 문자열 레이블, state 은 해당 결과에 대한 축소된 측정 후 안정화 상태입니다.
리턴 유형
probabilities
probabilities(qargs=None, decimals=None)
하위 시스템 측정 확률 벡터를 반환합니다.
측정 확률은 계산(대각선) 기준의 측정에 관한 것입니다.
매개변수
- qargs (None or list) – 하위 시스템 중 확률을 반환할 하위 시스템을 지정합니다(없음이 모든 하위 시스템에 대해 반환하는 경우 기본값: 없음).
- decimals (None or int) – 값을 반올림할 소수점 이하 자릿수입니다. 없음인 경우 반올림이 수행되지 않습니다(기본값: 없음).
리턴
확률의 넘피 벡터 배열입니다.
리턴 유형
np.array
probabilities_dict
probabilities_dict(qargs=None, decimals=None)
하위 시스템 측정 확률 사전을 반환합니다.
측정 확률은 계산(대각선) 기준의 측정에 관한 것입니다.
이 사전 표현은 사전 키가 하위 시스템 기준 벡터에 대한 쿼트 문자열인 Ket과 유사한 표기법을 사용합니다. 하위 시스템의 차원이 10보다 큰 경우 하위 시스템을 구분할 수 있도록 정수 사이에 쉼표 구분 기호를 삽입합니다.
매개변수
- qargs (None or list) – 하위 시스템 중 확률을 반환할 하위 시스템을 지정합니다(없음이 모든 하위 시스템에 대해 반환하는 경우 기본값: 없음).
- decimals (None or int) – 값을 반올림할 소수점 이하 자릿수입니다. 없음인 경우 반올림이 수행되지 않습니다(기본값: 없음).
리턴
딕셔너리(키) 형식의 측정 확률입니다.
리턴 유형
probabilities_dict_from_bitstring
probabilities_dict_from_bitstring(outcome_bitstring, qargs=None, decimals=None)
측정을 수행할 대상 결과_비트스트링을 활용하여 하위 시스템 측정 확률 사전을 반환합니다. 이렇게 하면 단일 목표 결과_비트 문자열 값에 대해서만 확률을 계산하므로 가능한 모든 결과를 계산하는 것보다 성능이 향상됩니다.
측정 확률은 계산(대각선) 기준의 측정에 관한 것입니다.
이 사전 표현은 사전 키가 하위 시스템 기준 벡터에 대한 쿼트 문자열인 Ket과 유사한 표기법을 사용합니다. 하위 시스템의 차원이 10보다 큰 경우 하위 시스템을 구분할 수 있도록 정수 사이에 쉼표 구분 기호를 삽입합니다.
매개변수
- outcome_bitstring (None or str) – 계산 대상인 목표 결과 비트열을 지정하면 수행되는 계산 횟수가 크게 줄어듭니다 (기본값: 없음)
- qargs (None or list) – 하위 시스템 중 확률을 반환할 하위 시스템을 지정합니다(없음이 모든 하위 시스템에 대해 반환하는 경우 기본값: 없음).
- decimals (None or int) – 값을 반올림할 소수점 자리 수. None인 경우 반올림이 수행되지 않습니다 (기본값: None)
리턴
딕셔너리(케트) 형식의 측정 확률입니다.
리턴 유형
purity
purity()
양자 상태는 항상 순수한 상태이므로 1과 같은 양자 상태의 순도를 반환합니다.
리턴
순도(1과 같아야 함)를 입력합니다.
리턴 유형
레이즈
QiskitError – 입력이 StabilizerState가 아닌 경우.
reset
reset(qargs=None)
상태 또는 하위 시스템을 0 상태로 초기화합니다.
매개변수
qargs (list or None) – 를 선택하면 모든 하위 시스템이 0 상태로 초기화됩니다(기본값: 없음).
리턴
리셋 상태입니다.
리턴 유형
추가 정보:
모든 서브시스템이 리셋되면 모든 서브시스템에서 접지 상태가 반환됩니다. 일부 하위 시스템만 리셋되는 경우 이 함수는 해당 하위 시스템에 대한 측정을 수행하고 하위 시스템을 진화시켜 축소된 측정 후 상태가 0 상태로 회전되도록 합니다. 이 샘플링을 위한 RNG 시드는 다음을 사용하여 설정할 수 있습니다 seed() 메서드를 사용하여 설정할 수 있습니다.
sample_counts
sample_counts(shots, qargs=None)
큐비트 측정 결과의 딕셔너리를 계산 기반으로 샘플링합니다.
매개변수
- shots (int) – 생성할 샘플 수입니다.
- qargs (None or list) – 측정값을 샘플링할 하위 시스템을 설정합니다(없음인 경우 모든 하위 시스템의 측정값을 샘플링합니다(기본값: 없음).
리턴
샘플링된 카운트 사전.
리턴 유형
추가 정보:
이 함수는 현재 상태에 대한 측정값
probabilities()를 사용하여 측정 결과를 샘플링합니다. 실제로 측정을 구현하지 않으므로 현재 상태가 수정되지 않습니다.샘플링에 사용되는 난수 생성기의 시드는 state의
seed()메서드를 사용하여 고정된 값으로 설정할 수 있습니다.
sample_memory
sample_memory(shots, qargs=None)
큐비트 측정 결과 목록을 계산 기준으로 샘플링합니다.
매개변수
- shots (int) – 생성할 샘플 수입니다.
- qargs (None or list) – 측정값을 샘플링할 하위 시스템을 설정합니다(없음인 경우 모든 하위 시스템의 측정값을 샘플링합니다(기본값: 없음).
리턴
표본 추출 순서대로 정렬된 표본 개수 목록.
리턴 유형
np.array
추가 정보:
이 함수는 측정
measure()메서드를 구현합니다.샘플링에 사용되는 난수 생성기의 시드는 state의
seed()메서드를 사용하여 고정된 값으로 설정할 수 있습니다.
seed
tensor
tensor(other)
텐서 곱 안정화 상태 self ⊗ other를 반환합니다.
매개변수
other (StabilizerState) – 안정화 상태 객체입니다.
리턴
텐서 곱 연산자 자기 ⊗ 다른.
리턴 유형
레이즈
QiskitError – ‘other’가 ‘ StabilizerState ’가 아닌 경우.
to_operator
trace
trace()
안정제 상태의 트레이스를 밀도 행렬로 반환하며, 이는 항상 순수한 상태이므로 1과 같습니다.
리턴
(1과 같아야 함)을 반환합니다.
리턴 유형
레이즈
QiskitError – 입력이 StabilizerState가 아닌 경우.