Skip to main content
IBM Quantum Platform

검사

qiskit_paulice.checks

효과적인 시공간 파울리 검증을 찾는 기능.

add_pauli_checks

add_pauli_checks(circuit, target_qubits, noise_model, cost='gamma', cost_nshots=10000, method='windowed', ancilla_qubits=None, check_creg_name='checks_c', check_qreg_name='checks_q', seed=None)

GitHub

클리포드 회로에 시공간 파울리 검출기를 추가한다.

체크 선택 알고리즘은 각 대상 큐비트에 대해 지정된 target_qubits 순서대로 유효하고 무게가 작은 체크를 찾아내며, 오류 탐지 범위가 가장 넓은(즉, 값을 cost 최소화하는) 체크를 선택합니다. target_qubits[0]에 대한 검사가 확정되면, 해당 검사는 알고리즘이 끝날 때까지 유지되며, 에 target_qubits[1] 대한 적절한 검사를 찾는 과정이 시작됩니다. 이러한 이유로, 의 target_qubits 순서는 함수가 생성하는 검사 집합에 어느 정도 영향을 미칠 수 있습니다.

이 함수는 부터 0 대상 큐비트당 1개의 체크에 이르는 수의 체크를 포함하는 인스턴스를 생성합니다 qiskit_paulice.CheckedCircuit . 체크 횟수가 늘어남에 따라 비용 함수가 어떻게 수렴하는지 살펴보는 것은 유익할 수 있는데, 이는 더 적은 수의 체크로도 비용이 수렴하는 것을 확인할 수 있기 때문이다.

효과적인 시공간 파울리 검정 방법을 찾는 방법에 대한 자세한 내용은 다음을 참조하십시오 보충 조항 마르티엘, 자바디의 II-VI.

매개변수

  • circuit (QuantumCircuit) – 시공간 파울리 체크무늬로 꾸민 클리포드 회로. 회로는 적어도 하나의 큐비트에 대한 측정을 통해 종결되어야 합니다. 이 회로는 가상 큐비트 또는 물리적 큐비트에 정의될 수 있습니다. ancilla_qubits회로에 레이아웃이 있는 경우, 사용자는 다음을 제공해야 합니다.

  • target_qubits (Sequence[int]) – 체크 큐비트와 페이로드를 얽히게 하는 데 circuit 사용될 큐비트 인덱스. ancilla_qubits이 레이아웃(ISA 모드)을 가질 때 circuit , 이들은 물리적 큐비트 인덱스이며, 와 동일한 인덱스 공간에 속합니다.

  • noise_model (NoiseModel) – 대상 장치에 미치는 소음의 영향을 설명하는 소음 모델. 이 모델은 피킹 과정에서 특정 검사의 효과를 추정하는 데 사용될 것입니다. 학습된 파울리-린드블라드 잡음으로부터 잡음 모델을 생성할 수도 있지만, 백엔드 벤치마크 데이터에서 생성된 잡음을 대략적으로 근사하는 것만으로도 대개 충분합니다. 체크 삽입으로 인해 도입되었으나 제공된 GateWiseNoise 데이터에 포함되지 않은 보조/표적 에지는 자동으로 LayeredNoise 추론됩니다(제공된 데이터 전반에 걸친 파울리 쌍당 중앙값 비율); 이를 재정의하려면 명시적으로 지정하십시오.

  • cost (Literal['gamma', 'LER']) –

    최적화할 지표. 이거나 "LER" (논리적 오류율)일 "gamma" 수 있다.

    • "gamma": 역논리 노이즈 채널(즉, 검증을 통해 감지할 수 없는 측정 광뿔 내의 오류로 구성된 노이즈 채널)과 관련된 감마 값.
    • "LER": 사후 선별 후의 경험적 논리적 오류율. 몬테카를로 시뮬레이션을 수행하여, 후선별된 샷 중 노출되지 않은 논리적 노이즈의 영향을 받는 비율을 계산합니다.
  • "LER"cost_nshots (int) – 몬테카를로 기반 비용 지표에서 사용된 몬테카를로 시뮬레이션 횟수 (현재는 만 해당).

  • method (Literal['windowed', 'genetic', 'windowed_genetic']) –

    피킹 방법("windowed", "genetic", 또는 "windowed_genetic")을 선택하십시오. 각 메서드는 순차적으로 target_qubits 검증을 추가합니다. 일단 특정 대상 큐비트에 체크가 확정되면, 이후 체크가 더 추가되더라도 해당 체크는 취소되지 않습니다. 각 메서드는 오류 탐지 능력이 최대인(즉, 가장 낮은 cost) 검사 항목을 선택합니다.

    • "windowed": 각 대상 큐비트의 전선 중 작은 부분 집합을 표본 추출하여 적절한 검사 항을 찾는다
    • "genetic": 각 대상 큐비트의 전체 와이어 공간에서 일련의 후보 검사 항을 도출한다
    • "windowed_genetic": 각 대상 큐비트의 전선 중 무작위로 선택된 창 내에서 유전적 탐색을 수행한다
  • target_qubitsancilla_qubits (Sequence[int] | None) – 출력 회로에 체크 보조 장치를 배치할 위치를 지정하는 물리적 큐비트 인덱스 목록(각 인덱스당 하나씩). None가 아닐 때 circuit.layout 필요합니다. i``ancilla_qubits[i] \ 번째 검사를 구현할 때 와 target_qubits[i] 얽힘 게이트를 공유할 것입니다.

  • check_creg_name (str) – 검증 측정을 위한 클래식 레지스터의 이름 (기본값: “checks_c”)

  • check_qreg_name (str) – 출력 회로에 있는 체크 어실라를 저장하는 양자 레지스터의 이름(기본값: “checks_q”). ISA 모드에서는 무시됩니다.

  • seed (int | None) – 적절한 검사 항목을 찾는 과정에서 무작위성을 제어하기 위한 난수 시드. 이 시드는 알고리즘 내의 일부 무작위성을 제어하지만, 비용 함수나 두 가지 유전적 선택 방법 중 하나를 사용할 LER 때는 여전히 비결정성이 존재합니다. Nonemethod="windowed"cost="gamma" 조합은 가 가 아닐 때 seed 완전히 결정론적이다.

리턴

인스턴스 목록 qiskit_paulice.CheckedCircuit – 검사 항목이 전혀 없는 기본 회로를 포함하는 인스턴스와, 추가된 각 검사 항목에 해당하는 인스턴스 하나씩. 출력의 마지막 요소에는 유효한 검사 집합을 찾을 수 있다고 가정할 때, 모든 대상 큐비트에 대한 검사가 qiskit_paulice.CheckedCircuit 포함되어 있습니다.

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