Qunova HI-VQE 화학 API 참조
Qiskit Functions — 파트너 기관들이 개발한 사전 구축형 도구 — 소프트웨어 개발 워크플로의 일부를 추상화하여, 대규모 알고리즘 탐색 및 애플리케이션 개발을 간소화하고 가속화합니다. 이 Qiskit 함수에 대한 가이드를 보려면 클릭하세요.
HI-VQE 화학 Qiskit 함수 가이드
입력
geometry
유형: `Union[List[List[Union[str, Tuple[float, float, float]]]], str]`
이는 문자열이거나 원자와 좌표 쌍을 포함하는 구조화된 목록일 수 있습니다. 이 값이 문자열로 주어지는 경우, 반드시 직교 좌표계 형식의 분자 기하 구조여야 합니다. 이것이 리스트로 주어지는 경우, 각 요소가 원자 문자열과 좌표 튜플을 포함하는 리스트의 리스트 형태로 주어져야 합니다.
- 필수: Yes
- 예:
[['O', (0, 0, 0)], ['H', (0, 1, 0)], ['H', (0, 0, 1)]]또는"O 0 0 0; H 0 1 0; H 0 0 1"
backend_name
유형: `str`
쿼리를 실행할 백엔드의 이름.
- 필수: Yes
- 예:
ibm_fez
max_states
유형: `int`
대각화 시의 최대 부분공간 차원. 숫자가 완전제곱수가 아닐 경우 사용되는 주(state)의 수가 줄어듭니다.
- 필수: Yes
- 예:
100
max_expansion_states
유형: `int`
각 반복에 포함될 클래식 방식으로 생성된 CI 상태의 최대 개수.
- 필수: Yes
- 예:
10
molecule_options
유형: `dict`
HI-VQE의 입력으로 사용되는 분자와 관련된 옵션.
다음 목록에는 사전 molecule_options (dictionary)에 설정할 수 있는 모든 키와 값, 그리고 해당 데이터 유형과 기본값이 상세히 나와 있습니다. 모든 키는 선택 사항입니다.
charge
유형: `int`
기본값: `0`
분자 계의 총 순전하를 나타내는 정수. 기본값은 0이지만, 임의의 정수 값을 지정할 수 있습니다.
- 유효 범위: 다양함
basis
유형: `str`
기본값: `'sto-3g'`
기초 유형을 지정하는 문자열; 이 값들은 pyscf에 전달됩니다. 예를 들어: "sto-3g", "3-21g", "6-31g", "cc-pvdz"
- 유효 범위: 다양함
active_orbitals
유형: `List[int]`
기본값: Every orbital index
문제에 사용된 큐비트 수 n에 대해, 구간 [0, n) 내의 활성 궤도 지수 목록. 이 옵션을 지정하는 경우, frozen_orbitals 인수도 함께 지정해야 합니다.
- 유효 범위: 해당 문제에 적용 가능한 공간 궤도 지수
frozen_orbitals
유형: `List[int]`
기본값: `No indices`
active_orbitals와 동일한 범위에 속하는 고정 궤도 지수 목록. 이 옵션을 지정하는 경우, active_orbitals도 함께 지정해야 합니다. 주의할 점은, 점유된 궤도만 동결해야 한다는 것입니다. 왜냐하면 점유된 궤도 하나를 동결할 때마다 활성 전자의 수가 2개씩 줄어들기 때문입니다.
- 유효 범위: 활성 궤도를 제외한, 해당 문제에 유효한 공간 궤도 지수
orbital_coeffs
유형: `List[List[float]]`
기본값: `Hartree-Fock molecular orbitals`
이 시스템의 전자 반발 적분을 계산하는 데 사용된 공간 궤도의 계수들. 대표적인 예로는 하트리-팍 분자 궤도, 자연 궤도, AVAS 궤도 등이 있다.
- 유효 범위: 다양함
symmetry
유형: `Union[str, bool]`
기본값: `False`
초기 분자 계산을 수행하여 대칭 적응 궤도 기저를 구축할 때 점군 대칭을 적용하는 데 사용됩니다. 이러한 대칭 적응 궤도는 이후의 SCF 계산에 기초 함수로 사용된다. 기본값은 False입니다. True로 설정하면 해당 기능이 호출되어 임의의 점 그룹이 자동으로 감지되어 사용됩니다. 예를 들어, 특정 대칭성(예: symmetry = “Dooh”)이 지정된 경우, 분자 기하 구조가 이 필수 대칭성을 따르지 않으면 오류가 발생합니다.
- 유효 범위:
True또는False
symmetry_subgroup
유형: `Optional[str]`
기본값: `None`
탐지된 대칭의 부분군을 생성하는 데 사용할 수 있습니다. 대칭 키워드 인수를 사용하여 대칭을 지정한 경우에는 이 설정이 적용되지 않습니다.
- 유효 범위: pyscf 설명서를 참조하십시오
unit
nucmod
유형: `Optional[Union[dict, str]]`
기본값: `None`
사용할 핵 모델을 지정합니다. 기본적으로 포인트 핵 모델이 사용되며, 다른 값을 설정하면 가우시안 핵 모델이 활성화됩니다. 함수가 주어지면, 이 함수는 가우시안 핵 모델과 함께 사용되어 핵 전하 분포 값 'zeta'를 생성합니다.
- 유효 범위: pyscf 설명서를 참조하십시오
pseudo
유형: `Optional[Union[dict, str]]`
기본값: `None`
분자 내 원자들에 대한 의사포텐셜을 지정합니다. 기본값은 None이며, 이는 의사포텐셜이 적용되지 않고 모든 전자가 계산에 명시적으로 포함됨을 의미합니다.
- 유효 범위: pyscf 설명서를 참조하십시오
cart
유형: `bool`
기본값: `False`
계산 시 각운동량 기저 함수로 직교 GTO를 사용할지 여부를 지정합니다. 기본값인 False를 설정하면 구형 GTO가 사용됩니다.
- 유효 범위: pyscf 설명서를 참조하십시오
magmom
유형: `(`Optional[List[Union[int, float]]]`
기본값: `1_000`
각 원자의 동축 스핀 자기 모멘트를 설정합니다. 기본적으로 이 값은 None이며, 각 원자는 스핀 0으로 초기화됩니다.
- 유효 범위: pyscf 설명서를 참조하십시오
avas_aolabels
유형: `Optional[List[str]]`
기본값: `None`
이는 AVAS 체계에 포함될 원자 궤도를 정의합니다. AVAS 설명서를 참조하십시오.
- 유효 범위: 예: ["H 1s "], "O 2p " (H O)
avas_threshold
유형: `float`
기본값: `0.2`
이는 활성 영역에 어떤 원자 궤도(AO)를 포함시킬지 결정하는 데 사용되는 기준값을 지정합니다.
- 유효 범위: 0.0 과 2.0 사이
noons_level
유형: `Optional[str]`
기본값: `None`
이는 자연 궤도 점유 수(NOONs) 방식을 바탕으로 자연 궤도를 생성하고 활성 궤도를 선정하기 위한 이론적 접근법을 제시한다. NOONs 문서를 참조하십시오. 궤도 수(및 큐비트 수)를 제어하려면 활성 궤도 지수와 고정 궤도 지수를 모두 지정해야 합니다.
- 유효 범위:
"mp2"또는"ccsd"
- 필수: 아니오
- 예:
{"basis": "sto3g", "unit": "angstrom" }
hivqe_options
유형: `dict`
HI-VQE 알고리즘의 동작을 제어하는 옵션들.
다음 목록에는 사전 hivqe_options (dictionary)에 설정할 수 있는 모든 키와 값, 그리고 해당 데이터 유형과 기본값이 상세히 나와 있습니다. 모든 키는 선택 사항입니다.
shots
유형: `int`
기본값: `1_000`
반복당 양자 장치에 적용할 샷 수.
- 유효 범위: 1에서 10,000 사이
max_iter
유형: `int`
기본값: `25`
안자츠를 최적화하기 위해 실행할 최대 반복 횟수. 수렴이 일찍 이루어지면 알고리즘이 더 적은 반복 횟수를 사용할 수 있습니다.
- 유효 범위: 1에서 50 사이
initial_basis_states
유형: `List[str]`
기본값: The Hartree-Fock state
이전 결과에서 얻은 고전적 상태를 사용하여 알고리즘을 다시 시작하는 데 사용할 수 있습니다.
- 유효 범위: 문제에 필요한 큐비트 수와 비트 수가 일치하는 이진 문자열.
ansatz
유형: `str`
기본값: `epa`
이는 새로운 상태를 생성하기 위해 최적화할 양자 안자츠를 지정합니다. "epa" 여기 상태를 보존하는 가정을 선택한다. "hea" 하드웨어 효율이 높은 접근 방식을 선택합니다. "lucj" 지역 단일 클러스터 야스트로(Jastrow) 가정을 선택한다.
- 유효 범위:
"epa","hea", 또는"lucj"
convergence_count
유형: `int`
기본값: `3`
알고리즘이 수렴한 것으로 간주되기까지, 계산된 에너지에 유의미한 변화가 없는 상태로 경과해야 하는 반복 횟수.
- 최소 2개
convergence_abstol
유형: `float`
기본값: `1e-4`
수렴성 검증을 위해 유의미한 것으로 간주되는 계산된 에너지의 변화량.
- 유효 범위: 0보다 크고 1 이하
reset_convergence_count
유형: `bool`
기본값: `True`
수렴으로 인정받으려면 True, 반복 convergence_count 과정 중에 수렴을 방해할 만한 중대한 변화가 발생해서는 안 된다. 만약 False라면, 최적화 과정 중 어느 반복 단계에서든 미미한 변화만 발생했을 경우 convergence_count 알고리즘은 이후 중단된다.
- 유효 범위:
True또는False
configuration_recovery
유형: `bool`
기본값: `True`
패키지의 qiskit-addon-sqd 구성 recovery 설정을 사용할지 여부. True인 경우, 양자 장치에서 샘플링된 유효하지 않은 상태는 고전적인 방법으로 보정됩니다. False인 경우, 해당 항목은 삭제됩니다.
- 유효 범위:
True또는False
ansatz_entanglement
유형: `str`
기본값: `circular`
이는 LUCJ 안자츠에 대한 일반적인 Qiskit 및 ffsim 규약에 따라 양자 회로 내에서 사용해야 할 얽힘 방식을 지정합니다.
- 유효 범위:,
"reverse_linear","pairwise","circular","full","linear"또는 중"sca"하나. ansatz"lucj"방식을 사용하는 것도 하나의"lucj_default"방법입니다.
ansatz_reps
유형: `int`
기본값: `2`
양자 회로 내 각 레이어의 반복 횟수.
- 유효 범위: 0보다 큼
amplitude_screening_tolerance
유형: `Union[float,int]`
기본값: `0`
대각화 후 부분공간에서 어떤 상태들을 제외할지 결정하는 허용 오차. 이는 계산된 진폭을 바탕으로 부분공간 상태의 포함 기준을 명시합니다.
- 유효 범위: 0 이상, 1 미만
overlap_screening_tolerance
유형: `float`
기본값: `1e-2`
대각화 전에 부분공간에서 어떤 상태들을 제외할지 예측하기 위한 허용 오차. 이 매개변수는 각 상태에 대한 예측 진폭의 정확도를 조절하며, 값이 작을수록 예측 정확도가 높아집니다.
- 유효 범위: ~ 사이
1e-4(양쪽 끝 포함1e-1)
- 필수: 아니오
- 예:
{"shots": 10_000, "max_iter": 10 }
출력
이 함수는 네 개의 키와 값을 가진 딕셔너리를 반환합니다. 키와 값은 다음 표에 설명되어 있습니다:
키 | 값 유형 | 설명 |
|---|---|---|
"energy" | float | 이 분자의 근사적 기저 상태 에너지. |
"states" | List[str] | 에너지를 구하는 데 사용되는 부분공간을 구성하는 선별된 결정 변수들. 이들은 알파-베타 형식으로 번갈아 배열되어 있습니다. |
"eigenvector" | List[float] | 로 구성된 부분공간에 대한 기저 "states" 상태에 대응하는 고유벡터. |
"energy_variance" | float | 로 구성된 부분공간 기저 상태의 에너지 "states"분산은 해의 품질을 나타내는 지표가 된다. 이 값은 0 이상이며, 값이 작을수록 해당 부분공간의 기저 상태가 시스템 해밀토니안의 고유상태에 더 가깝게 근사함을 의미합니다. |
"energy_history" | List[float] | 하이브리드 최적화 과정 중 각 반복 단계에서 계산된 에너지 값들을, 계산된 순서대로 나열합니다. SPSA 최적화 과정의 일환으로, 반복마다 두 가지 에너지가 계산됩니다. |