qsharp 모듈

Q# 인터프리터 공용 API.

이 모듈은 패키지 내 qdk 의 Q# 인터프리터 기능에 대한 공용 화면입니다.

키 내보내기:

  • init - Q# 인터프리터를 초기화하거나 다시 설정합니다.
  • eval - Q# 식을 평가하고 해당 값을 반환합니다.
  • run — 하나 이상의 샷에 대해 Q# 항목 식을 실행합니다.
  • compile — 하드웨어 제출을 위해 Q# 원본을 QIR로 컴파일합니다.
  • circuit — Q# 코드에서 회로 다이어그램을 합성합니다.
  • estimate — 양자 리소스를 예측합니다(사용되지 않음, 대신 사용 qre ).
  • logical_counts - Q# 코드에서 논리 게이트 수를 추출합니다.
  • dump_machine — 현재 시뮬레이터 상태를 .로 StateDump반환합니다.
  • dump_circuit- 추적된 회로(필요)를 init반환합니다trace_circuit=True.
  • dump_operation - Q# 연산의 단위 행렬을 계산합니다.
  • set_quantum_seed, set_classical_seed — RNG 시드를 제어합니다.
  • estimate_custom - 사용자가 제공한 알고리즘, 큐비트 및 코드 매개 변수를 사용하여 제네릭 리소스 추정기를 실행합니다.
  • QSharpError - Q# 컴파일 또는 런타임 오류에서 발생합니다.
  • TargetProfile — 컴파일 대상 프로필 열거형입니다.
  • Result, Pauli — Q# 기본 형식입니다.
  • CircuitGenerationMethod — 회로를 합성하는 방법을 제어합니다.
  • StateDump, ShotResult — 인터프리터 출력 형식입니다.
  • PauliNoise, DepolarizingNoise, BitFlipNoisePhaseFlipNoise - 시뮬레이션을 위한 노이즈 모델입니다.

클래스

BitFlipNoise

시뮬레이션에 사용할 비트 대칭 이동 노이즈입니다.

BitFlipNoise 인스턴스를 만듭니다.

비트 대칭 이동 채널은 확률과 함께 Pauli-X 오류를 적용합니다 p.

CircuitGenerationMethod

Q# 인터프리터 공용 API.

이 모듈은 패키지 내 qdk 의 Q# 인터프리터 기능에 대한 공용 화면입니다.

키 내보내기:

  • init - Q# 인터프리터를 초기화하거나 다시 설정합니다.
  • eval - Q# 식을 평가하고 해당 값을 반환합니다.
  • run — 하나 이상의 샷에 대해 Q# 항목 식을 실행합니다.
  • compile — 하드웨어 제출을 위해 Q# 원본을 QIR로 컴파일합니다.
  • circuit — Q# 코드에서 회로 다이어그램을 합성합니다.
  • estimate — 양자 리소스를 예측합니다(사용되지 않음, 대신 사용 qre ).
  • logical_counts - Q# 코드에서 논리 게이트 수를 추출합니다.
  • dump_machine — 현재 시뮬레이터 상태를 .로 StateDump반환합니다.
  • dump_circuit- 추적된 회로(필요)를 init반환합니다trace_circuit=True.
  • dump_operation - Q# 연산의 단위 행렬을 계산합니다.
  • set_quantum_seed, set_classical_seed — RNG 시드를 제어합니다.
  • estimate_custom - 사용자가 제공한 알고리즘, 큐비트 및 코드 매개 변수를 사용하여 제네릭 리소스 추정기를 실행합니다.
  • QSharpError - Q# 컴파일 또는 런타임 오류에서 발생합니다.
  • TargetProfile — 컴파일 대상 프로필 열거형입니다.
  • Result, Pauli — Q# 기본 형식입니다.
  • CircuitGenerationMethod — 회로를 합성하는 방법을 제어합니다.
  • StateDump, ShotResult — 인터프리터 출력 형식입니다.
  • PauliNoise, DepolarizingNoise, BitFlipNoisePhaseFlipNoise - 시뮬레이션을 위한 노이즈 모델입니다.
DepolarizingNoise

시뮬레이션에 사용할 보정 노이즈입니다.

DepolarizingNoise 인스턴스를 만듭니다.

디폴라화 채널은 각각 확률이 있는 Pauli-X, Pauli-Y 또는 Pauli-Z 오류를 적용합니다 p / 3.

Pauli

Q# Pauli 연산자입니다.

PauliNoise

시뮬레이션에 사용할 Pauli 노이즈는 Pauli-X, Pauli-Y 및 Pauli-Z 오류의 확률로 표시됩니다.

지정된 오류 확률을 사용하여 새 PauliNoise 인스턴스를 만듭니다.

PhaseFlipNoise

시뮬레이션에 사용할 위상 대칭 이동 노이즈입니다.

PhaseFlipNoise 인스턴스를 만듭니다.

위상 대칭 이동 채널은 확률과 함께 Pauli-Z 오류를 적용합니다 p.

QSharpError

Q# 인터프리터에서 반환된 오류입니다.

Result

Q# 측정 결과입니다.

ShotResult

샷의 단일 결과입니다.

StateDump

Q# 인터프리터에서 반환된 상태 덤프입니다.

TargetProfile

Q# 대상 프로필입니다.

대상 프로필은 Q# 프로그램을 실행하는 데 사용할 하드웨어 또는 시뮬레이터의 기능을 설명합니다.

함수

circuit

Q# 프로그램의 회로를 합성합니다. 항목 식 또는 작업을 제공해야 합니다.

circuit(entry_expr: str | Callable | GlobalCallable | Closure | None = None, *args, operation: str | None = None, generation_method: CircuitGenerationMethod | None = None, max_operations: int | None = None, source_locations: bool = False, group_by_scope: bool = True, prune_classical_qubits: bool = False) -> Circuit

매개 변수

Name Description
entry_expr
str 또는 Callable

항목 식입니다. 또는 호출 가능을 제공할 수 있으며, 이는 Q# 호출 가능이어야 합니다.

Default value: None
*args
필수

호출 가능으로 전달할 인수(제공된 경우)입니다.

키워드 전용 매개 변수

Name Description
operation
str

합성할 작업입니다. 작업 또는 람다 식의 이름일 수 있습니다. 작업은 큐비트 또는 큐비트의 배열만 매개 변수로 사용해야 합니다.

Default value: None
generation_method

회로 생성에 사용할 메서드입니다. ClassicalEval 는 회로 생성 시 클래식 제어 흐름을 평가합니다. Simulate 는 전체 시뮬레이션을 실행하여 회로를 추적합니다. Static 는 부분 평가를 사용하며 대상이 아닌 프로필이Unrestricted 필요합니다. 생성 메서드를 None 자동으로 선택하는 기본값입니다.

Default value: None
max_operations
int

회로에 포함할 최대 작업 수입니다. 기본값은 None 제한이 없음을 의미합니다.

Default value: None
source_locations

이면 True각 게이트에 원본 위치에 주석을 추가합니다.

Default value: False
group_by_scope

이 경우 True함수 선언 또는 루프 블록과 같은 포함 범위별로 작업을 그룹화합니다.

Default value: True
prune_classical_qubits

이면 True양자 게이트에서 사용되지 않는 큐비트를 제거합니다(예: 클래식 컨트롤로만 사용되는 큐비트).

Default value: False

반품

형식 Description
<xref:Circuit>

합성 회로입니다.

예외

형식 Description

회로를 합성하는 동안 오류가 발생한 경우

compile

Q# 소스 코드를 대상으로 제출할 수 있는 프로그램으로 컴파일합니다. 항목 식 또는 인수가 있는 호출 가능 항목을 제공해야 합니다.

Example:

compile(entry_expr: str | Callable | GlobalCallable | Closure, *args) -> QirInputData

매개 변수

Name Description
entry_expr
필수

프로그램의 진입점으로 사용할 Q# 식입니다. 또는 호출 가능을 제공할 수 있으며, 이는 Q# 호출 가능이어야 합니다.

*args
필수

호출 가능으로 전달할 인수(제공된 경우)입니다.

반품

형식 Description
<xref:QirInputData>

컴파일된 프로그램입니다. QIR 문자열을 가져오는 데 사용합니다 str() .

dump_circuit

시뮬레이터의 현재 상태를 보여 주는 회로를 덤프합니다.

이 회로에는 시뮬레이터에서 현재 지점까지 적용된 게이트가 포함됩니다.

인터프리터를 trace_circuit=True로 초기화해야 합니다.

dump_circuit() -> Circuit

반품

형식 Description
<xref:Circuit>

현재 회로 추적입니다.

예외

형식 Description

인터프리터가 초기화되지 않은 경우 trace_circuit=True

dump_machine

시뮬레이터의 스파스 상태 벡터를 StateDump 개체로 반환합니다.

dump_machine() -> StateDump

반품

형식 Description

시뮬레이터의 상태입니다.

dump_operation

수행된 작업을 나타내는 복소수의 제곱 행렬을 반환합니다.

dump_operation(operation: str, num_qubits: int) -> List[List[complex]]

매개 변수

Name Description
operation
필수

수행할 작업이며 큐비트 목록에서 작동해야 합니다.

num_qubits
필수

사용할 큐비트 수입니다.

반품

형식 Description

연산을 나타내는 행렬입니다.

estimate

Q# 소스 코드에 대한 리소스를 예측합니다. 항목 식 또는 인수가 있는 호출 가능 항목을 제공해야 합니다.

버전 이후 사용되지 않음: 함수는 레거시 리소스 추정기 API를 사용합니다. qdk.qre를 대신 사용하세요.

estimate(entry_expr: str | Callable | GlobalCallable | Closure, params: Dict[str, Any] | List | EstimatorParams | None = None, *args) -> EstimatorResult

매개 변수

Name Description
entry_expr
필수

항목 식입니다. 또는 호출 가능을 제공할 수 있으며, 이는 Q# 호출 가능이어야 합니다.

params

실제 추정을 구성할 매개 변수입니다.

Default value: None
*args
필수

호출 가능으로 전달할 인수(제공된 경우)입니다.

반품

형식 Description

예상 리소스입니다.

estimate_custom

estimate_custom(algorithm, qubit, qec, factories=Ellipsis, *, error_budget=0.01, max_factories=None, logical_depth_factor=None, max_physical_qubits=None, max_duration=None, error_budget_pruning=False)

매개 변수

Name Description
algorithm
필수
qubit
필수
qec
필수
factories
Default value: Ellipsis

키워드 전용 매개 변수

Name Description
error_budget
Default value: 0.01
max_factories
Default value: None
logical_depth_factor
Default value: None
max_physical_qubits
Default value: None
max_duration
Default value: None
error_budget_pruning
Default value: False

eval

Q# 소스 코드를 평가합니다.

출력이 콘솔에 출력됩니다.

eval(source: str, *, save_events: bool = False) -> Any

매개 변수

Name Description
source
필수

평가할 Q# 소스 코드입니다.

키워드 전용 매개 변수

Name Description
save_events

true이면 모든 출력이 저장되고 반환됩니다. false이면 인쇄됩니다.

Default value: False

반품

형식 Description
Any

소스 코드의 마지막 문에서 반환된 값이거나, true인 경우 save_events 저장된 출력입니다.

예외

형식 Description

소스 코드를 평가하는 동안 오류가 발생하는 경우

init

Q# 인터프리터를 초기화합니다.

init(*, target_profile: TargetProfile = TargetProfile.Unrestricted, target_name: str | None = None, project_root: str | None = None, language_features: List[str] | None = None, trace_circuit: bool | None = None) -> Config

키워드 전용 매개 변수

Name Description
target_profile

대상 프로필을 설정하면 Q# 인터프리터가 특정 대상과 호환되는 프로그램을 생성할 수 있습니다. TargetProfile을(를) 참조하세요.

Default value: Unrestricted
target_name

호환되는 target_profile 설정을 유추하는 데 사용할 대상 컴퓨터의 선택적 이름입니다.

Default value: None
project_root

포함할 Q# 프로젝트가 있는 루트 디렉터리에 대한 선택적 경로입니다. qsharp.json 프로젝트 매니페스트를 포함해야 합니다.

Default value: None
language_features

사용하도록 설정할 언어 기능 플래그의 선택적 목록입니다. 이는 실험적 또는 미리 보기 Q# 언어 기능에 해당합니다. 유효한 값은 다음과 같습니다.

  • "v2-preview-syntax": Q# v2 미리 보기 구문을 사용하도록 설정합니다. 이렇게 하면 범위가 지정된 큐비트 할당 블록 양식()use q = Qubit() { ... }에 대한 지원이 제거되고 대신 문 양식이 필요합니다(use q = Qubit();). 또한 변경 가능한 변수 할당에 키워드를 set 사용해야 하는 요구 사항도 제거합니다.
Default value: None
trace_circuit

실행 중에 회로 추적을 사용하도록 설정합니다. dump_circuit 함수가 회로를 반환하려면 True를 전달해야 합니다. 회로 함수는 이 매개 변수의 영향을 받지 않으며 항상 회로를 생성합니다.

Default value: None

반품

형식 Description
<xref:Config>

Q# 인터프리터 구성입니다.

logical_counts

Q# 소스 코드에서 논리 리소스 수를 추출합니다. 항목 식 또는 인수가 있는 호출 가능 항목을 제공해야 합니다.

logical_counts(entry_expr: str | Callable | GlobalCallable | Closure, *args) -> LogicalCounts

매개 변수

Name Description
entry_expr
필수

항목 식입니다. 또는 호출 가능을 제공할 수 있으며, 이는 Q# 호출 가능이어야 합니다.

반품

형식 Description

논리적 게이트 수 측면에서 프로그램 리소스입니다.

run

지정된 샷 수에 대해 지정된 Q# 식을 실행합니다. 각 샷은 시뮬레이터의 독립적인 인스턴스를 사용합니다.

run(entry_expr: str | Callable | GlobalCallable | Closure, shots: int, *args, on_result: Callable[[ShotResult], None] | None = None, save_events: bool = False, noise: Tuple[float, float, float] | PauliNoise | BitFlipNoise | PhaseFlipNoise | DepolarizingNoise | NoiseConfig | None = None, qubit_loss: float | None = None, seed: int | None = None, type: Literal['sparse', 'clifford'] | None = None, num_qubits: int | None = None) -> List[Any]

매개 변수

Name Description
entry_expr
필수

항목 식입니다. 또는 호출 가능을 제공할 수 있으며, 이는 Q# 호출 가능이어야 합니다.

shots
필수

실행할 샷 수입니다.

*args
필수

호출 가능으로 전달할 인수(제공된 경우)입니다.

on_result
필수

각 결과와 함께 호출되는 콜백 함수입니다.

save_events
필수

true이면 각 샷의 출력이 저장됩니다. false이면 인쇄됩니다.

noise
필수

시뮬레이션에 사용할 노이즈입니다.

qubit_loss
필수

시뮬레이션에서 큐비트 손실의 확률입니다.

seed
필수

시뮬레이션에서 난수 생성기에 사용할 시드(있는 경우)입니다.

type
필수

사용할 시뮬레이터의 유형입니다. 지정하지 않으면 기본 스파스 상태 벡터 시뮬레이션이 사용됩니다.

num_qubits
필수

시뮬레이션 형식 "clifford"에 사용할 큐비트 수입니다. 지정하지 않으면 Clifford 시뮬레이터는 기본값인 1000큐비트를 가정합니다.

키워드 전용 매개 변수

Name Description
on_result
Default value: None
save_events
Default value: False
noise
Default value: None
qubit_loss
Default value: None
seed
Default value: None
type
Default value: None
num_qubits
Default value: None

반품

형식 Description

결과 또는 런타임 오류 목록입니다. true이면 save_events 목록이 ShotResult 반환됩니다.

예외

형식 Description

입력을 해석하는 동안 오류가 발생하는 경우

샷 수가 1보다 작은 경우

set_classical_seed

표준 라이브러리 클래식 난수 작업에 사용되는 난수 생성기의 초기값을 설정합니다. 이는 실행, 컴파일 또는 예상된 모든 Q# 코드에 적용됩니다.

set_classical_seed(seed: int | None) -> None

매개 변수

Name Description
seed
필수

클래식 난수 생성기에 사용할 시드입니다. None이면 초기값이 엔트로피에서 생성됩니다.

set_quantum_seed

양자 측정에 사용되는 난수 생성기의 시드를 설정합니다. 이는 실행, 컴파일 또는 예상된 모든 Q# 코드에 적용됩니다.

set_quantum_seed(seed: int | None) -> None

매개 변수

Name Description
seed
필수

양자 난수 생성기에 사용할 시드입니다. None이면 초기값이 엔트로피에서 생성됩니다.