큐비트
qiskit_addon_sqd.qubit
양자 샘플을 처리하는 기능.
solve_qubit
solve_qubit(bitstring_matrix, hamiltonian, *, verbose=False, **scipy_kwargs)
하위 공간에 투영된 해밀턴의 에너지와 고유 상태를 구합니다.
하위 공간은 bitstring_matrix 의 비트스트링(행)으로 지정된 계산 기준 상태 모음으로 정의됩니다. 기본 솔버에 해당 구조가 필요하므로 이 함수에서는 bitstring_matrix 가 정렬되고 중복이 제거됩니다.
이 함수는 대각선화를 위해 scipy.sparse.linalg.eigsh 를 호출합니다.
매개변수
-
bitstring_matrix (ndarray) – 각 행이 단일 비트 문자열을 나타내는 비트 값의
bool표현의 2D 배열입니다. 이 비트 문자열 집합은hamiltonian투영 및 대각선화할 하위 공간을 지정합니다. -
hamiltonian (SparsePauliOp) – 폴리 연산자로 지정된 해밀턴 연산자입니다.
-
verbose (bool) – 서브루틴의 스테이지를 인쇄할지 여부입니다.
-
**scipy_kwargs -
전달할 키워드 인수 scipy.sparse.linalg.eigsh.
리턴
- 1D 배열을 고유값으로
- 2D 배열을 고유 벡터와 함께 사용합니다. 각 열은 고유 벡터를 나타냅니다.
레이즈
ValueError - bitstring_matrix 의 비트 문자열(행)은 길이가 < 64 이어야 합니다.
리턴 유형
project_operator_to_subspace
project_operator_to_subspace(bitstring_matrix, hamiltonian, *, verbose=False)
bitstring_matrix 에서 계산 기준 상태(행)로 정의된 힐베르트 부분 공간에 폴리 연산자를 투영합니다.
출력 희소 행렬인 A 은 NxN 행렬 s.t 을 나타냅니다. N 는 bitstring_matrix 의 행 수입니다. A 의 행은 입력 구성을 나타내고 열은 해당 행의 구성과 연결된 연결된 컴포넌트를 나타냅니다. 행렬의 0이 아닌 요소는 연결된 구성 요소와 관련된 복소 진폭을 나타냅니다.
bitstring_matrix 의 비트 문자열은 고유해야 하며 부호 없는 정수 표현에 따라 오름차순으로 정렬되어야 합니다. 그렇지 않으면 투영이 잘못된 결과를 반환합니다. 이 함수는 시간이 많이 소요될 수 있으므로 명시적으로 고유성과 순서를 확인하지 않습니다. 를 참조하세요 qiskit_addon_sqd.qubit.sort_and_remove_duplicates() 를 참조하여 비트 문자열 매트릭스의 서식이 올바른지 확인하는 간단한 방법을 확인하세요.
이 함수는 jax 에 의존하여 일부 계산을 효율적으로 수행합니다. jax 는 비트 배열을 int64_t 로 변환하므로 bitstring_matrix 의 비트 배열은 63 보다 길이가 클 수 없습니다.
매개변수
- bitstring_matrix (ndarray) – 각 행이 단일 비트 문자열을 나타내는 비트 값의
bool표현의 2D 배열입니다. 이 비트 문자열 집합은hamiltonian투영 및 대각선화할 하위 공간을 지정합니다. - hamiltonian (SparsePauliOp) –
bitstring_matrix에 정의된 힐버트 부분공간에 투영하는 폴리 연산자입니다. - verbose (bool) – 서브루틴의 스테이지를 인쇄할지 여부입니다.
리턴
A scipy.sparse.coo_matrix 는 하위 공간에 투영된 연산자를 나타냅니다. 행은 입력 구성을 나타내고 열은 해당 행의 구성과 연결된 연결된 컴포넌트를 나타냅니다. 행렬의 0이 아닌 요소는 연결된 구성 요소 쌍과 관련된 복소 진폭을 나타냅니다.
레이즈
ValueError - bitstring_matrix 의 비트 문자열(행)은 길이가 < 64 이어야 합니다.
리턴 유형
spmatrix
sort_and_remove_duplicates
sort_and_remove_duplicates(bitstring_matrix)
비트 문자열 행렬을 정렬하고 중복 항목을 제거합니다.
가장 낮은 비트 문자열 값은 가장 낮은 인덱싱 행에 배치됩니다.
매개변수
bitstring_matrix (ndarray) – 각 행이 단일 비트 문자열을 나타내는 비트 값의 bool 표현의 2D 배열입니다.
리턴
bitstring_matrix 의 반복 행이 없는 정렬된 버전입니다.
리턴 유형
matrix_elements_from_pauli
matrix_elements_from_pauli(bitstring_matrix, pauli)
비트 문자열로 정의된 부분 공간에서 폴리 연산자의 희소 행렬 요소를 구합니다.
출력으로 정의된 희소 행렬 A 은 NxN 행렬 s.t 을 나타냅니다. N 는 bitstring_matrix 의 행 수입니다. A 의 행은 입력 구성을 나타내고 열은 해당 행의 구성과 연결된 연결된 컴포넌트를 나타냅니다. 출력 배열은 다음과 같이 스파스 행렬( A)을 정의합니다:
A[rows[k], cols[k]] = amplutides[k].
bitstring_matrix 의 비트 문자열은 고유해야 하며 부호 없는 정수 표현에 따라 오름차순으로 정렬되어야 합니다. 그렇지 않으면 투영이 잘못된 결과를 반환합니다. 이 함수는 시간이 많이 소요될 수 있으므로 명시적으로 고유성과 순서를 확인하지 않습니다. 를 참조하세요 qiskit_addon_sqd.qubit.sort_and_remove_duplicates() 를 참조하여 비트 문자열 매트릭스의 서식이 올바른지 확인하는 간단한 방법을 확인하세요.
이 함수는 jax 에 의존하여 일부 계산을 효율적으로 수행합니다. jax 는 비트 배열을 int64_t 로 변환하므로 bitstring_matrix 의 비트 배열은 63 보다 길이가 클 수 없습니다.
매개변수
- bitstring_matrix (ndarray) – 각 행이 단일 비트 문자열을 나타내는 비트 값의
bool표현의 2D 배열입니다. 행렬의 비트 문자열은 부호가 없는 정수 표현에 따라 정렬되어야 합니다. 그렇지 않으면 투영이 잘못된 결과를 반환합니다. - pauli (Pauli) – 연결된 요소를 찾는 폴리 연산자
리턴
- 0이 아닌 행렬 요소에 해당하는 복소수 진폭은 다음과 같습니다
- 0이 아닌 행렬 요소에 해당하는 행 인덱스
- 0이 아닌 행렬 요소에 해당하는 열 인덱스
레이즈
ValueError - bitstring_matrix 의 비트 문자열(행)은 길이가 < 64 이어야 합니다.
리턴 유형