\def\bra#1{\mathinner{\left\langle{#1}\right|}}
\def\ket#1{\mathinner{\left|{#1}\right\rangle}}
\def\braket#1#2{\mathinner{\left\langle{#1}\middle|#2\right\rangle}}
Un bref résumé de la "manipulation mathématique des bits quantiques", qui est la base de l'apprentissage des ordinateurs quantiques. Cette fois, nous ne nous concentrerons pas sur la porte quantique, mais uniquement sur le système mathématique des bits quantiques.
1 Bit Quantum utilise le symbole de crochet,
De plus, étant donné que $ \ ket {0} et \ ket {1} $ sont des états indépendants, il est pratique de les décrire comme des bases orthogonales normales comme suit pour les décrire comme des vecteurs d'état.
Cette fois, par souci de simplicité, considérons le cas de 2 bits quantiques.
Pour les bits classiques, les combinaisons de données stockées sur 2 bits sont 00, 01, 10, 11 ($ \ ket {00}, \ ket {01}, \ ket {10}, \ ket {11} $ ) 4 modèles. Comme précédemment, l'état quantique général peut être décrit par superposition, donc l'état de 2 bits quantiques est
Comme vous pouvez le voir à partir des résultats, le produit tenseur d'une base orthogonale normale crée une base orthogonale normale. Les 3 bits quantiques et les 4 bits quantiques seront développés de la même manière que les 2 bits quantiques. Eh bien, cela ressemble à un nombre linéaire (´ 艸 `)
Compte tenu de l'état d'un ordinateur quantique capable de résoudre un problème réaliste, la dimension de la matrice sera moche ... (; ^ ω ^)
J'ai en fait revu l'explication jusqu'à présent en utilisant Blueqat. Pour une explication détaillée de Blueqat lui-même, veuillez vous référer au Tutoriel publié par MDR.
#Import de bibliothèque
from blueqat import Circuit
#Définir un circuit à 1 bit quantique
c = Circuit(1)
c.m[:].run()
Il s'agit d'un programme qui affiche le vecteur d'état lorsqu'aucune opération de porte n'est effectuée sur un bit quantique. Dans Blueqat, l'état initial du bit quantique est "0", donc le vecteur d'état de (1,0) doit être affiché. Le résultat de l'exécution est le suivant.
array([1.+0.j, 0.+0.j])
Conformément à l'explication précédente.
Ensuite, le programme lorsque l'état est "1" est émis.
#Import de bibliothèque
from blueqat import Circuit
#Définir un circuit à 1 bit quantique
c = Circuit(1)
c.x[0].m[:].run()
C'est celui avec la porte X agissant dessus. La porte X a pour effet d'inverser l'état quantique. Par conséquent, le vecteur d'état de (0,1) doit être affiché. Le résultat de l'exécution est le suivant.
array([0.+0.j, 1.+0.j])
Cela correspondait également à l'explication précédente.
Comme pour 1 bit quantique, nous examinerons les vecteurs d'état pour $ \ ket {00}, \ ket {01}, \ ket {10} et \ ket {11} $.
programme
#Import de bibliothèque
from blueqat import Circuit
#2 Définir un circuit de bits quantiques
c = Circuit(2)
c.m[:].run()
Résultat d'exécution
array([1.+0.j, 0.+0.j, 0.+0.j, 0.+0.j])
programme
#Import de bibliothèque
from blueqat import Circuit
#2 Définir un circuit de bits quantiques
c = Circuit(2)
c.x[0].m[:].run()
Résultat d'exécution
array([0.+0.j, 1.+0.j, 0.+0.j, 0.+0.j])
programme
#Import de bibliothèque
from blueqat import Circuit
#2 Définir un circuit de bits quantiques
c = Circuit(2)
c.x[1].m[:].run()
Résultat d'exécution
array([0.+0.j, 0.+0.j, 1.+0.j, 0.+0.j])
programme
#Import de bibliothèque
from blueqat import Circuit
#Définir un circuit à 1 bit quantique
c = Circuit(2)
c.x[0].x[1].m[:].run()
Résultat d'exécution
array([0.+0.j, 0.+0.j, 0.+0.j, 1.+0.j])
Tous étaient d'accord avec l'explication précédente.
La prochaine fois, j'aimerais expliquer le système mathématique des portes quantiques basé sur des simulations. Rendez-vous dans le prochain post!
Recommended Posts