Skip to main content
IBM Quantum Platform

qiskit.circuit.library.hidden_linear_function

qiskit.circuit.library.hidden_linear_function(adjacency_matrix)

GitHub

Circuit pour résoudre le problème de la fonction linéaire cachée.

Le problème des fonctions linéaires cachées ( 2D ) est déterminé par une matrice d'adjacence A ( 2D ), où seuls les éléments qui sont les plus proches voisins sur une grille ont des entrées non nulles. Chaque ligne/colonne correspond à une variable binaire xix_i.

Le problème de la fonction linéaire cachée est le suivant :

Considérons la forme quadratique

q(x)=i,j=1nxixj (mod 4)q(x) = \sum_{i,j=1}^{n}{x_i x_j} ~(\mathrm{mod}~ 4)

et restreindre q(x)q(x) à l'espace nul de A. Il en résulte une fonction linéaire.

2i=1nzixi (mod 4)xKer(A)2 \sum_{i=1}^{n}{z_i x_i} ~(\mathrm{mod}~ 4) \forall x \in \mathrm{Ker}(A)

et l'objectif est de retrouver cette fonction linéaire (équivalente à un vecteur [z0,...,zn1][z_0, ..., z_{n-1}] ). Il peut y avoir plusieurs solutions.

En [1], il est démontré que le présent circuit résout ce problème sur un ordinateur quantique à profondeur constante, alors que toute solution correspondante sur un ordinateur classique nécessiterait des circuits qui croissent de manière logarithmique avec nn. Ce circuit est donc un exemple d'avantage quantique avec des circuits peu profonds.

Circuit de référence :

from qiskit.circuit.library import hidden_linear_function
A = [[1, 1, 0], [1, 0, 1], [0, 1, 1]]
circuit = hidden_linear_function(A)
circuit.draw('mpl')
Schéma de circuit produit par le code précédent.

Paramètres

adjacency_matrix (list |ndarray) – une liste symétrique n par n de listes 0-1. n sera le nombre de qubits.

Augmentations

CircuitError – Si A n'est pas symétrique.

Type de retour

QuantumCircuit

Référence :

[1] S. Bravyi, D. Gosset, R. Koenig, Quantum Advantage with Shallow Circuits, 2017. arXiv:1704.00690

Cette page a-t-elle été utile ?
Signaler un bogue, une coquille ou proposer du contenu sur GitHub.