Blog

Optimisation des portes MCX - Préparer le matériel de demain dès aujourd'hui

29
Juillet
,
2022

Cette note décrit comment utiliser la plateforme Classiq pour créer des portes MCX, dont une avec 14 contrôles - un problème de notre récent concours de codage. Elle présente ensuite un exemple beaucoup plus complexe avec 50 qubits de contrôle.

Les ressources quantiques sont précieuses, mais limitées

Les ordinateurs quantiques offrent des promesses alléchantes à ceux qui sauront exploiter leur puissance. Et bien que les ordinateurs d'aujourd'hui ne soient pas tout à fait capables de résoudre les problèmes du monde réel, ceux qui sont en mesure d'optimiser le matériel disponible pourront récolter les fruits de leur travail plus tôt que ceux qui attendent. La porte MCX est une porte quantique importante utilisée dans divers circuits, tels que l'opérateur de Grover, l'opérateur logique ET, divers algorithmes de préparation d'état et des comparateurs arithmétiques. La capacité d'adapter les implémentations des portes MCX pour répondre aux contraintes matérielles - nombre limité de qubits, fidélité, nombre de portes, et ainsi de suite - n'est pas triviale.

Prenons l'exemple d'une porte MCX avec 4 qubits de contrôle. Deux étapes intermédiaires équivalentes pour décomposer cette porte sont présentées ci-dessous. Bien qu'ils réalisent la même fonctionnalité, le circuit 1 a une profondeur de 5 et le circuit 2 une profondeur de 4, car les deux premières portes peuvent être exécutées en parallèle - q0, q1 et q5 étant opérés en même temps que q2, q3 et q6. Bien que cet exemple puisse sembler hors de propos, peu de problèmes étant miraculeusement résolus lorsqu'une opération de moins est nécessaire, l'évolutivité de ce problème est extrêmement pertinente. Cette opération supplémentaire s'additionne rapidement lorsqu'il s'agit de manipuler des portes MCX massives - celles qui sont nécessaires pour les applications du monde réel.

Circuit 1
Circuit 2

La porte MCX à 14 commandes

Lors de notre récent concours de codage, les concurrents devaient décomposer une porte MCX à 14 contrôles en portes unitaires à qubit unique et en portes CX, tout en étant limités à 20 qubits au total, tous les qubits ancillaires étant libérés/non calculés à la fin. Les gagnants ont été choisis en fonction du circuit ayant la profondeur la plus courte, car le potentiel de résolution de problèmes réels est limité par cette mesure : plus le bruit introduit à chaque opération est important, plus les résultats risquent d'être inexacts.

Comment créer une porte MCX à 14 contrôles avec Classiq

Classiq offre deux options puissantes pour créer des circuits optimisés et tenant compte du matériel - un SDK Python et une extension dans Visual Studio Code - avec des fonctionnalités de circuit équivalentes. Pour créer une porte MCX avec 14 qubits de contrôle à l'aide du SDK Python de Classiq, il suffit d'appeler la fonction MCX et de déclarer le nombre de qubits de contrôle. Ensuite, pour contraindre ce circuit à seulement 20 qubits et optimiser la profondeur du circuit, nous déclarons notre largeur maximale et le paramètre d'optimisation dans notre objet ModelDesigner.


from classiq import ModelDesigner
from classiq.builtin_functions import Mcx
from classiq.interface.generator.model.constraints import OptimizationParameter

model_designer = ModelDesigner(max_width=20, optimization_parameter=OptimizationParameter.DEPTH)
mcx_params = Mcx(num_ctrl_qubits=14)

model_designer.Mcx(params=mcx_params)
circuit = model_designer.synthesize()

circuit.show_interactive()

En utilisant l'extension Visual Studio Code de Classiq, nous déclarons nos contraintes globales : ne pas utiliser plus de 20 qubits et optimiser pour la profondeur. Nous appelons ensuite notre fonction MCX avec 14 qubits de contrôle, et nous sommes prêts à synthétiser.


{
   "constraints": {
       "max_width": 20,
       "optimization_parameter": "depth"
   },
   "logic_flow": [
       {
           "function": "Mcx",
           "function_params": {"num_ctrl_qubits": 14}
       }
   ]
}

Le circuit interactif qui en résulte, visible ci-dessous et disponible ici, a été généré automatiquement en quelques secondes et a une profondeur de circuit de 95.

visualisation interactive

Logo Classiq

Il y a eu une erreur avec le script

Pour voir d'autres solutions créées par les concurrents au cours du mois de compétition, voir ici.

Au-delà de 14 contrôles

La puissance du moteur de synthèse Classiq est bien plus grande que la création instantanée de portes MCX optimisées à 14 contrôles. Prenons l'exemple du code suivant, dans lequel nous créons une porte MCX optimisée avec 50 qubits de contrôle.


# SDK Python
from classiq import ModelDesigner
from classiq.builtin_functions import Mcx
from classiq.interface.generator.model.constraints import OptimizationParameter

model_designer = ModelDesigner(optimization_parameter=OptimizationParameter.DEPTH)
mcx_params = Mcx(num_ctrl_qubits=50)
model_designer.Mcx(params=mcx_params)
circuit = model_designer.synthesize()

circuit.show_interactive()

// Visual Studio Code
{
   "constraints": {
       "optimization_parameter": "depth"
   },
   "logic_flow": [
       {
           "function": "Mcx",
           "function_params": {"num_ctrl_qubits": 50}
       }
   ]
}

Le circuit interactif de la porte MCX à 50 commandes illustré ci-dessous est disponible ici.

visualisation interactive

Logo Classiq

L'ensemble robuste de fonctions intégrées de Classiq comprend bien plus que des portes MCX, chacune étant aussi simple à définir pour l'utilisateur, laissant les calculs intenses et les techniques d'optimisation au moteur de synthèse de Classiq. Avec Classiq, l'optimisation ne se limite pas au niveau des portes, la connaissance des blocs fonctionnels de haut niveau et de leurs interactions conduisant à une conception révolutionnaire des circuits en quelques instants.

Planifiez une démonstration en direct de la plateforme Classiq pour la voir en action, ou contactez-nous pour savoir comment vous pouvez créer des circuits quantiques à la pointe de l'industrie en quelques minutes.

Cette note décrit comment utiliser la plateforme Classiq pour créer des portes MCX, dont une avec 14 contrôles - un problème de notre récent concours de codage. Elle présente ensuite un exemple beaucoup plus complexe avec 50 qubits de contrôle.

Les ressources quantiques sont précieuses, mais limitées

Les ordinateurs quantiques offrent des promesses alléchantes à ceux qui sauront exploiter leur puissance. Et bien que les ordinateurs d'aujourd'hui ne soient pas tout à fait capables de résoudre les problèmes du monde réel, ceux qui sont en mesure d'optimiser le matériel disponible pourront récolter les fruits de leur travail plus tôt que ceux qui attendent. La porte MCX est une porte quantique importante utilisée dans divers circuits, tels que l'opérateur de Grover, l'opérateur logique ET, divers algorithmes de préparation d'état et des comparateurs arithmétiques. La capacité d'adapter les implémentations des portes MCX pour répondre aux contraintes matérielles - nombre limité de qubits, fidélité, nombre de portes, et ainsi de suite - n'est pas triviale.

Prenons l'exemple d'une porte MCX avec 4 qubits de contrôle. Deux étapes intermédiaires équivalentes pour décomposer cette porte sont présentées ci-dessous. Bien qu'ils réalisent la même fonctionnalité, le circuit 1 a une profondeur de 5 et le circuit 2 une profondeur de 4, car les deux premières portes peuvent être exécutées en parallèle - q0, q1 et q5 étant opérés en même temps que q2, q3 et q6. Bien que cet exemple puisse sembler hors de propos, peu de problèmes étant miraculeusement résolus lorsqu'une opération de moins est nécessaire, l'évolutivité de ce problème est extrêmement pertinente. Cette opération supplémentaire s'additionne rapidement lorsqu'il s'agit de manipuler des portes MCX massives - celles qui sont nécessaires pour les applications du monde réel.

Circuit 1
Circuit 2

La porte MCX à 14 commandes

Lors de notre récent concours de codage, les concurrents devaient décomposer une porte MCX à 14 contrôles en portes unitaires à qubit unique et en portes CX, tout en étant limités à 20 qubits au total, tous les qubits ancillaires étant libérés/non calculés à la fin. Les gagnants ont été choisis en fonction du circuit ayant la profondeur la plus courte, car le potentiel de résolution de problèmes réels est limité par cette mesure : plus le bruit introduit à chaque opération est important, plus les résultats risquent d'être inexacts.

Comment créer une porte MCX à 14 contrôles avec Classiq

Classiq offre deux options puissantes pour créer des circuits optimisés et tenant compte du matériel - un SDK Python et une extension dans Visual Studio Code - avec des fonctionnalités de circuit équivalentes. Pour créer une porte MCX avec 14 qubits de contrôle à l'aide du SDK Python de Classiq, il suffit d'appeler la fonction MCX et de déclarer le nombre de qubits de contrôle. Ensuite, pour contraindre ce circuit à seulement 20 qubits et optimiser la profondeur du circuit, nous déclarons notre largeur maximale et le paramètre d'optimisation dans notre objet ModelDesigner.


from classiq import ModelDesigner
from classiq.builtin_functions import Mcx
from classiq.interface.generator.model.constraints import OptimizationParameter

model_designer = ModelDesigner(max_width=20, optimization_parameter=OptimizationParameter.DEPTH)
mcx_params = Mcx(num_ctrl_qubits=14)

model_designer.Mcx(params=mcx_params)
circuit = model_designer.synthesize()

circuit.show_interactive()

En utilisant l'extension Visual Studio Code de Classiq, nous déclarons nos contraintes globales : ne pas utiliser plus de 20 qubits et optimiser pour la profondeur. Nous appelons ensuite notre fonction MCX avec 14 qubits de contrôle, et nous sommes prêts à synthétiser.


{
   "constraints": {
       "max_width": 20,
       "optimization_parameter": "depth"
   },
   "logic_flow": [
       {
           "function": "Mcx",
           "function_params": {"num_ctrl_qubits": 14}
       }
   ]
}

Le circuit interactif qui en résulte, visible ci-dessous et disponible ici, a été généré automatiquement en quelques secondes et a une profondeur de circuit de 95.

visualisation interactive

Logo Classiq

Il y a eu une erreur avec le script

Pour voir d'autres solutions créées par les concurrents au cours du mois de compétition, voir ici.

Au-delà de 14 contrôles

La puissance du moteur de synthèse Classiq est bien plus grande que la création instantanée de portes MCX optimisées à 14 contrôles. Prenons l'exemple du code suivant, dans lequel nous créons une porte MCX optimisée avec 50 qubits de contrôle.


# SDK Python
from classiq import ModelDesigner
from classiq.builtin_functions import Mcx
from classiq.interface.generator.model.constraints import OptimizationParameter

model_designer = ModelDesigner(optimization_parameter=OptimizationParameter.DEPTH)
mcx_params = Mcx(num_ctrl_qubits=50)
model_designer.Mcx(params=mcx_params)
circuit = model_designer.synthesize()

circuit.show_interactive()

// Visual Studio Code
{
   "constraints": {
       "optimization_parameter": "depth"
   },
   "logic_flow": [
       {
           "function": "Mcx",
           "function_params": {"num_ctrl_qubits": 50}
       }
   ]
}

Le circuit interactif de la porte MCX à 50 commandes illustré ci-dessous est disponible ici.

visualisation interactive

Logo Classiq

L'ensemble robuste de fonctions intégrées de Classiq comprend bien plus que des portes MCX, chacune étant aussi simple à définir pour l'utilisateur, laissant les calculs intenses et les techniques d'optimisation au moteur de synthèse de Classiq. Avec Classiq, l'optimisation ne se limite pas au niveau des portes, la connaissance des blocs fonctionnels de haut niveau et de leurs interactions conduisant à une conception révolutionnaire des circuits en quelques instants.

Planifiez une démonstration en direct de la plateforme Classiq pour la voir en action, ou contactez-nous pour savoir comment vous pouvez créer des circuits quantiques à la pointe de l'industrie en quelques minutes.

A propos de "The Qubit Guy's Podcast" (Le podcast du gars de Qubit)

Animé par The Qubit Guy (Yuval Boger, notre directeur marketing), le podcast accueille des leaders d'opinion de l'informatique quantique pour discuter de questions commerciales et techniques qui ont un impact sur l'écosystème de l'informatique quantique. Nos invités fournissent des informations intéressantes sur les logiciels et algorithmes d'ordinateurs quantiques, le matériel informatique quantique, les applications clés de l'informatique quantique, les études de marché de l'industrie quantique et bien plus encore.

Si vous souhaitez proposer un invité pour le podcast, veuillez nous contacter.

Créez des logiciels quantiques sans contraintes

contactez-nous