Qubit
qiskit_addon_sqd.qubit
Funções para lidar com amostras quânticas.
solve_qubit
solve_qubit(bitstring_matrix, hamiltonian, *, verbose=False, **scipy_kwargs)
Encontre as energias e os estados próprios de um Hamiltoniano projetado em um subespaço.
O subespaço é definido por uma coleção de estados da base computacional que são especificados pelas cadeias de bits (linhas) no site bitstring_matrix. O site bitstring_matrix será classificado e desduplicado nessa função, pois o solucionador subjacente exige essa estrutura.
Essa função chama scipy.sparse.linalg.eigsh para a diagonalização.
Parâmetros
-
bitstring_matrix (ndarray) – Uma matriz 2D de
boolrepresentações de valores de bits, de modo que cada linha representa uma única cadeia de bits. Esse conjunto de cadeias de bits especifica o subespaço no qual ohamiltonianserá projetado e diagonalizado. -
hamiltonian (SparsePauliOp) – Um Hamiltoniano especificado como um operador Pauli.
-
verbose (bool) – Se deve imprimir o estágio da sub-rotina.
-
**scipy_kwargs -
Argumentos de palavras-chave a serem passados para scipy.sparse.linalg.eigsh.
Retorna
- 1D com os valores próprios
- 2D com os vetores próprios. Cada coluna representa um vetor próprio.
Aumentos
ValueError - As cadeias de bits (linhas) em bitstring_matrix devem ter comprimento < 64.
Tipo de retorno
project_operator_to_subspace
project_operator_to_subspace(bitstring_matrix, hamiltonian, *, verbose=False)
Projete um operador Pauli em um subespaço de Hilbert definido pelos estados da base computacional (linhas) em bitstring_matrix.
A matriz esparsa de saída, A, representa uma matriz NxN s.t. N é o número de linhas em bitstring_matrix. As linhas do site A representam as configurações de entrada, e as colunas representam o componente conectado associado à configuração na linha correspondente. Os elementos não nulos da matriz representam as amplitudes complexas associadas aos componentes conectados.
As cadeias de bits no site bitstring_matrix devem ser exclusivas e classificadas em ordem crescente de acordo com sua representação de número inteiro sem sinal. Caso contrário, a projeção retornará resultados incorretos. Essa função não verifica explicitamente a exclusividade e a ordem porque isso pode consumir muito tempo. Veja qiskit_addon_sqd.qubit.sort_and_remove_duplicates() para obter uma maneira simples de garantir que sua matriz de bitstring esteja bem formatada.
Essa função depende do site jax para realizar alguns cálculos com eficiência. jax converte as matrizes de bits para int64_t, o que significa que as matrizes de bits em bitstring_matrix não podem ter comprimento maior que 63.
Parâmetros
- bitstring_matrix (ndarray) – Uma matriz 2D de
boolrepresentações de valores de bits, de modo que cada linha representa uma única cadeia de bits. Esse conjunto de cadeias de bits especifica o subespaço no qual ohamiltonianserá projetado e diagonalizado. - hamiltonian (SparsePauliOp) – Um operador de Pauli para projetar em um subespaço de Hilbert definido por
bitstring_matrix. - verbose (bool) – Se deve imprimir o estágio da sub-rotina.
Retorna
A scipy.sparse.coo_matrix representando o operador projetado no subespaço. As linhas representam as configurações de entrada e as colunas representam o componente conectado associado à configuração na linha correspondente. Os elementos não nulos da matriz representam as amplitudes complexas associadas aos pares de componentes conectados.
Aumentos
ValueError - As cadeias de bits (linhas) em bitstring_matrix devem ter comprimento < 64.
Tipo de retorno
spmatrix
sort_and_remove_duplicates
sort_and_remove_duplicates(bitstring_matrix)
Classifica uma matriz de bitstring e remove entradas duplicadas.
Os valores de bitstring mais baixos serão colocados nas linhas com a indexação mais baixa.
Parâmetros
bitstring_matrix (ndarray) – Uma matriz 2D de bool representações de valores de bits, de modo que cada linha representa uma única cadeia de bits.
Retorna
Versão ordenada de bitstring_matrix sem linhas repetidas.
Tipo de retorno
matrix_elements_from_pauli
matrix_elements_from_pauli(bitstring_matrix, pauli)
Encontre os elementos da matriz esparsa de um operador Pauli no subespaço definido pelas cadeias de bits.
A matriz esparsa, A, definida pelas saídas, representa uma matriz NxN s.t. N é o número de linhas em bitstring_matrix. As linhas do site A representam as configurações de entrada, e as colunas representam o componente conectado associado à configuração na linha correspondente. As matrizes de saída definem a matriz esparsa, A, da seguinte forma:
A[rows[k], cols[k]] = amplutides[k].
As cadeias de bits no site bitstring_matrix devem ser exclusivas e classificadas em ordem crescente de acordo com sua representação de número inteiro sem sinal. Caso contrário, a projeção retornará resultados incorretos. Essa função não verifica explicitamente a exclusividade e a ordem porque isso pode consumir muito tempo. Veja qiskit_addon_sqd.qubit.sort_and_remove_duplicates() para obter uma maneira simples de garantir que sua matriz de bitstring esteja bem formatada.
Essa função depende do site jax para realizar alguns cálculos com eficiência. jax converte as matrizes de bits para int64_t, o que significa que as matrizes de bits em bitstring_matrix não podem ter comprimento maior que 63.
Parâmetros
- bitstring_matrix (ndarray) – Uma matriz 2D de
boolrepresentações de valores de bits, de modo que cada linha representa uma única cadeia de bits. As cadeias de bits na matriz devem ser classificadas de acordo com suas representações inteiras sem sinal. Caso contrário, a projeção retornará resultados incorretos. - pauli (Pauli) – Um operador Pauli para o qual encontrar elementos conectados
Retorna
- As amplitudes complexas correspondentes aos elementos não nulos da matriz
- Os índices de linha correspondentes aos elementos não nulos da matriz
- Os índices de coluna correspondentes aos elementos não nulos da matriz
Aumentos
ValueError - As cadeias de bits (linhas) em bitstring_matrix devem ter comprimento < 64.
Tipo de retorno