Guide de démarrage pour le Quantum Computing avec MATLAB
MATLAB Support Package for Quantum Computing vous permet de développer, de simuler et d'exécuter des algorithmes quantiques.
| Porte à qubit unique | |||
| Appliquez une porte à qubit unique à un circuit quantique. Le nombre entre parenthèses (« () ») correspond à l'indice du qubit auquel la porte est appliquée. | |||
| Objet de circuit quantique | Graphique | Matrice | |
|---|---|---|---|
| Syntaxe | >> qc=quantumCircuit (xGate(1)) |
|
>> getMatrix(qc) |
| Sorties |
|
|
|
| Porte à qubit unique | Description |
|---|---|
|
xGate = rotation de π autour de l'axe x appliquée au qubit 1 |
|
yGate = rotation de π autour de l'axe y appliquée au qubit 1 |
|
zGate = rotation de π autour de l'axe z appliquée au qubit 1 |
|
sGate = rotation positive de π/2 autour de l'axe z |
|
tGate = rotation positive de π/4 autour de l'axe z |
|
tGate = rotation négative de π/4 autour de l'axe z |
|
hGate = porte de Hadamard |
|
idGate = porte d'identité (aucune action) |
Les portes de rotation sont des portes à qubit unique qui prennent deux arguments : le premier est l'indice du qubit auquel la porte est appliquée et le second est l'angle de rotation ou la phase (θ) en radians.
Porte à qubit unique paramétrée |
Description |
|
rxGate = porte de rotation autour de l'axe x |
|
ryGate = porte de rotation autour de l'axe y |
|
rzGate = porte de rotation autour de l'axe z |
|
r1Gate = porte de rotation autour de l'axe z avec phase globale |
Portes avec un qubit de contrôle
Appliquez une porte comportant un qubit de contrôle à un circuit quantique. Ces portes comportent deux arguments entre parenthèses (« () ») : le premier correspond au qubit de contrôle et le second au qubit cible. Si le qubit de contrôle se trouve dans l'état |0>, la porte n'effectue aucune action. Si le qubit de contrôle se trouve dans l'état |1>, la porte spécifiée agit sur le qubit cible. >> cxGate(control,target)
Qubit d'indice 1 : qubit de contrôle
Qubit d'indice 2 : qubit cible
Les portes de rotation contrôlées sont des portes à deux qubits qui prennent trois arguments : le premier correspond au qubit de contrôle, le second au qubit cible et le troisième définit l'angle de rotation ou la phase (θ) en radians.
Porte à deux qubits |
Description |
|
cxGate ou cnotGate = rotation de π autour de l'axe x appliquée au qubit 2 si le qubit 1 est dans l'état |1> |
|
cyGate = rotation de π autour de l'axe y appliquée au qubit 2 si le qubit 1 est dans l'état |1> |
|
czGate = rotation de π autour de l'axe z appliquée au qubit 2 si le qubit 1 est dans l'état |1> |
|
chGate = porte de Hadamard contrôlée |
Porte à deux qubits paramétrée |
Description |
|
crxGate = porte contrôlée de rotation autour de l'axe x |
|
cryGate = porte contrôlée de rotation autour de l'axe y |
|
crzGate = porte contrôlée de rotation autour de l'axe z |
|
cr1Gate = porte contrôlée de rotation autour de l'axe z avec phase globale |
Portes spéciales
Porte |
Description |
compositeGate (qc, [1,2]) |
Construit une porte composite à partir d'un circuit quantique interne et renvoie un objet CompositeGate. Dans l'exemple, qc représente le circuit quantique interne. |
|
Porte X contrôlée (porte CCNOT ou porte de Toffoli) |
mcxGate(1:3,4,5) |
Porte X à contrôles multiples Le premier argument correspond à trois qubits de contrôle (1, 2, 3), le deuxième à un qubit cible (4) et le troisième à des qubits auxiliaires (5). Cette porte agit sur un seul qubit cible en fonction des états des qubits de contrôle, avec un certain nombre de qubits auxiliaires déterminant le nombre de portes simples. |
|
Porte QFT (transformée de Fourier quantique) |
Dans les portes ci-dessous, les premier et deuxième arguments correspondent aux indices des qubits, et le troisième à la phase (θ), à l'exception de la porte swapGate qui comporte deux arguments. Le fait d'intervertir les deux qubits cibles ne modifie pas le fonctionnement de l'ensemble des portes suivantes.
Porte |
Description |
|
Porte de couplage d'Ising XX |
|
Porte de couplage d'Ising YY |
|
Porte de couplage d'Ising ZZ |
|
Permute les valeurs des qubits. |
| Opérations sur les circuits quantiques | ||
Opération |
Exemple |
Sorties |
|
|
|
|
>> bell_inverted=inv(bell); plot(bell_inverted) |
|
getMatrix = Représentation matricielle d'un circuit ou d'une porte quantique |
>> getMatrix(bell) |
|
generateQASM = Générer le code QASM |
>> generateQASM(bell) |
|
simulate(circuit, inputState), Simuler un circuit, spécifier l'état quantique initial du circuit et renvoyer un objet QuantumState |
>> simulate(bell) |
|
unpack = Décomposer les portes composites au sein d'un circuit quantique |
|
|
Simulation d'opérations sur les circuits quantiques |
||
Opération |
Exemple |
Sorties |
Initialiser l'état quantique du circuit de sorte que le qubit 1 (qubit du haut sur le schéma du circuit) soit défini sur l'état |1> et le deuxième sur |0> |
S = simulate(bell,"10") |
|
Afficher les états de base des sorties et leurs amplitudes |
|
|
Afficher l'état final du circuit, notamment la base dans laquelle chaque qubit est représenté |
|
|
Afficher les états possibles et la probabilité de mesurer chacun d'entre eux |
|
states = "00" P= |
| Échantillonner de manière aléatoire l'état quantique du circuit avec un nombre quelconque de tirages |
|
|
Fonction |
Description |
|
Se connecter à un dispositif Amazon Braket en spécifiant le nom du dispositif, la région et le chemin d'accès au compartiment S3 où stocker les résultats |
|
Se connecter à un dispositif quantique IBM en spécifiant le nom du dispositif et les identifiants du compte |
|
Obtenir des informations complémentaires sur le dispositif |
|
Créer une tâche pour exécuter le circuit sur le dispositif |
|
Vérifier l'état d'une tâche |
|
Récupérer le résultat de l'exécution du circuit |
|
>> plot(qftGate(1:3))
|
|
| >> Exemples sur GitHub | ||