MitigationTask (qiskit_mitigation.mitigation_task)
MitigationTask
class MitigationTask
베이스: object
익스큐터를 사용하여 관측 가능한 변수의 기대값을 계산합니다.
이 클래스는 모든 완화 기법의 기본 클래스입니다. 이를 통해 Executor를 사용하여 하드웨어에서 실행할 수 있는 QuantumProgram 를 준비할 수 있으며, 결과를 후처리하여 주어진 관측량의 기대값을 계산할 수 있습니다.
작업 매개변수는 prepare 함수에 입력으로 전달되어야 하며, 후처리에 필요한 관련 변수들은 내부적으로 저장됩니다:
task = MitigationTask()
program = task.prepare(circuit=circuit,
observables=observables,
parameters=parameter_values)
job = executor.run(program)
results = job.result()
mitigated_result = task.postprocess(results)로드된 작업 결과의 기대값을 계산하기 위해, 후처리에 필요한 모든 내부 변수를 포함하여 작업 결과로부터 태스크를 생성할 수 있습니다. 또는 후처리에 필요한 변수들을 정적 compute_expectation_value 메서드에 직접 입력으로 전달할 수도 있습니다. 로드된 결과에 대해 후처리를 실행하는 예시:
task = MitigationTask()
program = task.prepare(circuit=circuit,
observables=observables,
parameters=parameter_values)
job_id = executor.run(program).job_id
job = service.job(job_id)
results = job.result()
task = load_tasks_from_result(results)[0]
mitigated_result = task.postprocess(results)MitigationTask 객체를 생성합니다.
메소드
find_unique_layers
find_unique_layers(circuit, custom_boxing_options=None)
지정된 박싱 옵션을 사용하여 주어진 회로의 고유한 박싱된 레이어를 반환합니다.
매개변수
- circuit (QuantumCircuit) – 이 회로가 고유한 층을 형성한다.
- custom_boxing_options (dict | None) –
generate_boxing_pass_manager()function에서 사용될 사용자 지정 박스 옵션입니다.
리턴
주어진 회로의 고유한 박스화된 레이어.
리턴 유형
목록 [ CircuitInstruction ]
prepare
prepare(circuit, observables, parameters, custom_boxing_options=None, shots_per_randomization=64, num_randomizations=128, broadcast_obs_and_params=False, trex=None, quantum_program=None)
Executor를 통해 실행할 QuantumProgram 을 생성합니다.
Executor를 통해 QuantumProgram 실행할 수 있는 항목을 생성합니다. a가 지정된 quantum_program 경우, 새로운 항목은 기존 프로그램에 추가되며, 그렇지 않은 경우 생성된 항목만 포함된 새로운 프로그램이 생성됩니다. 기본 옵션은 회로에 어떠한 완화 방법도 적용하지 않은 항목을 생성합니다. 이 값이 True인 broadcast_obs_and_params 경우, 관측 가능 변수와 매개변수는 샘플로매틱(samplomatic) 브로드캐스팅 규칙을 사용하여 브로드캐스팅되며, 이를 통해 일부 매개변수를 특정 관측 가능 변수에 연결할 수 있게 됩니다. 그렇지 않으면, 모든 매개변수가 각 관측 가능 변수에 대해 실행됩니다(매개변수와 관측 가능 변수의 외적). 외적의 사후 처리가 일반적으로 더 빠르다는 점에 유의하십시오.
매개변수
- circuit (QuantumCircuit) – 양자 회로.
- observables (ObservablesArray |Sequence[SparsePauliOp]) – 기대값을 계산하기 위한 관측량들.
- parameters (ndarray |BindingsArray | None) – 파라메트릭 회로의 파라미터.
- custom_boxing_options (dict | None) –
generate_boxing_pass_manager()function에서 사용될 사용자 지정 박스 옵션입니다. - shots_per_randomization (int) – 무작위 배정당 샷 수.
- num_randomizations (int) – 무작위 배정 횟수.
- broadcast_obs_and_params (bool) – 관측 가능 변수와 매개변수를 전송할지 여부.
- trex (TREX | None) – 읽기 오류를 완화하는 데 사용될 TREX 완화 인스턴스입니다.
- quantum_program (QuantumProgram | None) – 항목을 추가할 양자 프로그램입니다. 'None'인 경우, 새로운 프로그램이 생성됩니다.
리턴
Executor를 통해 실행될 수 있는 QuantumProgram A.
리턴 유형
postprocess
postprocess(results, measure_noise_data=None)
단일 항목 결과에 대한 기대값을 처리합니다.
매개변수
- results (QuantumProgramItemResult |QuantumProgramResult) – 실행 결과. 전체 결과 객체이거나 이 작업의 항목 결과일 수 있습니다. 양자 프로그램에 TREX 보정 작업이 추가된 경우, 전체 결과 객체가 제공되면 그 결과가 측정 잡음 데이터를 계산하는 데 사용됩니다.
- measure_noise_data (PauliLindbladMap |ndarray | None) – TREX 완화에 사용할 학습된 측정 잡음 데이터. None인 경우이고 양자 프로그램에 보정 작업이 포함되어 있다면, 전체 결과 객체가 제공된 경우 보정 작업의 결과를 바탕으로 측정 잡음이 계산됩니다.
리턴
데이터에 evs 및 std 필드를 포함하는 PubResult 이며, 여기서 evs 는 기대값이고, 는 기대값의 표준편차입니다 std . 이 값이 True로 broadcast_obs_and_params 설정되면, 데이터에는 서로 다른 무작위 배정 간의 표준 편차를 나타내는 twirl_stds 필드도 포함됩니다.
인상
- ValueError – 작업의 항목 결과에
'_meas'키가 없는 경우. - ValueError – 항목 결과
'_meas'데이터의 축 수가 유효하지 않은 경우. - ValueError – 만약 와
param_shape를 서로 대조하여 방송할 수 없는observables.shape반면, 작업 준비 단계에서True는 로 설정되어broadcast_obs_and_params있었다면.
리턴 유형
compute_expectation_value
static compute_expectation_value(item_result, observables, param_shape=None, param_basis_pairs=None, meas_bases=None, broadcast_obs_and_params=False, measure_noise_data=None)
단일 항목 결과에 대한 기대값을 처리합니다.
이 함수는 새로운 클래스 인스턴스를 생성하지 않고도, 완화 조치가 적용되지 않은 단일 항목 결과에 대한 기대값을 계산하는 데 사용할 수 있습니다.
매개변수
- item_result (QuantumProgramItemResult) – 항목 결과.
- observables (ObservablesArray |Sequence[SparsePauliOp]) – 기대값을 계산할 관측량들.
- param_shape (tuple[int, ...] | None) – 매개변수 값의 형태.
- param_basis_pairs (list[tuple[tuple[int, ...], str]] | None) – 기저를 측정하기 위한 파라미터와 인덱스 간의 대응 관계.
- meas_bases (Sequence[Pauli] | Sequence[str] | PauliList | None) – 측정된 파울리 기저의 목록. 번째
i항목은 에 있는 데이터의 번째i슬라이스에 해당한다고 가정된 측정 기준입니다item_result. - broadcast_obs_and_params (bool) – 관측 가능 변수 및 매개변수 값을 전송할지 여부.
- measure_noise_data (PauliLindbladMap |ndarray | None) – TREX 완화를 위한 측정 잡음 교정 데이터.
리턴
데이터에 evs 및 std 필드를 포함하는 PubResult 이며, 여기서 evs 는 기대값이고, 는 기대값의 표준편차입니다 std . 이 값이 True로 broadcast_obs_and_params 설정되면, 데이터에는 서로 다른 무작위 배정 간의 표준 편차를 나타내는 twirl_stds 필드도 포함됩니다.
인상
- ValueError – 만약
item_result에'_meas'키가 없다면. - ValueError – 의
item_result['_meas']축 수가 유효하지 않은 경우. - ValueError – 만약 와
param_shape가 서로에 대해 브로드캐스트될 수observables.shape없다면.
리턴 유형
create_instance_from_passthrough_data
static create_instance_from_passthrough_data(passthrough, trex=None)
양자 프로그램 실행 결과에서 불러온 패스스루 사전(dictionary)을 기반으로 MitigationTask 인스턴스를 생성합니다.
매개변수
- passthrough (dict[str, Any]) – 양자 프로그램 실행 결과에서 불러온 Passthrough_data 사전.
- trex (TREX | None) – 동일한 양자 프로그램 내에서 실행된, 보정 회로 결과를 포함하는 TREX 인스턴스. 동일한 양자 프로그램의 일환으로 TREX 완화 조치가 사용되지 않았거나 TREX 보정이 수행되지 않은 경우에는
None이 설정을 유지해야 합니다.
리턴
MitigationTask 인스턴스.
리턴 유형