Estou interessado em um algoritmo quântico que obtém como entrada uma sequência de n bits e que produz como saída uma versão embaralhada (permutada) dessa sequência de n bits.
Por exemplo, se a entrada for 0,0,1,1 (então n = 4 neste caso), então as respostas possíveis são:
- 0,0,1,1
- 0,1,0,1
- 0,1,1,0
- 1,0,0,1
- 1,0,1,0
- 1,1,0,0
Observe que apenas uma saída deve ser gerada e escolhida aleatoriamente entre todas as saídas válidas possíveis.
Como isso pode ser melhor implementado em um algoritmo quântico ?
Uma solução para isso já é proposta como parte de uma das respostas para Como criar um algoritmo quântico que produz sequências de 2 n bits com número igual de 1 bits? . Mas o problema com esta solução é que isso requer cerca de qubits de ajuda, que se tornam rapidamente enormes se n for grande.
Nota:
- Por favor, não forneça um algoritmo clássico sem nenhuma explicação de como as etapas do algoritmo clássico podem ser mapeadas para um computador quântico universal.
- para mim, existem 2 boas maneiras de interpretar "escolhidos aleatoriamente entre todos os possíveis bons resultados" : (1) cada bom resultado possível tem chances iguais de ser escolhido. (2) toda boa saída possível tem uma chance> 0 de ser escolhida.
Respostas:
Isso poderia ser feito com qubits adicionais ao longo destas linhas:⌈ logn ⌉
Este é um algoritmo clássico, mas você pode executá-lo em um computador quântico, é claro, como Norbert sugeriu em um comentário. (O aspecto da pergunta que é inflexível sobre o algoritmo ser quântico ainda não está claro para mim; portanto, se executar um algoritmo clássico como o que sugeri em um computador quântico não for suficiente, seria útil que a pergunta fosse seja esclarecido.)
Observe que, como a pergunta solicita uma saída aleatória, o algoritmo precisará gerar entropia em algum momento, presumivelmente através de medições ou executando outras operações não unitárias em qubits (como inicializá-las). No algoritmo acima, é a primeira etapa que gera entropia: independentemente do estado dos qubits adicionais antes da operação na etapa 1, eles devem ter o estado após a etapa 1 ser executada (com codificado em binário, digamos).
fonte
Nota: esta resposta assume que você deseja que a permutação seja coerente , ou seja, você deseja em vez de um 1/3 possibilidade de001, um 1/3 possibilidade de010, e um 1/3 possibilidade de100.13√( | 001 ⟩ + | 010 ⟩ + | 100 ⟩ ) 001 010 100
Tenha cuidado ao especificar essa tarefa, pois ela pode ser facilmente impossível devido a restrições de reversibilidade. Por exemplo, para a entrada pretende reproduzir o estado GHZ | 3| 001⟩ . Mas se você também deseja gerar o estado GHZ para a entrada| 010⟩e| 100⟩, que não vai funcionar. Você não pode enviar vários estados de entrada para o mesmo estado de saída (sem decoerência). Contanto que você diga "Eu só me importo com entradas ascendentes classificadas como 0000111, mas não 1110000 ou 0010110; você pode fazer o que quiser com elas", tudo ficará bem.∣∣31⟩ = 13√( | 001 ⟩ + | 010 ⟩ + | 100 ⟩ ) | 010⟩ | 100⟩
Um truque para produzir uma permutação quântica de uma entrada classificada é primeiro preparar um "estado de permutação" aplicando uma rede de classificação a uma lista de valores de sementes, cada um em uma superposição uniforme. A rede de classificação produzirá qubits com as sementes classificadas, mas também qubits com as comparações da rede de classificação. O estado de permutação é apenas os qubits de comparação. Para aplicá-lo à sua entrada, basta executar a entrada pela rede de classificação ao contrário. Observe que existem alguns detalhes complicados aqui; veja o artigo " Técnicas Aprimoradas para a Preparação de Eigenstates de Hamiltonianos Fermiônicos ". Você precisaria generalizar essa técnica para trabalhar com entradas com valores repetidos, em vez de apenas valores únicos.
fonte
Um computador quântico pode fazer cálculos clássicos. O algoritmo ideal seria:
fonte