Share via


Função PurifiedMixedState

Aviso

Esta documentação refere-se ao QDK Clássico, que foi substituído pelo QDK Moderno.

https://aka.ms/qdk.api Veja a documentação da API para o QDK Moderno.

Espaço de nomes: Microsoft.Quantum.Preparation

Pacote: Microsoft.Quantum.Standard

Devolve uma operação que prepara uma purificação de um determinado estado misto. Um "estado misto purificado" refere-se aos estados do formulário |ψ⟩ = Σi √pi |i⟩ |garbagei⟩ especificados por um vetor de coeficientes {pi}. Os estados deste formulário podem ser reduzidos para estados mistos ρ ≔ pi |i⟩⟨i| ao rastrear o registo de "lixo" (ou seja, um estado misto que é diagonal na base computacional).

Veja https://arxiv.org/pdf/1805.03662.pdf?page=15 para mais discussões.

function PurifiedMixedState (targetError : Double, coefficients : Double[]) : Microsoft.Quantum.Preparation.MixedStatePreparation

Description

Utiliza a técnica rom quântica para representar uma determinada matriz de densidade, devolvendo essa representação como uma operação de preparação de estado.

Em particular, com base numa lista de coeficientes $N$ $\alpha_j$, esta função devolve uma operação que utiliza a técnica rom quântica para preparar uma aproximação $$ \begin{align} \tilde\rho = \sum_{j = 0}^{N - 1} p_j \ket{j}\bra{j} \end{align} $$ do estado misto $$ \begin{align} \rho = \sum_{j = 0}^{N-1} \frac{|\alpha_j|} {\sum_k |\alpha_k|} \ket{j}\bra{j}, \end{align} $$ em que cada $p_j$ é uma aproximação ao coeficiente especificado $\alpha_j$ de forma a que $$ \begin{align} \left| p_j - \frac{ |\alpha_j| } { \sum_k |\alpha_k| } \right| \le \frac{\epsilon}{N} \end{align} $$ para cada $j$.

Quando é transmitido um registo de índice e um registo de qubits de lixo, inicialmente no estado $\ket{0} \ket{00\cdots 0}$, a operação devolvida prepara ambos os registos para a purificação de $\tilde \rho$, $$ \begin{align} \sum_{j=0}^{N-1} \sqrt{p_j} \ket{j}\ket{\text{garbage}_j}, \end{align} $$ de tal forma que repor e desalocar o registo de lixo decreta a preparação pretendida para dentro do erro de destino $\epsilon$.

Entrada

targetError: Duplo

O erro de destino $\epsilon$.

coeficientes: Duplo[]

Matriz de coeficientes $N$ que especifica a probabilidade de estados de base. Os números negativos $-\alpha_j$ serão tratados como positivos $|\alpha_j|$.

Saída: MixedStatePreparation

Uma operação que prepara $\til \rho$ como uma purificação para um índice conjunto e registo de lixo.

Exemplo

O fragmento de código seguinte prepara uma purificação do estado $3$-qubit $\rho=\sum_{j=0}^{4}\frac{|\alpha_j|} {\sum_k |\alpha_k|} \ket{j}\bra{j}$, em que $\vec\alpha=(1.0, 2.0, 3.0, 4.0, 5.0)$, e o erro de destino é $10^{-3}$:

let coefficients = [1.0, 2.0, 3.0, 4.0, 5.0];
let targetError = 1e-3;
let purifiedState = PurifiedMixedState(targetError, coefficients);
using (indexRegister = Qubit[purifiedState::Requirements::NIndexQubits]) {
    using (garbageRegister = Qubit[purifiedState::Requirements::NGarbageQubits]) {
        purifiedState::Prepare(LittleEndian(indexRegister), [], garbageRegister);
    }
}

Observações

Os coeficientes fornecidos a esta operação são normalizados ao seguir a norma 1, de modo a que os coeficientes sejam sempre considerados para descrever uma distribuição de probabilidade categórica válida.

Referências

  • Encoding Electronic Spectra in Quantum Circuits with Linear T Complexity Ryan Babbush, Craig Gidney, Dominic W. Berry, Nathan Wiebe, Jarrod McClean, Oliveu Paler, Austin Fowler, Hartmut Neven https://arxiv.org/abs/1805.03662

Consulte também