Q-CTRL 동역학 시뮬레이터 API 참조
Qiskit Functions — 파트너 기관에서 개발한 사전 구축형 도구 — 는 소프트웨어 개발 워크플로의 일부를 추상화하여, 유틸리티급 알고리즘 탐색 및 애플리케이션 개발을 간소화하고 가속화합니다. 이 Qiskit 함수에 대한 가이드를 보려면 클릭하세요.
Q-CTRL 동역학 시뮬레이터 사용 안내서
Dynamics Simulator는 회로 대신 물리 모델 설명을 입력으로 받아들입니다. Fire Opal은 대상 백엔드에 맞게 회로를 구축하고 최적화하므로, 어떤 것도 트랜스파일하거나 사전 컴파일하지 마십시오.
입력
이 API가 허용하는 모든 입력 매개변수는 다음 목록을 참조하십시오. 모든 입력은 키워드 인자로 전달됩니다. model, simulation, 및 는 각각 Python 사전(의 경우 사전의 리스트 observables) 또는 JSON 문자열로 지정할 수 observables 있습니다. 이 함수는 알 수 없는 최상위 인수를 거부합니다.
model
유형: dict[str, Any] or str
사전 또는 JSON 문자열 형식으로 주어진 페르미-허바드 모델. 이 필드에 포함된 필드에 대해서는 ‘모델 필드’를 참조하십시오.
- 필수: Yes
- 예:
{"hopping_amplitude": 1.0, "on_site_interaction": [2.0, 2.5, 2.0], "chemical_potential": 0.5}
모델 필드
hopping_amplitude
유형: float or list[float]
터널링 진폭. 스칼라 값은 모든 본드에 브로드캐스트됩니다. 목록에는 len(initial_state) - 1 항목이 포함되어야 합니다(채권당 하나씩).
on_site_interaction
유형: float or list[float]
현장 상호작용의 강도. 스칼라 값은 모든 사이트에 브로드캐스트됩니다. 목록에는 len(initial_state) 항목이 포함되어야 합니다(사이트당 하나씩).
chemical_potential
유형: float or list[float]
화학 포텐셜. 스칼라 값은 모든 사이트에 브로드캐스트됩니다. 목록에는 len(initial_state) 항목이 포함되어야 합니다(사이트당 하나씩).
simulation
유형: dict[str, Any] or str
사전 또는 JSON 문자열 형식으로 제공되는 Trotter 시뮬레이션 방식. 이 필드에 포함된 항목에 대해서는 ‘시뮬레이션 필드’를 참조하십시오.
- 필수: Yes
- 예:
{"method": "trotter", "step_count": 5, "time_step": 0.1}
시뮬레이션 분야
method
유형: str
시뮬레이션 방법. "trotter" 이것이 지원되는 방법입니다.
- 선택사항:
trotter
step_count
유형: int
트로터 단계 수.
time_step
유형: float
각 트로터 단계의 지속 시간.
observables
유형: list[dict[str, Any]] or str
측정할 스파스 점유 연산자들로, 관측 변수당 하나의 사전이 있으며, 사전 목록이나 JSON 문자열 형태로 제공됩니다. 관측 가능한 항목이 적어도 하나 포함되어야 합니다. 각 사전이 포함하는 필드에 대해서는 ‘관측 가능한 필드’를 참조하십시오.
- 필수: Yes
- 예:
[{"operators": [[["Nup", 0]]], "coefficients": [1.0]}]
관측 가능한 필드
operators
유형: list[list[list[str, int]]]
관측 가능한 양의 정의. 각 항은 [operator_name, site_index] 쌍의 곱으로 주어지며, 여기서 는 "Nup" 이거나 이다 operator_name``"Ndn" .
coefficients
유형: list[float]
.의 각 항마다 하나의 계수가 있습니다 operators.
initial_state
유형: str
격자 점마다 하나의 문자가 있는 초기 포크 상태. 비어 있지 않아야 합니다. 격자 점의 수는 이며 len(initial_state), 시뮬레이션에는 2 * len(initial_state) 큐비트가 사용됩니다. 백엔드에는 적어도 그 정도의 큐비트가 있어야 합니다.
- 필수: Yes
- 허용되는 문자:
"e": (비어 있음) 미개발 부지"u": (up) 단독 점유, 스핀 업"d": (하향) 단독 점유, 스핀 다운"b": (둘 다) 이중 점유됨
- 예:
"udb"
shots
유형: int
각 회로 실행에 사용할 샷 수. 이 인수는 양의 정수여야 합니다.
- 필수: Yes
- 예:
1000
backend_name
유형: str
기본값: Automatic selection
사용할 백엔드의 이름. 이름을 지정하지 않으면, 이 함수는 충분한 큐비트를 가진 백엔드를 자동으로 선택합니다.
- 필수: 아니오
- 예:
"ibm_phoenix"
옵션
유형: dict
기본값: {}
options.로 전달되는 추가 실행 옵션, 옵션은 중첩된 사전 형태로 지정됩니다. 자세한 내용과 기본값은 옵션 목록 을 참조하십시오.
- 필수: 아니오
- 예:
{"job_tags": ["my_tag"]}
옵션 목록
session_id
유형: str
기본값: ""
기존 IBM Quantum Compute Service 세션 ID.
- 예:
"cw4r3je6f0t010870y3g"
job_tags
유형: list[str]
기본값: []
직무 태그 목록.
- 예:
["job_tag1", "job_tag2"]
출력
이 API의 출력 결과는 시뮬레이션 결과와 메타데이터가 dict 포함된 입니다. 이 결과에는 트로터화(Trotterized)된 시간 진화의 각 시간 단계에서 요청된 관측량의 기대값이 포함되어 있습니다.
유형: dict[str, Any]
‘출력 구조’ 항목에 나열된 시뮬레이션 결과 및 메타데이터.
- 예:
{"observable_expectation_values": [[1.0, 0.96, 0.91],[0.0, 0.04, 0.08]], "observables": [{"operators": [[["Nup", 0]]],"coefficients": [1.0]}], "warnings": [], "metadata": {}}
출력 구조
observable_expectation_values
유형: list[list[float]]
기대값은 입력 관측 변수마다 하나의 목록으로, 와 동일한 순서로 제공됩니다 observables. 각 목록에는 초기 상태를 포함하여 값들이 step_count + 1 들어 있습니다.
observables
유형: list[dict[str, Any]]
측정된 관측량은 입력에서 반사되어 돌아왔다.
warnings
유형: list[str]
시뮬레이션을 컴파일하거나 실행하는 과정에서 발생한 경고.
metadata
resource_usage
유형: dict
실행의 각 단계별 CPU 및 QPU 소요 시간(초 단위)의 내역. 각 단계에는 CPU_TIME 와 가 있습니다 QPU_TIME.
RUNNING: MAPPING
유형: dict
문제를 해당 장치에 매핑합니다.
RUNNING: OPTIMIZING_HARDWARE
유형: dict
하드웨어에 맞게 회로를 최적화합니다.
RUNNING: WAITING_QPU
유형: dict
QPU 대기열에서 대기한 시간(CPU 시간).
RUNNING: EXECUTING_QPU
유형: dict
QPU에서 실행하는 시간(QPU 시간).
RUNNING: POST_PROCESSING
유형: dict
결과 후처리.