Skip to main content
IBM Quantum Platform

Qunova HI-VQE 화학 API 참조

  • Qiskit Functions

    Qiskit Functions — 파트너 기관들이 개발한 사전 구축형 도구 — 소프트웨어 개발 워크플로의 일부를 추상화하여, 대규모 알고리즘 탐색 및 애플리케이션 개발을 간소화하고 가속화합니다. 이 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`

탐지된 대칭의 부분군을 생성하는 데 사용할 수 있습니다. 대칭 키워드 인수를 사용하여 대칭을 지정한 경우에는 이 설정이 적용되지 않습니다.

unit

유형: `str`

기본값: `angstrom`

원자 좌표 및 거리에 사용할 측정 단위를 지정합니다. 기본값은 옹스트롬 단위입니다.

nucmod

유형: `Optional[Union[dict, str]]`

기본값: `None`

사용할 핵 모델을 지정합니다. 기본적으로 포인트 핵 모델이 사용되며, 다른 값을 설정하면 가우시안 핵 모델이 활성화됩니다. 함수가 주어지면, 이 함수는 가우시안 핵 모델과 함께 사용되어 핵 전하 분포 값 'zeta'를 생성합니다.

pseudo

유형: `Optional[Union[dict, str]]`

기본값: `None`

분자 내 원자들에 대한 의사포텐셜을 지정합니다. 기본값은 None이며, 이는 의사포텐셜이 적용되지 않고 모든 전자가 계산에 명시적으로 포함됨을 의미합니다.

cart

유형: `bool`

기본값: `False`

계산 시 각운동량 기저 함수로 직교 GTO를 사용할지 여부를 지정합니다. 기본값인 False를 설정하면 구형 GTO가 사용됩니다.

magmom

유형: `(`Optional[List[Union[int, float]]]`

기본값: `1_000`

각 원자의 동축 스핀 자기 모멘트를 설정합니다. 기본적으로 이 값은 None이며, 각 원자는 스핀 0으로 초기화됩니다.

avas_aolabels

유형: `Optional[List[str]]`

기본값: `None`

이는 AVAS 체계에 포함될 원자 궤도를 정의합니다. AVAS 설명서를 참조하십시오.

  • 유효 범위: 예: ["H 1s "], "O 2p " (H 2_2 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 최적화 과정의 일환으로, 반복마다 두 가지 에너지가 계산됩니다.
이 페이지가 도움이 되었습니까?
GitHub에서 버그, 오타를 보고하거나 컨텐츠를 요청하십시오.