exp_vals
qiskit_addon_utils.exp_vals
기대값 계산을 위한 도구.
executor_expectation_values
executor_expectation_values(bool_array, basis_mapping, /, meas_basis_axis=None, *, avg_axis=None, measurement_flips=None, pauli_signs=None, postselect_mask=None, gamma_factor=None, rescale_factors=None)
샷 데이터 및 메타데이터를 기반으로 qiskit_ibm_runtime.Executor 기대값을 계산합니다.
basis_dict``basis_dict``bool_array의 키에 명시된 측정 기준을 사용하여 획득한 데이터를 활용하여, 의 값에 인코딩된 관측량을 계산합니다.
bool_array선택적으로, 트위링 시와 같이 의 추가 축에 대해 평균을 구할 수 있습니다.
선택적으로 측정 트월링, PEC 및 포스트셀렉션을 지원합니다.
매개변수
-
bool_array (ndarray[tuple[int, ...], dtype[bool]]) – 부울 배열로, 측정된 큐비트의 데이터를 나타내는 것으로 추정됩니다. 마지막 두 축은 각각 샷 수와 고전 비트 수를 나타냅니다. 최하위 비트는 비트 축의 인덱스
0위치에 있는 것으로 간주합니다.len(basis_mapping)가meas_basis_axis주어지면, 의bool_array해당 축은 길이 인 측정 기저를 나타낸다. -
basis_mapping (dict[Pauli, list[SparsePauliOp | None]] |tuple[Sequence[SparsePauliOp], Sequence[str] | PauliList]) –
측정된 파울리 관측량과 이에 대응하는 기저.
{basis: commuting_observables}``dict``tuple,(observables, msmt_bases), 또는, 일 수 있습니다.(observables, msmt_bases)튜플 : length-2 튜플로, 는observables개별 기대값을 계산해야 하는 인스턴스의SparsePauliOp시퀀스이며,msmt_bases는 파울리 관측량의 시퀀스이다.meas_basis_axis의msmt_bases번째 파울리는i를 따라 의bool_array번째 슬라이스와i일치할 것으로 예상됩니다.- dict : 번째 키는
i축을meas_basis_axis따라 의bool_array번째 슬라이스에i해당한다고 가정되는 측정 기준입니다. 값들은 관측 가능 변수의 개수와 길이가 같은 관측 가능 변수 목록(SparsePauliOp)입니다.None이 값들은 관측 가능한 양이 기저와 큐비트 단위로 교환 관계를 이루지 않을 때 사용됩니다. 이 방법은 각 관측 가능한 양이, 비록 하나 이상의 기저와 교환 관계를 맺는다 하더라도, 값들 속에서 단 한 번만 나타난다고 가정합니다.
-
meas_basis_axis (int | None) – 측정 기준을 인덱싱하는 bool_array의 축입니다.
basis_mapping순서는.의 순서와 일치해야 합니다. 만약None라면, 는len(basis_mapping)이어야1하며,bool_array는 유일한 측정 기저에 대응하는 것으로 가정한다. -
avg_axis (int |tuple[int, ...] | None) – 기대값을 계산할 때 평균을 구할 bool_array의 선택적 축 하나 또는 여러 개. 보통 이것이 “회전” 축입니다. 반드시 0 이상이어야 한다. (부울 배열의 인덱스
-2에 위치한다고 가정되는 샷 축은 항상 평균화됩니다.) -
measurement_flips (ndarray[tuple[int, ...], dtype[bool]] | None) – 측정 트위링에 사용되는 선택적 부울 배열입니다. 비트 플립 게이트가 선행된 측정에서 어떤 비트가 수집되었는지를 나타냅니다. 데이터 처리 시 이 배열과
bool_array.을 XOR 연산한 결과를 사용할 것입니다.bool_array와 같은 모양이어야 합니다. -
pauli_signs (ndarray[tuple[int, ...], dtype[bool]] | None) – 확률적 오차 상쇄(PEC)와 함께 사용되는 선택적 부울 배열입니다. 최종 축은 회로 내의 모든 노이즈가 포함된 박스를 참조하는 것으로 가정합니다. 의
True값은 의-1전반적인 부호가 노이즈가 포함된 박스와 연관되어야 함을 나타내며, 이는 일반적으로 지정된 회로 무작위화 과정에서 해당 박스에 홀수 개의 역노이즈 오류가 삽입되었기 때문이다. 마지막 축은 각 회로 무작위화와 관련된 전체 부호를 구하기 위해 즉시 2를 법으로 한 합으로 축소됩니다.pauli_signs.shape[:-1] == bool_array.shape[:-2]남은 도형은 반드시 이어야 합니다. 이 배열에는 ‘shots’ 축이 없다는 점에 유의하십시오. -
postselect_mask (ndarray[tuple[int, ...], dtype[bool]] | None) – 사후 선별에 사용되는 선택적 부울 배열입니다.
True(False)는 사후 선별에서 해당 샷이 승인(거부)되었음을 나타냅니다.bool_array.shape[:-1]모양은 이어야 합니다. -
gamma_factor (float | None) – PEC 완화 기대값에 적용할 재조정 계수 감마.
1/(np.sum(~pauli_signs, axis=avg_axis) - np.sum(pauli_signs, axis=avg_axis))``None이 경우, 재조정 계수는 양성 샘플 수에서 음성 샘플 수를 뺀 값으로 계산되며, 이는 다음과 같이 산출됩니다. 양수 샘플과 음수 샘플의 개수가 같을 경우, 0으로 나누는 오류로 인해 이 작업이 실패할 수 있습니다. 또한, 이 방법은 각 기대값을 서로 다른 배수로 재조정한다는 점에 유의하십시오. (TODO: 감마 값의 배열을 지정할 수 있도록 한다). -
basis_mappingrescale_factors (Sequence[Sequence[Sequence[float]]] | None) – 주어진 에서 각 기저에 대한 각 관측량 내의 각 파울리 항에 대한 스케일 인자. 일반적으로 판독 오차 완화(“TREX”) 보정 계수에 사용됩니다. 목록의 각 항목은 서로 다른 기저에 해당하며, 해당 기저와 관련된 각 관측량의 각 항에 대한 인자 목록들의 목록을 포함하고 있습니다.basis_mapping각 기저 내의 기저와 관측량의 순서는 에서와 같아야 한다. 일부 기저에 대해 비어 있는 관측 가능 객체가 있는 경우, 빈 리스트를 유지하십시오.None이 경우, 배율 계수가 적용되지 않습니다.
리턴
(경험치. val, 분산) 원하는 관측 변수마다 하나씩 2-튜플입니다.
참고: 각 관측 변수에서 합산된 용어 간의 공분산은 현재 다음과 같이 설명되지 않습니다
반환된 분산. # 수행할 작업
레이즈
- ValueError –
avg_axis음수가 포함되어 있습니다. - ValueError –
meas_basis_axis는None이지만len(basis_mapping) != 1. meas_basis_axisValueError – 의basis_mapping원소 개수는 를 따라 의bool_array길이와 일치하지 않는다.- ValueError – 관측량은 측정 기준에 포함되지 않습니다.
get_measurement_bases
get_measurement_bases(observables, bases_in_int_format=True)
주어진 모든 관측값에 대한 기대값을 계산하기 위해 샘플링할 기준을 선택합니다.
여기서 '기준'이란 여러 큐비트 단위의 통근 폴리를 추정할 수 있는 전체 중량 또는 고중량 폴리를 측정하는 것을 의미합니다.
기지는 여러 관측소에 걸쳐 출퇴근하는 폴리를 그룹화하여 선택됩니다.
매개변수
- observables (SparsePauliOp |list[SparsePauliOp]) – 양자 컴퓨터를 사용하여 계산할 관측값입니다.
- bases_in_int_format (bool) – 참인 경우, samplomatic의 관례( I=0, Z=1, X=2, Y=3 )에 따라 기수를 정수 배열로 반환합니다. 정수들의 순서는 문자열 내 각 파울리의 인덱스에 따라 정해집니다. 예를 들어, “IXYZ”라는 베이시스는 [1, 3, 2, 0] 으로 반환됩니다. false인 경우, 기호를 문자열 배열로 반환합니다.
리턴
uint8목록에 인코딩된 샘플용 파울리 염기 목록으로, 여기서0=I,1=Z,2=X,3=Y이거나 (bases\_in\_int\_format매개변수에 따라) 문자열 목록입니다.- 각 측정 기준과 각 관측값에 대한 관련 폴리스 및 계수를 매핑하는 딕셔너리입니다. 측정된 베이스를 키로 사용하여 각 관측값에 대해 이를 나타내는 SparsePauliOp 이 있습니다.
리턴 유형
튜플 [ 리스트 [ ndarray [ 튜플 [ 정수, …], d[* type uint8*] ]], dict [ Pauli, list [ SparsePauliOp ]]] | tuple [ list [ str ], dict [ Pauli, list [ SparsePauliOp ]]]
map_observable_isa_to_canonical
map_observable_isa_to_canonical(isa_observable, canonical_qubits)
트랜스파일된 회로를 기준으로 정의된 관측값을 표준 박스 순서에 매핑합니다.
트랜스파일링(또는 ISA) 순서에서 큐비트는 장치 내 큐비트의 '물리적' 레이아웃을 기반으로 인덱싱됩니다.
표준 큐비트 순서 규칙에 대한 자세한 내용은 샘플로매틱 문서를 참조하세요.)
매개변수
- isa_observable (Pauli |SparsePauliOp |SparseObservable) – 폴리, SparsePauliOp, 또는 SparseObservable 객체.
- canonical_qubits (Sequence[int]) – 각 정식 큐비트에 대한 물리적 큐비트를 지정하는 시퀀스입니다.
리턴
와 같은 유형의 매핑된 연산자입니다 isa_observable
리턴 유형
map_observable_virtual_to_canonical
map_observable_virtual_to_canonical(virt_observable, layout, canonical_qubits)
가상 큐비트 오더가 있는 옵저버블을 정식 박스 오더에 매핑합니다.
표준 큐비트 순서 규칙에 대한 자세한 내용은 샘플로매틱 문서를 참조하세요.)
매개변수
- virt_observable (Pauli |SparsePauliOp |SparseObservable) – 폴리, SparsePauliOp, 또는 SparseObservable 객체.
- layout (Sequence[int]) – 영역 회로에 사용되는 물리적 큐비트 목록입니다.
- canonical_qubits (Sequence[int]) – 상자 내의 표준 큐비트를 레이아웃 내의 물리적 큐비트에 매핑하는 사전입니다.
리턴
와 같은 유형의 매핑된 연산자입니다 virt_observable
map_observable_isa_to_virtual
map_observable_isa_to_virtual(isa_observable, layout)
트랜스파일된 회로를 기준으로 정의된 관찰 가능을 가상 주문에 매핑합니다.
트랜스파일링(또는 ISA) 순서에서 큐비트는 장치 내 큐비트의 '물리적' 레이아웃을 기반으로 인덱싱됩니다.
매개변수
- isa_observable (Pauli |SparsePauliOp |SparseObservable) – 폴리, SparsePauliOp, 또는 SparseObservable 객체.
- layout (Sequence[int]) – 영역 회로에 사용되는 물리적 큐비트 목록입니다.
리턴
와 같은 유형의 매핑된 연산자입니다 isa_observable
리턴 유형