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 오류를 적용합니다 |
| CircuitGenerationMethod |
Q# 인터프리터 공용 API. 이 모듈은 패키지 내 키 내보내기:
|
| DepolarizingNoise |
시뮬레이션에 사용할 보정 노이즈입니다. 새 DepolarizingNoise 인스턴스를 만듭니다. 디폴라화 채널은 각각 확률이 있는 Pauli-X, Pauli-Y 또는 Pauli-Z 오류를 적용합니다 |
| Pauli |
Q# Pauli 연산자입니다. |
| PauliNoise |
시뮬레이션에 사용할 Pauli 노이즈는 Pauli-X, Pauli-Y 및 Pauli-Z 오류의 확률로 표시됩니다. 지정된 오류 확률을 사용하여 새 PauliNoise 인스턴스를 만듭니다. |
| PhaseFlipNoise |
시뮬레이션에 사용할 위상 대칭 이동 노이즈입니다. 새 PhaseFlipNoise 인스턴스를 만듭니다. 위상 대칭 이동 채널은 확률과 함께 Pauli-Z 오류를 적용합니다 |
| 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
|
항목 식입니다. 또는 호출 가능을 제공할 수 있으며, 이는 Q# 호출 가능이어야 합니다. Default value: None
|
|
*args
필수
|
호출 가능으로 전달할 인수(제공된 경우)입니다. |
키워드 전용 매개 변수
| Name | Description |
|---|---|
|
operation
|
합성할 작업입니다. 작업 또는 람다 식의 이름일 수 있습니다. 작업은 큐비트 또는 큐비트의 배열만 매개 변수로 사용해야 합니다. Default value: None
|
|
generation_method
|
회로 생성에 사용할 메서드입니다.
ClassicalEval 는 회로 생성 시 클래식 제어 흐름을 평가합니다.
Simulate 는 전체 시뮬레이션을 실행하여 회로를 추적합니다.
Static 는 부분 평가를 사용하며 대상이 아닌 프로필이 Default value: None
|
|
max_operations
|
회로에 포함할 최대 작업 수입니다.
기본값은 Default value: None
|
|
source_locations
|
이면 Default value: False
|
|
group_by_scope
|
이 경우 Default value: True
|
|
prune_classical_qubits
|
이면 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 문자열을 가져오는 데 사용합니다 |
dump_circuit
시뮬레이터의 현재 상태를 보여 주는 회로를 덤프합니다.
이 회로에는 시뮬레이터에서 현재 지점까지 적용된 게이트가 포함됩니다.
인터프리터를 trace_circuit=True로 초기화해야 합니다.
dump_circuit() -> Circuit
반품
| 형식 | Description |
|---|---|
|
<xref:Circuit>
|
현재 회로 추적입니다. |
예외
| 형식 | Description |
|---|---|
|
인터프리터가 초기화되지 않은 경우 |
dump_machine
시뮬레이터의 스파스 상태 벡터를 StateDump 개체로 반환합니다.
dump_machine() -> StateDump
반품
| 형식 | Description |
|---|---|
|
시뮬레이터의 상태입니다. |
dump_operation
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 |
|---|---|
|
소스 코드의 마지막 문에서 반환된 값이거나, true인 경우 |
예외
| 형식 | 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# 언어 기능에 해당합니다. 유효한 값은 다음과 같습니다.
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이면 |
예외
| 형식 | 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이면 초기값이 엔트로피에서 생성됩니다. |