RoundBasedFactory 클래스

라운드 기반 증류 파이프라인을 사용하여 T 게이트 명령을 생성하는 매직 스테이트 팩터리입니다.

이 팩터리는 증류 단위(예: "15대 1 RM 준비" 및 "15대 1 공간 효율적")의 조합을 탐색하여 목표 오류율을 달성하면서 시간과 공간을 최소화하는 최적의 구성을 찾습니다. 물리적 수준 증류(입력 T 게이트가 물리적으로 인코딩된 경우) 및 논리 수준 증류(표면 코드를 통해 격자 수술 사용)를 모두 지원합니다.

증류 라운드의 성공 확률을 고려하기 위해 팩터리는 각 라운드가 충족해야 하는 실패 확률 요구 사항(기본값은 1%)을 사용하여 파이프라인을 모델링합니다. 이 요구 사항에 맞게 라운드당 증류 단위 수가 조정되어 전체 공간 요구 사항에 영향을 줍니다.

공간 요구 사항은 라운드당 공간(예: 합계 또는 최대값)을 집계하는 사용자 제공 함수를 사용하여 계산됩니다. 함수는 sum 큐비트가 라운드 간에 재사용되지 않는 경우를 모델로 하고, max 함수는 큐비트가 라운드 간에 재사용되는 경우를 모델화합니다.

논리 수준 증류 단위의 열거를 위해 팩터리는 사용자가 제공한 ISAQuery (기본값 SurfaceCode.q()) 다양한 표면 코드 구성 및 해당 격자 수술 지침을 탐색합니다. 사용자가 제공해야 하며 필요한 지침의 하위 집합만 포함할 수 있으므로 제공된 구현 ISA에서 자동으로 파생될 수 없습니다. 사용자는 제공된 쿼리가 이 팩터리를 사용하는 아키텍처와 일치하는지 확인해야 합니다.

결과는 효율성을 위해 디스크에 캐시됩니다.

참조:

  • 세르게이 브라비야, 알렉세이 키타예프: 이상적인 클리포드 게이트와 시끄러운 앤실라, arXiv:quant-ph/0403025

  • Michael E. Beverland, Prakash Murali, Matthias Troyer, Krysta M. Svore, Torsten Hoefler, Vadym Kliuchnikov, Guang Hao Low, Mathias Soeken, Aarthi Sundaram, Alexander Vaschillo: 실용적인 양자 어드밴티지로 확장하기 위한 요구 사항 평가, arXiv:221.07

생성자

RoundBasedFactory(code_query: ~qdk.qre._isa_enumeration.ISAQuery = <factory>, physical_qubit_calculation: ~typing.Callable[[~typing.Iterable], int] = <built-in function sum>, cache_dir: ~pathlib.Path = WindowsPath('C:/Users/cloudtest/.cache/re3/round_based'), use_cache: bool = True)

매개 변수

Name Description
code_query
Default value: <factory>
physical_qubit_calculation
Default value: <built-in function sum>
cache_dir
Default value: C:\Users\cloudtest\.cache\re3\round_based
use_cache
Default value: True

메서드

provided_isa
required_isa

provided_isa

provided_isa(impl_isa: ISA, ctx: ISAContext) -> Generator[ISA, None, None]

매개 변수

Name Description
impl_isa
필수
ctx
필수

required_isa

static required_isa() -> ISARequirements

특성

physical_qubit_calculation

Callable[[Iterable], int] 함수는 라운드별 공간 요구 사항(예: 합계 또는 최대)의 총 실제 큐비트를 계산합니다. 기본값은 합계입니다.

위치 전용 매개 변수

Name Description
iterable

매개 변수

Name Description
start
Default value: 0

code_query

논리 증류 단위에 대한 QEC 코드를 열거하는 ISAQuery 쿼리입니다. 기본값은 SurfaceCode.q()입니다.

code_query: ISAQuery

cache_dir

계산된 팩터리 구성을 캐싱하기 위한 경로 디렉터리입니다. 기본값은 ~/.cache/re3/round_based.

cache_dir: Path = WindowsPath('C:/Users/cloudtest/.cache/re3/round_based')

use_cache

bool 캐시된 결과를 사용할지 여부입니다. 기본값은 True입니다.

use_cache: bool = True