qre 패키지

클래스

Application

애플리케이션은 특정 문제 인스턴스에 대한 추적을 생성하는 메서드와 함께 양자 계산 문제의 클래스를 정의합니다.

애플리케이션과 추적 매개 변수를 구분합니다. 애플리케이션 매개 변수는 고려할 애플리케이션의 특정 인스턴스를 정의합니다. 추적 매개 변수는 추적을 생성하는 방법을 정의합니다. 그들은 우리가 문제를 해결하는 특정 방법을 변경하지만, 문제 자체가 아닙니다.

예를 들어 양자 암호화에서 애플리케이션 매개 변수는 RSA 주요 제품의 키 크기를 정의할 수 있으며 추적 매개 변수는 암호화를 중단하는 데 사용할 알고리즘과 그 안에 있는 매개 변수를 정의합니다.

Architecture

양자 하드웨어 아키텍처에 대한 추상 기본 클래스입니다.

Block
Constraint
ConstraintBound
Encoding
EstimationResult
EstimationTable

양자 리소스 예측 결과 테이블입니다.

list[EstimationTableEntry] 예측 데이터를 표시하기 위해 구성 가능한 열을 확장하고 제공합니다. 기본적으로 테이블에는 큐비트, 런타임 (a로 pandas.Timedelta표시됨) 및 오류 열이 포함됩니다. 추가 열을 추가하거나 삽입할 수 있습니다add_column.insert_column

기본 열을 사용하여 빈 예측 테이블을 초기화합니다.

EstimationTableColumn

에 있는 단일 열의 정의입니다 EstimationTable.

EstimationTableEntry

의 단일 행입니다 EstimationTable.

각 항목은 애플리케이션 추적 및 아키텍처 ISA의 특정 조합에 대한 하나의 Pareto 최적 예측 결과를 나타냅니다.

FactoryResult
ISA
ISAContext

열거형을 통해 전달된 컨텍스트로, 공유 상태를 유지합니다.

지정된 아키텍처에 대한 ISA 컨텍스트를 초기화합니다.

ISAQuery

ISA 열거형 트리의 모든 노드에 대한 추상 기본 클래스입니다.

열거형 노드는 아키텍처에서 시작하여 오류 수정 스키마와 같은 ISA 변환에 의해 수정된 ISA에 대한 검색 공간의 구조를 정의합니다. (sum) 및 (product)와 + 같은 * 연산자를 사용하여 복잡한 열거형 전략을 작성할 수 있습니다.

ISARefNode

열거형 컨텍스트에서 바인딩된 ISA에 대한 참조입니다.

이 노드는 컨텍스트에서 바인딩을 조회하고 바인딩된 ISA를 생성합니다.

ISARequirements
ISATransform

ISA(예: QEC 스키마) 간의 변환에 대한 추상 기본 클래스입니다.

ISA 변환은 필수 입력 ISA(예: 아키텍처 제약 조건)에서 제공된 출력 ISA(논리적 지침)로의 매핑을 정의합니다. 구성 매개 변수의 열거를 지원합니다.

InstructionFrontier
InstructionSource
LatticeSurgery

격자 수술 추적 변환.

추적을 격자 수술 기반 리소스 추정에 적합한 형태로 변환합니다.

PSSPC

PSSPC(Pauli 기반 계산 추적 변환).

회전 게이트 및 선택적으로 CCX 게이트를 격자 수술 리소스 추정에 적합한 T 상태 기반 작업으로 변환합니다.

Trace
TraceQuery

애플리케이션에서 변환된 추적을 열거하는 쿼리입니다.

추적 쿼리는 각각 기본 매개 변수 도메인을 재정의하기 위한 선택적 키워드 인수를 사용하여 추적 변환 시퀀스를 연결합니다.

TraceTransform

추적 변환에 대한 추상 기본 클래스입니다.

함수

block_linear_function

block_linear_function(block_size, slope, offset=None)

매개 변수

Name Description
block_size
필수
slope
필수
offset
Default value: None

constant_function

constant_function(value)

매개 변수

Name Description
value
필수

constraint

명령 제약 조건을 만듭니다.

constraint(id: int, encoding: Encoding = Encoding.PHYSICAL, *, arity: int | None = 1, error_rate: ConstraintBound | None = None, **kwargs: bool) -> Constraint

매개 변수

Name Description
id
필수
int

명령 ID입니다.

encoding

명령 인코딩입니다. PHYSICAL (0) 또는 LOGICAL (1).

Default value: 0
arity
필수
<xref:Optional>[int]

명령의 심각도입니다. None이면 명령이 가변 경도를 갖는 것으로 간주됩니다. 기본값은 1입니다.

error_rate
필수
<xref:Optional>[<xref:ConstraintBound>]

오류율에 대한 제약 조건입니다.

**kwargs
필수

일치하는 명령이 있어야 하는 필수 속성입니다. 유효한 속성 이름: 거리입니다. 속성을 요구하려면 True로 설정합니다.

키워드 전용 매개 변수

Name Description
arity
Default value: 1
error_rate
Default value: None

반품

형식 Description

명령 제약 조건입니다.

예외

형식 Description

알 수 없는 속성 이름이 kwargs에 제공된 경우

estimate

지정된 애플리케이션 인스턴스 및 아키텍처에 대한 리소스 요구 사항을 예측합니다.

애플리케이션 인스턴스는 여러 추적을 반환할 수 있습니다. 각 추적은 여러 추적 변환을 순서대로 적용하는 추적 쿼리에 의해 변환됩니다. 각 변환은 여러 추적을 반환할 수 있습니다. 마찬가지로, 아키텍처의 ISA는 여러 ISA 변환을 순서대로 적용하는 ISA 쿼리에 의해 변환되며, 각 ISA는 여러 ISA를 반환할 수 있습니다. 변환된 추적과 ISA의 각 조합에 대해 예측이 수행됩니다. 결과는 EstimationTable로 수집되어 반환됩니다.

컬렉션에는 총 큐비트 수 및 총 런타임과 관련하여 최적의 결과만 포함됩니다.

메모

use_graph True로 설정된 경우 사용되는 정리 전략(기본값)

명령별 공간, 시간,

및 오류는 독립적으로 발생합니다. 그러나 결과의 총 큐비트 수

는 팩터리 공간과 런타임 간의 상호 작용에 따라 달라집니다.

factory_qubits = 복사본이 결정되는 × factory_space 복사본

by count.div_ceil(런타임/factory_time). 이 때문에 ISA

명령별 메트릭에서 지배되는 명령은 계속 가능

는 전역적으로 Pareto 최적 결과에 기여합니다(예: .

시간이 높을수록 복사본 수가 줄어들어 총 큐비트가 줄어들 수 있습니다.) 그것으로

결과, use_graph=True는 다음과 같은 일부 결과를 놓칠 수 있습니다.

use_graph=False를 찾을 수 있습니다. 완료 시 use_graph=False 사용

파레토 국경이 필요합니다.

estimate(application: Application, architecture: Architecture, isa_query: ISAQuery, trace_query: TraceQuery | None = None, *, max_error: float = 1.0, post_process: bool = False, use_graph: bool = True, name: str | None = None) -> EstimationTable

매개 변수

Name Description
application
필수

추정할 양자 애플리케이션입니다.

architecture
필수

대상 양자 아키텍처입니다.

isa_query
필수

아키텍처에서 ISA를 열거하는 ISA 쿼리입니다.

trace_query

애플리케이션에서 추적을 열거하는 추적 쿼리입니다.

Default value: None
max_error
필수

예측 결과에 허용되는 최대 오류입니다.

post_process
필수

True이면 Python 스레드 예측 경로(이후 처리 논리용)를 사용합니다. False(기본값)이면 Rust 병렬 추정 경로를 사용합니다.

use_graph
필수

True(기본값)이면 ISA 그래프를 작성하고 추정하는 동안 최적이 아니면 ISA를 정리하는 Rust 추정 경로를 사용합니다. False이면 정리를 수행하지 않고 각 추적에 대해 모든 ISA를 열거하는 Rust 추정 경로를 사용합니다.

name
필수
<xref:Optional>[str]

예측에 대한 선택적 이름입니다. 지정된 경우 모든 항목에 대한 결과 테이블에 첫 번째 열로 추가됩니다.

키워드 전용 매개 변수

Name Description
max_error
Default value: 1.0
post_process
Default value: False
use_graph
Default value: True
name
Default value: None

반품

형식 Description

최적 예측 결과를 포함하는 테이블입니다.

generic_function

generic_function(func)

매개 변수

Name Description
func
필수

instruction_name

instruction_name(id)

매개 변수

Name Description
id
필수

linear_function

linear_function(slope)

매개 변수

Name Description
slope
필수

plot_estimates

큐비트와 런타임을 표시하는 예측 결과를 표시합니다.

x축에 총 런타임이 표시되고 y축에 실제 큐비트의 총 수가 표시되는 로그 로그 산점도를 만듭니다.

데이터는 단일 EstimationTable 또는 반복 테이블일 수 있습니다. 여러 테이블이 제공되면 각각 별도의 계열로 그려집니다. 테이블에 EstimationTable.name 통해 설정된 경우 해당 계열의 estimate범례 레이블로 사용됩니다.

runtime_unit 경우(기본값) x축은 None 나노초에서 수세기까지 사람이 읽을 수 있는 시간 단위 틱 레이블을 사용합니다. 단위 문자열이 지정되면(예: "hours") 모든 런타임이 해당 단위로 크기 조정되고 x축 레이블에는 단위가 포함되고 틱은 일반 숫자입니다.

지원되는 runtime_unit 값: "ns", "µs" (또는 "us"), "ms","s", "min", "hours""days", "weeks", . "months""years"

plot_estimates(data: EstimationTable | Iterable[EstimationTable], *, runtime_unit: str | None = None, figsize: tuple[float, float] = (15, 8), scatter_args: dict[str, Any] = {'marker': 'x'})

매개 변수

Name Description
data
필수

단일 EstimationTable 또는 그릴 EstimationTable 개체의 반복 가능 개체입니다.

runtime_unit
필수

x축의 크기를 조정할 시간 단위(선택 사항)입니다.

figsize
필수

그림 차원(인치)을 (으로)(width, height)

scatter_args
필수

점을 그리는 경우 전달할 matplotlib.axes.Axes.scatter 추가 키워드 인수입니다.

키워드 전용 매개 변수

Name Description
runtime_unit
Default value: None
figsize
Default value: (15, 8)
scatter_args
Default value: {'marker': 'x'}

반품

형식 Description
<xref:matplotlib.figure.Figure>

플롯을 포함하는 그림입니다.

예외

형식 Description

matplotlib가 설치되지 않은 경우

모든 테이블이 비어 있거나 runtime_unit 인식되지 않는 경우

property_name

property_name(id)

매개 변수

Name Description
id
필수

property_name_to_key

property_name_to_key(name)

매개 변수

Name Description
name
필수