Atualmente, tenho 2 matrizes unitárias que quero aproximar com uma boa precisão com o menor número possível de portas quânticas.
No meu caso, as duas matrizes são:
- A raiz quadrada da porta NOT (até uma fase global)
Minha pergunta é a seguinte:
Como posso aproximar essas matrizes específicas com o menor número possível de portas quânticas e uma boa precisão?
O que eu quero ter pode dar ao luxo de tê-lo:
- Posso me dar ao luxo de usar vários dias / semanas de tempo de CPU e muito RAM.
- Posso me dar ao luxo de passar 1 ou 2 dias humanos procurando truques matemáticos (em último recurso, é por isso que pergunto aqui primeiro). Esse tempo não inclui o tempo que eu precisaria para implementar os algoritmos hipotéticos usados para o primeiro ponto.
- Eu quero que a decomposição seja quase exata. Não tenho uma precisão de destino no momento, mas os dois portões acima são usados extensivamente pelo meu circuito e não quero que os erros se acumulem demais.
- Quero que a decomposição use o menor número possível de portas quânticas. Este ponto é secundário no momento.
- Um bom método me deixaria escolher o compromisso que eu queria entre o número de portas quânticas e a precisão da aproximação. Se isso não for possível, provavelmente é necessária uma precisão de pelo menos (em termos de norma de rastreamento) (como dito anteriormente, não tenho estimativas, portanto, não tenho certeza desse limite).
- O conjunto de porta é:
com conforme descrito naWikipédia,a rotação em relação ao eixo(é,ou) e.
Os métodos que eu conheço:
- O algoritmo de Solovay-Kitaev. Eu tenho uma implementação deste algoritmo e já testei em várias matrizes unitárias. O algoritmo gera seqüências bastante longas e o trade-off [número de portas quânticas] VS [precisão da aproximação] não é parametrizável o suficiente. No entanto, executarei o algoritmo nesses portões e editarei esta pergunta com os resultados que obtive.
- Dois artigos sobre aproximação de gate de 1 qubit e aproximação de gate de n-qubit . Eu também preciso testar esses algoritmos.
EDIT: editou a pergunta para tornar "raiz quadrada de não" mais aparente.
Respostas:
Você escolheu duas matrizes particularmente simples para implementar.
A primeira operação (G) é apenas a raiz quadrada do gate X (até a fase global):
No seu conjunto de porta, isto éRX( π/ 2) .
A segunda operação (W) é uma matriz Hadamard no bloco 2x2 do meio de uma matriz de identidade. Sempre que você vir esse padrão 2x2 no meio, pense em "operação controlada conjugada por CNOTs". E é exatamente isso que funciona aqui (nota: você pode precisar trocar as linhas; depende da sua convenção de endianness):
Portanto, o único problema real é como implementar uma operação controlada do Hadamard. Um Hadamard é uma rotação de 180 graus em torno do eixo X + Z. Você pode usar uma rotação de 45 graus ao redor do eixo Y para mover o eixo X + Z para o eixo X, fazer um CNOT no lugar do CH e depois mover o eixo para trás:
fonte
A construção é ideal no sentido de que requer duas portas CNOT e no máximo 12 portas de um qubit único (para o caso mais geral de uma porta real de dois qubit). A construção é baseada no homomorfismo:
Usando essa construção, a implementação completa do portão fornecida por Vatan e Williams é:
fonte
Nenhum desses portões requer seqüências aproximadas. Você pode implementá-los exatamente com seus conjuntos de portas especificados sem grande esforço.
fonte