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