EstimatorV2
class EstimatorV2(mode=None, options=None)
Bases: BasePrimitiveV2[EstimatorOptions], Estimator, BaseEstimatorV2
EstimatorV2 IBM Quantum Compute (이전 명칭: Qiskit Runtime )의 기본 함수.
IBM Quantum Compute ‘Estimator’ 기본 서비스는 양자 회로 및 관측량의 기대값을 추정합니다.
는 run() 를 사용하여 회로, 관측 변수 및 매개 변수를 추정기 프리미티브에 제출할 수 있습니다.
구축 후, 추정자는 PUB(프리미티브 통합 블록) 목록과 함께 그 run() 메서드에 PUB(프리미티브 통합 블록) 목록을 전달합니다. 각 PUB 에는 추정기가 완료해야 하는 작업의 계산 단위를 정의하는 네 가지 값이 포함되어 있습니다:
- 단일
QuantumCircuit을 매개변수화할 수 있으며, 최종 상태는 로 정의합니다, - 하나 이상의 관측값(
ObservablesArrayLike,Pauli,SparsePauliOp,str)으로 지정되며, 추정할 기대값을 지정하고 로 표시됩니다 - 에 회로를 바인딩할 컬렉션 파라미터 값( )을 설정합니다.
- 예상값 추정을 위한 목표 정밀도(선택 사항)입니다.
다음은 추정기를 사용하는 방법의 예입니다.
from qiskit.circuit.library import real_amplitudes
from qiskit.quantum_info import SparsePauliOp
from qiskit.transpiler.preset_passmanagers import generate_preset_pass_manager
from qiskit_ibm_runtime import QiskitRuntimeService, EstimatorV2 as Estimator
service = QiskitRuntimeService()
backend = service.least_busy(operational=True, simulator=False)
psi = real_amplitudes(num_qubits=2, reps=2)
hamiltonian = SparsePauliOp.from_list([("II", 1), ("IZ", 2), ("XI", 3)])
theta = [0, 1, 1, 2, 3, 5]
pm = generate_preset_pass_manager(backend=backend, optimization_level=1)
isa_psi = pm.run(psi)
isa_observables = hamiltonian.apply_layout(isa_psi.layout)
estimator = Estimator(mode=backend)
# calculate [ <psi(theta)|hamiltonian|psi(theta)> ]
job = estimator.run([(isa_psi, isa_observables, [theta])])
pub_result = job.result()[0]
print(f"Expectation values: {pub_result.data.evs}")매개변수
-
mode (BackendV2 | Session |Batch | str | None) –
원시 쿼리를 만드는 데 사용되는 실행 모드입니다. 다음의 옵션을 사용할 수 있습니다.
이에 대한 자세한 내용은 IBM Quantum Compute 문서를 참조하십시오
Execution modes. -
options (dict | options.EstimatorOptions | None) – 추정기 옵션에 대한 자세한 설명은 을
EstimatorOptions참조하십시오.
속성
mode
이 프리미티브가 사용하는 실행 모드를 반환합니다.
리턴
모드, 실행 모드가 사용되지 않는 경우 None .
options
반품 방법.
version
기본값: 2
메소드
backend
run
run(pubs, *, precision=None, dry_run=False)
추정기 프리미티브에 요청을 제출합니다.
매개변수
(circuit, observables, parameter_values)pubs (Iterable[EstimatorPubLike]) – 튜플이나(circuit, observables)와 같은 pub형(기본 통합 블록) 객체들로 구성된 반복 가능한 객체 집합입니다.- precision (float | None) – 자체 정밀도를 명시하지 않은 각 실행에 대한 ‘Estimator Pub’의 기대값 추정치의 목표 정밀도. 인 경우
None, 추정량의 기본 정밀도 값이 사용됩니다. - dry_run (bool) – 의 경우
True, QPU에서 작업을 실행하지 않고 시뮬레이션을 수행합니다. 이 모드를 사용하면 작업을 검증하고, 사용량을 추정하며, 회로 타이밍 메타데이터를 가져올 수 있습니다. 반환된 결과에는 예상되는 스키마가 유지되지만, 실제 또는 시뮬레이션된 측정 결과 대신 무작위로 생성된 모의 데이터가 포함됩니다. 가짜 백엔드와 달리, 이 모의 실행 처리는 서버 측에서 이루어지므로 작업이 즉시 완료되지 않을 수 있으며, 이 기능에 대한 접근이 제한될 수 있습니다.
리턴
제출된 작업.
레이즈
ValueError - 정밀도 값이 0보다 엄격하게 크지 않은 경우.
리턴 유형