Skip to main content
IBM Quantum Platform

PEC (qiskit_mitigation.pec)

PEC

class PEC

GitHub

베이스: MitigationTask

확률적 오차 상쇄(PEC) 완화 기법을 사용하여 관측량의 기대값을 계산합니다.

이 클래스를 사용하면 PEC 기법을 통해 회로 효과가 완화된 QuantumProgram 를 준비할 수 있으며, 이를 Executor를 통해 하드웨어에서 실행하고, 결과를 후처리하여 주어진 관측량의 완화 기대값을 계산할 수 있습니다. 작업 매개변수는 prepare 함수에 입력으로 전달되어야 하며, 후처리에 필요한 관련 변수들은 내부적으로 저장됩니다:

pec = PEC()
program = pec.prepare(circuit=circuit,
                      observables=observables,
                      parameters=parameter_valuesת
                      noise_maps=learned_noise)
job = executor.run(program)
results = job.result()
mitigated_result = pec.postprocess(results)

로드된 작업 결과의 기대값을 계산하기 위해, 후처리에 필요한 모든 내부 변수가 포함된 작업 결과를 바탕으로 PEC 작업을 생성할 수 있습니다. 또는 후처리에 필요한 변수들을 정적 compute_expectation_value 메서드에 직접 입력으로 전달할 수도 있습니다. 로드된 결과에 대해 후처리를 실행하는 예시:

pec = PEC()
program = pec.prepare(circuit=circuit,
                      observables=observables,
                      parameters=parameter_valuesת
                      noise_maps=learned_noise)
job_id = executor.run(program).job_id

job = service.job(job_id)
results = job.result()
pec = load_tasks_from_result(results)[0]
mitigated_result = pec.postprocess(results)

PEC 태스크를 생성합니다.

메소드

find_unique_layers

find_unique_layers(circuit, custom_boxing_options=None)

GitHub

지정된 박싱 옵션을 사용하여 주어진 회로의 고유한 박싱된 레이어를 반환합니다.

매개변수

  • 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, *, noise_maps=None, scale_randomizations_by_gamma=True, noise_gain='auto', max_sampling_overhead=100)

GitHub

Executor를 통해 실행할 수 있도록 PEC 완화 처리가 QuantumProgram 적용된 항목을 생성합니다.

Executor를 통해 실행할 수 있고 PEC 완화 기능이 적용된(학습된 노이즈를 상쇄하기 위해 역노이즈를 주입하는) 항목을 생성합니다 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'인 경우, 새로운 프로그램이 생성됩니다.
  • noise_maps (dict[str, PauliLindbladMap] | None) – PEC 완화 방법에 사용할 노이즈 모델에 대한 레이어 참조 간의 매핑. 이 딕셔너리에는 주어진 회로에 존재하지 않는 레이어가 포함될 수 있지만, 완화 조치가 적용된 모든 레이어는 반드시 포함되어야 합니다. 노이즈 학습에 사용된 고유 레이어들이 동일한 사용자 지정 박싱 옵션을 적용한 find_unique_layers 방법을 통해 추출되었다고 가정합니다.
  • scale_randomizations_by_gamma (bool) – gamma**2 에 따라 무작위 배정 횟수를 자동으로 조정할지 여부.
  • noise_gain (float |Literal['auto']) – 완화 조치 후 유지될 노이즈의 비율. 값 는 학습된 노이즈를 완전히 제거하는 것과 0 일치합니다. 값은 학습된 노이즈가 제거되지 않은 상태를 나타냅니다 1 . 와 0 사이의 값은 학습된 노이즈를 부분적으로 제거하는 것에 해당합니다 1 . 1보다 큰 값은 학습된 잡음을 증폭시키는 것과 같습니다. 만약 라면 "auto", 범위 내의 값은 수식 에 의해 자동으로 선택됩니다 [0, 1]``1 - log(max_overhead) / log(gamma^2) .
  • max_sampling_overhead (float | None) – scale_randomizations_by_gamma가 True인 경우, 무작위화 횟수의 곱셈 비율을 제한합니다.

리턴

Executor를 통해 실행할 수 있는 PEC 완화 항목이 QuantumProgram 포함된 A.

리턴 유형

QuantumProgram

postprocess

postprocess(results, measure_noise_data=None)

GitHub

단일 PEC 완화 항목 결과에 대한 프로세스 기대값.

매개변수

  • results (QuantumProgramItemResult |QuantumProgramResult) – 실행 결과. 이 작업의 전체 결과 객체이거나, 해당 작업의 pec 완화 항목 결과일 수 있습니다. 양자 프로그램에 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 경우.

리턴 유형

PubResult

compute_expectation_value_pec

static compute_expectation_value_pec(item_result, observables, gamma, param_shape=None, param_basis_pairs=None, meas_bases=None, broadcast_obs_and_params=False, measure_noise_data=None)

GitHub

단일 PEC 완화 항목 결과에 대한 프로세스 기대값.

이 함수는 새로운 클래스 인스턴스를 생성하지 않고도, PEC 완화 항목 결과 하나에 대한 기대값을 계산하는 데 사용할 수 있습니다.

매개변수

  • item_result (QuantumProgramItemResult) – 항목 결과.
  • observables (ObservablesArray |Sequence[SparsePauliOp]) – 기대값을 계산할 관측량들.
  • gamma (float) – 실행된 회로에 대해 학습된 노이즈 모델의 감마 계수.
  • param_shape (tuple[int, ...] | None) – 매개변수 값의 형태.
  • param_basis_pairs (list[tuple[tuple[int, ...], str]] | None) – 기저를 측정하기 위한 params와 ndindexes 간의 매핑.
  • 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 – 만약 item_result 에 'pauli_signs' 키가 없다면.
  • ValueError – 만약 와 param_shape 가 서로에 대해 브로드캐스트될 수 observables.shape 없다면.

리턴 유형

PubResult

create_instance_from_passthrough_data

static create_instance_from_passthrough_data(passthrough, trex=None)

GitHub

양자 프로그램 실행 결과에서 불러온 패스스루 사전(dictionary)을 기반으로 PEC 인스턴스를 생성합니다.

매개변수

  • passthrough (dict[str, Any]) – 양자 프로그램 실행 결과에서 불러온 Passthrough_data 사전.
  • trex (TREX | None) – 동일한 양자 프로그램 내에서 실행된, 보정 회로 실행 결과를 포함하는 TREX 인스턴스. 동일한 양자 프로그램의 일환으로 TREX 완화 조치가 사용되지 않았거나 TREX 보정이 수행되지 않은 경우에는 None 이 설정을 유지해야 합니다.

리턴

PEC 인스턴스.

리턴 유형

PEC

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