Atualmente, estou estudando sozinho, usando principalmente o livro: Computação Quântica, uma introdução suave de Eleanor Rieffel e Wolfgang Polak.
Percorrer os capítulos e exercícios anteriores correu muito bem (felizmente os capítulos anteriores tiveram muitos exemplos), mas fiquei preso no quinto capítulo sobre circuitos quânticos. Embora eu compreenda os conceitos apresentados pelos autores, talvez devido à falta de exemplos, tenho dificuldade em aplicar esses conceitos nos exercícios.
Os exercícios com os quais tenho problemas (e onde não consigo encontrar uma solução ou explicação completa / introdutória para) são os seguintes:
Questões:
Projete um circuito para criar: a partir
E crie um circuito para criar "o estado Hardy":
Alguém pode me apontar na direção certa ou me referir a alguma literatura / tutoriais para que eu possa entender melhor esse tipo de exercício?
Talvez uma pergunta relacionada: dicas e truques para construir circuitos para gerar estados quânticos arbitrários
Respostas:
Como DaftWullie apontou, a pergunta sobreWn tem uma excelente coleção de respostas aqui .
Para a questão do estado Hardy (e muitas outras tarefas como essa), você pode abordá-la da seguinte maneira.
Você pode ver este artigo de Shende, Bullock e Markov se você quiser uma explicação mais formal e menos ad-hoc.
fonte
Você pode simplificar os problemas "produzir um estado" dividindo-os em três partes:
Now you want to fix any incorrect phases produced by the Y rotations. For the Hardy state this is easy, because all the phases are positive. In general you target each qubit positionk with an Rz(ϕk) operation with appropriately chosen ϕk values, and that will get the phases right.
Now we want to get the ordering right. The easiest way to do this is to have some extra qubits that are your output qubits and, for each of the qubits we've prepared so far and each of the output qubits, either add a CNOT between the two or don't. For example, if the state with amplitude3/12−−√ is supposed to be a |11⟩ , then we need to CNOT from our leftmost qubit onto both of the output qubits. Then we need to uncompute the leftmost qubit by using a many-controlled NOT operation. There should be one control for each output qubit, and the control's type (qubit-must-be-on vs qubit-must-be-off) is determined by whether or not you toggled the qubit.
Applying these steps produces an inefficient, but correct, circuit for creating a Hardy state. You can open the circuit in Quirk:
If you want to produce a state without using so much workspace, the task gets harder. But you can still follow the magnitudes then phases then ordering pattern. Also, there are cleverer ways to prepare magnitude sets that have nice patterns. For example, when only one amplitude is different from the others, one round of partial amplitude amplification may be enough to prepare the state.
fonte