Skip to main content
IBM Quantum Platform

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)

GitHub

샷 데이터 및 메타데이터를 기반으로 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_axismsmt_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-튜플입니다.

참고: 각 관측 변수에서 합산된 용어 간의 공분산은 현재 다음과 같이 설명되지 않습니다

반환된 분산. # 수행할 작업

레이즈

  • ValueErroravg_axis 음수가 포함되어 있습니다.
  • ValueErrormeas_basis_axisNone 이지만 len(basis_mapping) != 1.
  • meas_basis_axisValueError – 의 basis_mapping 원소 개수는 를 따라 의 bool_array 길이와 일치하지 않는다.
  • ValueError – 관측량은 측정 기준에 포함되지 않습니다.

get_measurement_bases

get_measurement_bases(observables, bases_in_int_format=True)

GitHub

주어진 모든 관측값에 대한 기대값을 계산하기 위해 샘플링할 기준을 선택합니다.

여기서 '기준'이란 여러 큐비트 단위의 통근 폴리를 추정할 수 있는 전체 중량 또는 고중량 폴리를 측정하는 것을 의미합니다.

기지는 여러 관측소에 걸쳐 출퇴근하는 폴리를 그룹화하여 선택됩니다.

매개변수

  • 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)

GitHub

트랜스파일된 회로를 기준으로 정의된 관측값을 표준 박스 순서에 매핑합니다.

트랜스파일링(또는 ISA) 순서에서 큐비트는 장치 내 큐비트의 '물리적' 레이아웃을 기반으로 인덱싱됩니다.

표준 큐비트 순서 규칙에 대한 자세한 내용은 샘플로매틱 문서를 참조하세요.)

매개변수

  • isa_observable (Pauli |SparsePauliOp |SparseObservable) – 폴리, SparsePauliOp, 또는 SparseObservable 객체.
  • canonical_qubits (Sequence[int]) – 각 정식 큐비트에 대한 물리적 큐비트를 지정하는 시퀀스입니다.

리턴

와 같은 유형의 매핑된 연산자입니다 isa_observable

리턴 유형

폴리 | SparsePauliOp | SparseObservable

map_observable_virtual_to_canonical

map_observable_virtual_to_canonical(virt_observable, layout, canonical_qubits)

GitHub

가상 큐비트 오더가 있는 옵저버블을 정식 박스 오더에 매핑합니다.

표준 큐비트 순서 규칙에 대한 자세한 내용은 샘플로매틱 문서를 참조하세요.)

매개변수

  • 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)

GitHub

트랜스파일된 회로를 기준으로 정의된 관찰 가능을 가상 주문에 매핑합니다.

트랜스파일링(또는 ISA) 순서에서 큐비트는 장치 내 큐비트의 '물리적' 레이아웃을 기반으로 인덱싱됩니다.

매개변수

리턴

와 같은 유형의 매핑된 연산자입니다 isa_observable

리턴 유형

폴리 | SparsePauliOp | SparseObservable

이 페이지가 도움이 되었습니까?
GitHub에서 버그, 오타를 보고하거나 컨텐츠를 요청하십시오.