Disons que nous avons une fonction qui mappe n bits à m bits (où m < n ).fnmm<n
f:{0,1}n→{0,1}m
On pourrait bien sûr concevoir un circuit classique pour effectuer cette opération. Appelons-le . Il prend en entrée n- bits. Disons qu'il prend comme entrée X et qu'il produit f ( X ) .CfnXf(X)
Maintenant, nous aimerions faire la même chose en utilisant un circuit quantique. Appelons-le , qui prend en entrée | X ⟩ et sorties | f ( X ) ⟩ . Souvenez-vous maintenant que la mécanique quantique étant linéaire, les qubits d'entrée pourraient bien sûr se trouver dans une superposition de toutes les chaînes à n bits. Donc, l'entrée pourrait être dans un état ∑ X ∈ { 0 , 1 } n α X | X ⟩ . Par linéarité, la sortie va être ∑ X ∈ { 0 ,Uf|X⟩|f(X)⟩n∑X∈{0,1}nαX|X⟩.∑X∈{0,1}nαX|f(X)⟩
L'évolution de la mécanique quantique est unitaire . Et parce qu'il est unitaire, il est réversible. Cela signifie essentiellement que si vous appliquez une porte quantique sur un état d'entrée | x ⟩ et obtenir un état ouput U | x ⟩ , vous pouvez toujours appliquer une porte inverse U † pour revenir à l'état | x ⟩ .U|x⟩U|x⟩U†|x⟩
Notez, soigneusement dans l'image ci-dessus, que le nombre de lignes d'entrée (c'est-à-dire six) est exactement le même que le nombre de lignes de sortie à chaque étape. Ceci est dû à l'unité des opérations. Comparez cela aux opérations classiques comme le ET logique où donne une sortie de bit unique 0 . Vous ne pouvez pas reconstruire les bits initiaux 0 et 1 à partir de la sortie, car même 0 ∧ 0 et 1 ∧ 0 auraient été mappés sur la même sortie 0 . Mais, considérez la porte NOT classique. Si l'entrée est 0, elle sort 1 , tandis que si l'entrée est0∧10010∧01∧0001 il sort 0 . Étant donné que ce mappage est un, il peut être facilement implémenté comme une porte unitaire réversible, à savoirla porte Pauli-X. Cependant, pour implémenter un ET classique ou un OU classique, nous devons réfléchir un peu plus.10
Considérez la porte CSWAP . Voici un schéma approximatif montrant le schéma:
Dans la porte SWAP en fonction du bit de contrôle, nous les deux autres pouvons ou non être échangés. Notez qu'il y a trois lignes d'entrée et trois lignes de sortie. Ainsi, il peut être modélisé comme une porte quantique unitaire. Maintenant, si : si x = 0 , la sortie est 0 , tandis que si x = 1 , la sortie est y .z=0x=00x=1y
Si vous remarquez, si , nous émettons ˉ x ∧ y tandis que si x = 1 nous émettons x ∧ y . Nous avons donc pu générer avec succès la sortie x ∧ y que nous voulions bien que nous ayons fini avec des sorties "indésirables" ˉ x ∧ y et x . Un fait intéressant est que l'inverse de la porte CSWAP est la porte CSWAP elle-même (vérifiez!).x=0x¯∧yx=1x∧yx∧yx¯∧yx
C'est tout! Rappelez-vous que toutes les portes classiques peuvent être construites avec la porte NAND , qui peut bien sûr être construite une porte ET et une porte NON. Nous avons efficacement modélisé le NOT classique et la porte ET classique en utilisant des portes quantiques réversibles. Juste pour être sûr, nous pouvons également ajouter la porte CNOT qauntum à notre liste, car en utilisant CNOT, nous pouvons copier des bits.
Par conséquent, le message de base est qu'en utilisant les portes quantiques CSWAP, CNOT et NOT, nous pouvons reproduire n'importe quelle porte classique. BTW, il y a une astuce astucieuse pour se débarrasser des bits "indésirables" qui sont produits lorsque des portes quantiques sont utilisées, mais c'est une autre histoire.
PS: Il est très important de se débarrasser des bits "indésirables" sinon ils peuvent provoquer des erreurs de calcul!
Crédits de référence et d'images: MOOC de mécanique quantique et de calcul quantique offerts par UC Berkeley sur edX.