PEA
class PEA
베이스: MitigationTask
확률적 오차 증폭(PEA) 완화 기법을 사용하여 관측 가능한 변수의 기대값을 계산합니다.
이 클래스를 사용하면 PEA 기법을 통해 회로 완화 처리가 적용된 QuantumProgram 를 생성할 수 있으며, 이를 Executor를 통해 하드웨어에서 실행하고, 결과를 후처리하여 주어진 관측 변수의 완화 기대값을 계산할 수 있습니다. 작업 매개변수는 prepare 함수에 입력으로 전달되어야 하며, 후처리에 필요한 관련 변수들은 내부적으로 저장됩니다:
pea_task = PEA()
program = pea_task.prepare(circuit=circuit,
observables=observables,
parameters=parameter_values,
noise_factors=noise_factors_array,
extrapolator=extrapolators_list)
job = executor.run(program)
results = job.result()
mitigated_result = pea_task.postprocess(results)로드된 작업 결과의 기대값을 계산하기 위해, 후처리에 필요한 모든 내부 변수가 포함된 작업 결과를 바탕으로 PEA 태스크를 생성할 수 있습니다. 또는 후처리에 필요한 변수들을 정적 compute_expectation_value 메서드에 직접 입력으로 전달할 수도 있습니다. 로드된 결과에 대해 후처리를 실행하는 예시:
pea_task = PEA()
program = pea_task.prepare(circuit=circuit,
observables=observables,
parameters=parameter_values,
noise_factors=noise_factors_array,
extrapolator=extrapolators_list)
job_id = executor.run(program).job_id
job = service.job(job_id)
results = job.result()
pea_task = load_tasks_from_result(results)[0]
mitigated_result = pea_task.postprocess(results)PEA 태스크를 생성합니다.
속성
VERSION
기본값: '0.1'
메소드
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) – 기저를 측정하기 위한 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 – 만약 와
param_shape가 서로에 대해 브로드캐스트될 수observables.shape없다면.
리턴 유형
compute_expectation_value_pea
static compute_expectation_value_pea(item_result, observables, param_shape, param_basis_pairs, noise_factors, extrapolator, extrapolated_noise_factors=None, meas_bases=None, broadcast_obs_and_params=False, measure_noise_data=None, custom_fit=None)
단일 항목 결과에 대한 기대값을 처리합니다.
이 함수는 새로운 클래스 인스턴스를 생성하지 않고도 단일 완화된 항목 결과에 대한 기대값을 계산하는 데 사용할 수 있습니다.
매개변수
-
item_result (QuantumProgramItemResult) – 완두콩이 해당 항목의 결과를 완화시켰다.
-
observables (ObservablesArray |Sequence[SparsePauliOp]) – 기대값을 계산할 관측량들.
-
param_basis_pairs (list[tuple[tuple[int, ...], str]] | None) – 기저를 측정하기 위한 params와 ndindexes 간의 매핑.
-
extrapolated_noise_factors (float |int |list[float] | None) – 적합도를 평가할 때 고려해야 할 잡음 요인들.
-
extrapolator (list[Literal['linear', 'exponential', 'double_exponential', 'polynomial_degree_1', 'polynomial_degree_2', 'polynomial_degree_3', 'polynomial_degree_4', 'polynomial_degree_5', 'polynomial_degree_6', 'polynomial_degree_7', 'fallback', 'custom']]) –
사용할 외삽 모델 또는 모델들. 모델은 우선순위 순서대로 테스트될 예정입니다. 지원되는 모델 (각 모델은 명명된 잡음 인자 함수에 부합함
x):"linear":a + b*x"polynomial_degree_k"(1 ≤ k ≤ 7): 차수 k인 다항식"exponential":a*exp(b*x)"double_exponential":a*exp(b*x) + c*exp(d*x)(감쇠로 제한된 비율)"fallback": 적합하지 않음; 잡음 계수가 가장 낮은 지점에서의 측정값custom: 매개변수custom_fit에 지정된 사용자 정의 외삽 함수
-
meas_bases (Sequence[Pauli] | Sequence[str] | PauliList | None) – 측정된 파울리 기저의 목록. 번째
i항목은 에 있는 데이터의 번째i슬라이스에 해당한다고 가정된 측정 기준입니다item_result. -
broadcast_obs_and_params (bool) – 관측 가능 변수 및 매개변수 값을 전송할지 여부.
-
measure_noise_data (PauliLindbladMap |ndarray | None) – TREX 완화용 측정 잡음 교정 데이터. 사전에 학습된 잡음 모델의 수학적 표현( PauliLindbladMap )이거나, 보정 회로의 결과일 수 있습니다.
-
custom_fit (tuple[Callable[[...], ndarray], list[float], tuple[float, ...] | tuple[list[float], ...]] | None) – 외삽에 사용될 사용자 정의 피팅 함수입니다. 다음과 같은 형식의 튜플을 포함해야 합니다:
(function, p_0, bounds). 이 함수는 독립 변수를 첫 번째 인수로, 적합에 사용할 매개변수들을 나머지 인수로 각각 받아야 합니다. p_0 는 매개변수에 대한 초기 추정값의 배열이며, bounds는 매개변수의 범위를 나타냅니다. 이 매개변수들은scipy.optimize.curve_fit함수의 인수로 전달됩니다.
리턴
-
evs: 잡음이 없는 점에서 계산된 기대값. -
std: 잡음이 0인 지점에서 산출된 외삽 기대값의 표준편차. -
evs_noise_factors: noise_factors 지점에서 계산된 기대값. -
stds_noise_factors: noise_factors 지점에서 계산된 표준편차. -
stds_twirl_noise_factors: 다음에서 계산된 서로 다른 무작위 배정 간의 표준편차noise_factors 점수.
-
evs_extrapolated: extrapolated_noise_factors 점들에서 계산된 기대값.가 None인
extrapolated_noise_factors경우 None으로 설정합니다. -
stds_extrapolated: extrapolated_noise_factors 지점에서 계산된 표준편차.가 None인
extrapolated_noise_factors경우 None으로 설정합니다.
PubResult 에는 메타데이터 내에 selected_extrapolators ‘field’ 필드도 포함되는데, 이는 제로 노이즈 외삽 지점에 대해 각 관측 가능 항의 데이터를 외삽하는 데 사용되는 유효한 외삽기들을 나타냅니다.
리턴 유형
다음 필드를 포함하는 PubResult
인상
- ValueError – 만약
item_result에'_meas'키가 없다면. - ValueError – 의
item_result['_meas']축 수가 유효하지 않은 경우. - ValueError – 만약 와
param_shape가 서로에 대해 브로드캐스트될 수observables.shape없다면. - ValueError – 어떤 외삽기에 대해서든
noise_factors가 미사양인 경우.
create_instance_from_passthrough_data
static create_instance_from_passthrough_data(passthrough, trex=None)
양자 프로그램 실행 결과에서 불러온 패스스루 사전(dictionary)을 기반으로 PEA 인스턴스를 생성합니다.
매개변수
- passthrough (dict[str, Any]) – 양자 프로그램 실행 결과에서 불러온 Passthrough_data 사전.
- trex (TREX | None) – 동일한 양자 프로그램 내에서 실행된, 보정 회로 구현을 포함하는 TREX 인스턴스. 동일한 양자 프로그램의 일환으로 TREX 완화 조치가 사용되지 않았거나 TREX 보정이 수행되지 않은 경우에는
None이 설정을 유지해야 합니다.
리턴
PEA 인스턴스.
리턴 유형
find_unique_layers
find_unique_layers(circuit, custom_boxing_options=None)
지정된 박싱 옵션을 사용하여 주어진 회로의 고유한 박싱된 레이어를 반환합니다.
매개변수
- circuit (QuantumCircuit) – 이 회로가 고유한 층을 형성하게 된다.
- custom_boxing_options (dict | None) –
generate_boxing_pass_manager()function에서 사용될 사용자 지정 박스 옵션입니다.
리턴
주어진 회로의 고유한 박스화된 레이어.
리턴 유형
목록 [ CircuitInstruction ]
postprocess
postprocess(results, measure_noise_data=None, *, noise_factors=None, extrapolator=None, extrapolated_noise_factors=None, custom_fit=None)
단일 항목 결과에 대한 기대값을 처리합니다.
매개변수
-
results (QuantumProgramItemResult |QuantumProgramResult) – 실행 결과. 이 작업의 전체 결과 객체이거나, 해당 작업의 부분적으로 완화된 항목 결과일 수 있습니다. 양자 프로그램에 TREX 보정 작업이 추가된 경우, 전체 결과 객체가 제공되면 그 결과가 측정 잡음 데이터를 계산하는 데 사용됩니다.
-
noise_factors (Sequence[float] | None) – 잡음을 증폭하는 데 사용된 잡음 계수들.
-
extrapolated_noise_factors (list[float] | None) – 적합도를 평가할 때 고려해야 할 잡음 요인들.
-
extrapolator (Sequence[Literal['linear', 'exponential', 'double_exponential', 'polynomial_degree_1', 'polynomial_degree_2', 'polynomial_degree_3', 'polynomial_degree_4', 'polynomial_degree_5', 'polynomial_degree_6', 'polynomial_degree_7', 'fallback', 'custom']] | None) –
사용할 외삽 모델 또는 모델들. 모델은 우선순위 순서대로 테스트될 예정입니다. 지원되는 모델 (각 모델은 명명된 잡음 인자 함수에 부합함
x):"linear":a + b*x"polynomial_degree_k"(1 ≤ k ≤ 7): 차수 k인 다항식"exponential":a*exp(b*x)"double_exponential":a*exp(b*x) + c*exp(d*x)(감쇠로 제한된 비율)"fallback": 적합하지 않음; 잡음 계수가 가장 낮은 지점에서의 측정값custom: 매개변수custom_fit에 지정된 사용자 정의 외삽 함수
-
measure_noise_data (PauliLindbladMap |ndarray | None) – TREX 완화용 측정 잡음 교정 데이터. 사전에 학습된 잡음 모델의 수학적 표현( PauliLindbladMap )이거나, 보정 회로의 결과일 수 있습니다.
-
custom_fit (tuple[Callable[[...], ndarray], list[float], tuple[float, ...] | tuple[list[float], ...]] | None) – 외삽에 사용될 사용자 정의 피팅 함수입니다. 다음과 같은 형식의 튜플을 포함해야 합니다:
(function, p_0, bounds). 이 함수는 독립 변수를 첫 번째 인수로, 적합에 사용할 매개변수들을 나머지 인수로 각각 받아야 합니다. p_0 는 매개변수에 대한 초기 추정값의 배열이며, bounds는 매개변수의 범위를 나타냅니다. 이 매개변수들은scipy.optimize.curve_fit함수의 인수로 전달됩니다.
리턴
-
evs: 잡음이 없는 점에서 계산된 기대값. -
std: 잡음이 0인 지점에서 산출된 외삽 기대값의 표준편차. -
evs_noise_factors: noise_factors 지점에서 계산된 기대값. -
stds_noise_factors: noise_factors 지점에서 계산된 표준편차. -
stds_twirl_noise_factors: 다음에서 계산된 서로 다른 무작위 배정 간의 표준편차noise_factors 점수.
-
evs_extrapolated: extrapolated_noise_factors 점들에서 계산된 기대값.가 None인
extrapolated_noise_factors경우 None으로 설정합니다. -
stds_extrapolated: extrapolated_noise_factors 지점에서 계산된 표준편차.가 None인
extrapolated_noise_factors경우 None으로 설정합니다.
PubResult 에는 메타데이터 내에 selected_extrapolators ‘field’ 필드도 포함되는데, 이는 제로 노이즈 외삽 지점에 대해 각 관측 가능 항의 데이터를 외삽하는 데 사용되는 유효한 외삽기들을 나타냅니다.
리턴 유형
다음 필드를 포함하는 PubResult
인상
- ValueError – 작업의 항목 결과에
'_meas'키가 없는 경우. - ValueError – 항목 결과
'_meas'데이터의 축 수가 유효하지 않은 경우. - ValueError – 만약 와
param_shape가 서로에 대해 브로드캐스트될 수observables.shape없다면.
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, noise_factors=(1, 3, 5), extrapolator=None, extrapolated_noise_factors=None)
Executor를 통해 실행할 PEA 완화 항목이 포함된 QuantumProgram 객체를 생성합니다.
Executor를 통해 QuantumProgram 실행할 수 있으며 PEA 완화 처리가 적용된 (주입된 파울리 잡음을 조정하여 잡음을 증폭시키고, 잡음이 없는 지점까지 외삽하는) 항목을 생성합니다. a가 지정된 quantum_program 경우, 새 항목은 기존 프로그램에 추가되며, 그렇지 않은 경우 생성된 항목만 포함된 새로운 프로그램이 생성됩니다. 이 값이 True인 broadcast_obs_and_params 경우, 관측 가능 변수와 매개변수는 샘플로매틱(samplomatic) 브로드캐스팅 규칙에 따라 브로드캐스팅되어, 일부 매개변수를 일부 관측 가능 변수에 연결할 수 있게 됩니다. 그렇지 않으면, 각 관측 가능 변수에 대해 모든 매개변수가 실행됩니다(매개변수와 관측 가능 변수의 외적). 외적의 사후 처리가 일반적으로 더 빠르다는 점에 유의하십시오.
매개변수
-
circuit (QuantumCircuit) – 양자 회로.
-
observables (ObservablesArray |Sequence[SparsePauliOp]) – 기대값을 계산하기 위한 관측량들.
-
parameters (ndarray | 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) – 노이즈 증폭에 사용할 노이즈 모델에 대한 레이어 참조 간의 매핑. 이 딕셔너리에는 주어진 회로에 존재하지 않는 레이어가 포함될 수 있지만, 완화 조치가 적용된 모든 레이어는 반드시 포함되어야 합니다. 노이즈 학습에 사용된 고유 레이어들이 동일한 사용자 지정 박싱 옵션을 적용한
find_unique_layers방법을 통해 추출되었다고 가정합니다. -
extrapolator (Sequence[Literal['linear', 'exponential', 'double_exponential', 'polynomial_degree_1', 'polynomial_degree_2', 'polynomial_degree_3', 'polynomial_degree_4', 'polynomial_degree_5', 'polynomial_degree_6', 'polynomial_degree_7', 'fallback', 'custom']] | None) –
후처리 과정에서 사용할 예정인 외삽 모델 하나 또는 여러 개. 이러한 외삽기를 사용하여 유효한 적합을 수행하기에 충분한 잡음 요인이 존재하는지 검증하기 위한 준비 단계에서 사용됩니다. 인 경우
None, 유효성 검증이 수행되지 않습니다. 지원되는 모델 (각 모델은 명시된 잡음 계수 함수에 부합함x):"linear":a + b*x"polynomial_degree_k"(1 ≤ k ≤ 7): 차수 k인 다항식"exponential":a*exp(b*x)"double_exponential":a*exp(b*x) + c*exp(d*x)(감쇠로 제한된 비율)"fallback": 적합하지 않음; 잡음 계수가 가장 낮은 지점에서의 측정값
-
extrapolated_noise_factors (list[float] | None) – 후처리 과정에서 적합도를 평가하기 위한 잡음 계수들이 사용될 예정이다. 후처리를 용이하게 하기 위해 데이터를 저장하는 데 사용됩니다. 후처리 단계에서 덮어쓸 수 있습니다.
리턴
Executor를 통해 실행할 수 있는, PEA 완화 항목이 QuantumProgram 포함된 A.
리턴 유형