Sommaire
- Il existe une théorie de la complexité des problèmes de recherche (également appelés problèmes relationnels). Cette théorie comprend des classes appelées FP , FNP et FBQP qui sont effectivement sur la résolution de problèmes de recherche avec différentes sortes de ressources.
- A partir des problèmes de recherche, vous pouvez également définir des problèmes de décision, ce qui vous permet de relier les problèmes de recherche aux classes habituelles P , NP et BQP .
- Que vous considériez la version de recherche de la version de décision du problème, la façon dont vous considérez l'entrée du problème de recherche non structurée déterminera les limites supérieures que vous pouvez mettre sur sa complexité.
La complexité des problèmes relationnels
Comme vous le constatez, le problème de Grover résout un problème de recherche , qui dans la littérature sur la complexité est parfois également connu sous le nom de problème de relation . Autrement dit, il s'agit d'un problème du type suivant:
La structure d'un problème de recherche général.
Étant donné une entrée et une relation binaire , trouvez un tel que vrai.R y R ( x , y )xRyR(x,y)
Les classes de complexité FP et FNP sont définies en fonction de tels problèmes, où en particulier on s'intéresse au cas où a au plus une longueur une fonction polynomiale de la longueur de , et où la relation peut elle-même être calculé en un temps limité par un polynôme de la longueur de .x R ( x , y ) ( x , y )yxR(x,y)(x,y)
En particulier: l'exemple du problème de «recherche de base de données» pour lequel la recherche de Grover est généralement appliquée peut être décrit comme suit.
Recherche non structurée.
Étant donné un oracle d'entrée tels que pour une fonction , trouvez un tel que . O | un ⟩ | b ⟩ = | un ⟩ | b ⊕ f ( a ) ⟩ f : { 0 , 1 } m → { 0 , 1 } y O | y ⟩ | 0 ⟩ = | y ⟩ | 1 ⟩O:H⊗m+12→H⊗m+12O|a⟩|b⟩=|a⟩|b⊕f(a)⟩F: { 0 , 1 }m→ { 0 , 1 }yO | y⟩ | 0 ⟩ = | y⟩ | 1 ⟩
Ici, l'oracle lui-même est l'entrée du problème: il joue le rôle de , et la relation que nous calculons est
R ( O , y )X
R(O,y)≡[O|y⟩|0⟩=|y⟩|1⟩]≡[f(y)=1].
Supposons qu'au lieu d'un oracle, on nous fournisse une entrée spécifique qui décrit comment la fonction doit être calculée, nous pouvons alors considérer à quelle classe de complexité ce problème appartient. Comme indiqué , la classe de complexité appropriée que nous obtenons dépend de la façon dont l'entrée est fournie.fxfpyramids
Supposons que la fonction d'entrée soit fournie sous forme de base de données (comme le problème est parfois décrit), où chaque entrée de la base de données a une certaine longueur . Si est la longueur de la chaîne utilisée pour décrire la base de données entière , alors la base de données a entrées. Il est alors possible de rechercher exhaustivement la base de données entière en interrogeant chacune des entrées en séquence, et de s'arrêter si l'on trouve une entrée telle que . En supposant que chaque requête dans la base de données prend quelque chose comme , cette procédure s'arrête dans le tempsn x N = n / ℓ N y f ( y ) = 1 O ( log N ) ⊆ O ( log n ) O ( N log N ) ⊆ O ( n log n )ℓnxN=n/ℓNyf(y)=1O(logN)⊆O(logn)O(NlogN)⊆O(nlogn), de sorte que le problème se trouve dans FP .
En supposant que la recherche de base de données peut être effectuée en superposition cohérente, l'algorithme de Grover permet que ce problème se trouve dans FBQP . Cependant, comme FP ⊆ FBQP , la recherche exhaustive classique prouve également que ce problème est en FBQP . Tout ce que nous obtenons (jusqu'aux facteurs de journalisation) est une accélération quadratique en raison d'une économie dans le nombre de requêtes de base de données.
Supposons que la fonction d'entrée soit décrite succinctement, par un algorithme polynomial qui prend une spécification et un argument et calculesur une base standard, état , où peut être beaucoup plus grand que . Un exemple serait où spécifie la forme CNF d'une fonction booléenne pour , auquel cas nous pouvons évaluer efficacement sur une entrée y ∈ { 0 , 1 } m O : H m + 1 2x∈{0,1}ny∈{0,1}mO:Hm+12→Hm+12m Ω ( log n ) x f : { 0 , 1 } m → { 0 , 1 } m ∈ O ( n ) f ( y ) y ∈ { 0 , 1 } m O|y⟩|b⟩mΩ(logn)xf:{0,1}m→{0,1}m∈O(n)f(y)y∈{0,1}met ainsi évaluer efficacement sur des états de base standard. Cela pose le problème dans FNP .O
Étant donné une procédure pour évaluer partir de dans le temps pour , l'algorithme de Grover résout le problème de la recherche non structurée de dans le temps . Ce n'est pas un polynôme en , et ne suffit donc pas pour mettre ce problème en FBQP : nous n'obtenons qu'une accélération quadratique - bien que ce soit encore une économie potentiellement énorme de temps de calcul, en supposant que l'avantage fourni par l'algorithme de Grover ne soit pas perdu pour la surcharge requise pour le calcul quantique tolérant aux pannes.( x , y ) O ( p ( n ) ) n = | x | O O ( p ( n ) √f(y)(x,y)O(p(n))n=|x|O⊆O(p(n)√O(p(n)2m−−−√) n⊆O(p(n)2n−−√)n
Dans les deux cas, la complexité est déterminée en fonction de la longueur de la chaîne * qui indique comment calculer l'oracle . Dans le cas où représente une table de correspondance, nous avons , auquel cas la performance en fonction de est similaire à la performance en fonction de ; mais dans le cas où spécifie succinctement , et , le message général que Grover résout le problème dansx O x N = n / ℓ N n x O N ∈ O ( 2 n / 2 ) O ( √nxOxN=n/ℓNnxON∈O(2n/2)O(N−−√) les requêtes obscurcissent le message plus fin que cet algorithme est toujours à temps exponentiel pour un ordinateur quantique.
Complexité de la décision due aux problèmes relationnels
Il existe un moyen simple d'obtenir des problèmes de décision à partir de problèmes relationnels, ce qui est bien connu de la théorie des problèmes NP- complets : transformer le problème de recherche en une question de l'existence d'une solution valide.
La version de décision d'un problème de recherche général.
Étant donné une entrée et une relation binaire , déterminez si est valable.R ∃ y : R ( x , y )xR∃y:R(x,y)
La classe de complexité NP peut être essentiellement définie en termes de tels problèmes, lorsque la relation est efficacement calculable: les problèmes NP les plus connus (CNF-SAT, HAMCYCLE, 3-COLORING) concernent la simple existence d'une solution valable pour un problème de relation efficacement vérifiable. Ce passage de la production de solutions à la simple affirmation de l'existence de solutions est aussi ce qui nous permet de décrire les versions de factorisation entière qui sont en BQP (en demandant s'il existe des facteurs non triviaux, plutôt que de demander les valeurs des facteurs non triviaux) .R
Dans le cas de la recherche non structurée, la classe de complexité qui décrit le mieux le problème dépend à nouveau de la structure de l'entrée. Déterminer s'il existe une solution à un problème relationnel peut se réduire à trouver et à vérifier une solution à ce problème. Ainsi, dans le cas où l'entrée est une chaîne spécifiant l'oracle comme table de correspondance, le problème de la recherche non structurée est dans P ; et plus généralement si spécifie un moyen efficace d'évaluer l'oracle, le problème est en NP . Il est également possible qu'il existe un moyen de déterminer s'il existexxx une solution pour la recherche non structurée qui le fait sans trouver réellement une solution, bien qu'il ne soit pas clair en général comment le faire d'une manière qui fournirait un avantage sur la recherche d'une solution.
Complexité Oracle
J'ai visiblement été en train de passer de parler de l'oracle , de manière qu'une entrée peut être utilisé pour spécifier (et évaluer) l'oracle . Mais bien sûr, la principale façon dont nous considérons l'algorithme de Grover est comme un résultat oracle dans lequel l'évaluation de l'oracle prend un seul pas de temps et ne nécessite aucune spécification. Comment considérons-nous la complexité du problème dans ce cas? x OOxO
Dans ce cas, nous avons affaire à un modèle de calcul relativisé , dans lequel l'évaluation de cet oracle spécifique (qui, rappelez-vous, est l'entrée du problème) est une opération primitive. Cet oracle est défini sur toutes les tailles d'entrée: pour considérer le problème de recherche sur les chaînes de longueur , vous devez spécifier que vous envisagez la façon dont l'oracle agit sur les entrées de longueur , ce qui serait encore fait en considérant la longueur d'une chaîne booléenne prise en entrée. Dans ce cas, la manière dont nous présenterions le problème pourrait être la suivante. n O n xOnOnx
Recherche déstructuré par rapport à Oracle . O Étant donné une entrée de longueur , x=11⋯1n
x=11⋯1n
trouver un (problème de relation) ouy∈{0,1}n
déterminer s'il existe un (problème de décision)y∈{0,1}n
de telle sorte que .O|y⟩|0⟩=|y⟩|1⟩
Ce problème se trouve dans (pour le problème de décision) ou (pour le problème de relation), selon la version du problème que vous souhaitez résoudre. considérer. Étant donné que l'algorithme de Grover n'est pas un algorithme polynomial, ce problème n'est pas connu pour être dans ou . En fait, nous pouvons dire quelque chose de plus fort, comme nous le verrons bientôt.NPOFNPOBQPOFBQPO
La raison pour laquelle j'ai effleuré la description réelle, basée sur Oracle, de la recherche non structurée était pour aborder votre point de complexité, et en particulier pour aborder la question de la taille des entrées . La complexité des problèmes est largement régie par la façon dont les entrées sont spécifiées: comme spécification succincte (dans le cas de la façon dont une fonction est spécifiée dans CNF-SAT), comme spécification explicite (dans le cas d'une table de recherche pour un , ou même comme un entier spécifié en unaire, c'est-à-dire comme la longueur d'une chaîne de 1 comme ci-dessus (comme dans "Recherche non structurée relative à Oracle " ci-dessus).O
Comme nous pouvons le voir dans ce dernier cas, si nous ne traitons l'entrée que comme un oracle, la situation semble un peu peu intuitive et il est certainement impossible de parler des façons dont la "base de données" peut être réalisée. Mais une vertu de considérer la version relativisée du problème, avec un véritable oracle, est que nous pouvons prouver des choses que nous ne savons pas comment prouver autrement. Si nous pouvions prouver que la version décisionnelle du problème de recherche succincte non structurée se trouvait dans BQP , nous réaliserions alors une énorme percée dans le calcul pratique; et si nous pouvions prouver que le problème de décision n'était pas réellement dans BQP , alors nous aurions montré que P ≠ PSPACE, ce qui représenterait une énorme percée dans la complexité informatique. Nous ne savons pas non plus comment faire. Mais pour le problème relativisé, nous pouvons montrer qu'il existe des oracles pour lesquels la version de décision de "Recherche non structurée relative à " est dans mais pas dans . Cela nous permet de montrer que bien que l'informatique quantique soit potentiellement puissante, il y a des raisons de s'attendre à ce que BQP ne contienne probablement pas NP , et que la version relationnelle de la recherche non structurée en particulier ne soit probablement pas contenue dans FBQP sans imposer de fortes contraintes sur la façon dont l'entrée est représentée.OONPOBQPO
\text{}
pour écrire les noms des classes de complexité. Par exemple\text{NP}
ou\text{BQP}