Skip to main content
IBM Quantum Platform

Qubit

qiskit_addon_sqd.qubit

Funções para lidar com amostras quânticas.

solve_qubit

solve_qubit(bitstring_matrix, hamiltonian, *, verbose=False, **scipy_kwargs)

GitHub

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 bool representaçõ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 o hamiltonian será 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

tupla [*ndarray*, ndarray ]

project_operator_to_subspace

project_operator_to_subspace(bitstring_matrix, hamiltonian, *, verbose=False)

GitHub

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.

Nota

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.

Nota

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 bool representaçõ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 o hamiltonian será 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)

GitHub

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

ndarray

matrix_elements_from_pauli

matrix_elements_from_pauli(bitstring_matrix, pauli)

GitHub

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].

Nota

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.

Nota

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 bool representaçõ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

tuple [*ndarray*, ndarray, ndarray ]

Esta página foi útil?
Relate um bug, erro de digitação ou solicite conteúdo no GitHub.