Autre notion de complexité basée sur l'écart entre la force brute et le meilleur algorithme?


17

En règle générale, les algorithmes efficaces ont un runtime polynomial et un espace de solution exponentiellement grand. Cela signifie que le problème doit être facile dans deux sens: premièrement, le problème peut être résolu en un nombre polynomial d'étapes, et deuxièmement, l'espace de la solution doit être très structuré car le temps d'exécution n'est que polylogarithmique dans le nombre de solutions possibles.

Cependant, parfois ces deux notions divergent, et un problème n'est facile que dans le premier sens. Par exemple, une technique courante dans les algorithmes d'approximation et la complexité paramétrée consiste (grossièrement) à prouver que l'espace de solution peut en fait être restreint à une taille beaucoup plus petite que la définition naïve, puis à utiliser la force brute pour trouver la meilleure réponse dans cet espace restreint. . Si nous pouvons a priori nous limiter à, disons, n ^ 3 réponses possibles, mais nous devons toujours vérifier chacune d'elles, alors dans un certain sens, ces problèmes sont toujours "difficiles" en ce sens qu'il n'y a pas de meilleur algorithme que la force brute.

Inversement, si nous avons un problème avec un nombre doublement exponentiel de réponses possibles, mais que nous pouvons le résoudre en un temps exponentiel seulement, alors je voudrais dire qu'un tel problème est "facile" ("structuré" peut être un meilleur mot) car le runtime n'est que le journal de la taille de l'espace de la solution.

Quelqu'un connaît-il des articles qui envisagent quelque chose comme la dureté basée sur l'écart entre un algorithme efficace et la force brute ou la dureté par rapport à la taille de l'espace de la solution?

Réponses:


12

Un problème avec la formalisation de la question est que l'expression "espace de solution pour le problème A" n'est pas bien définie. La définition d'un espace de solution nécessite un algorithme de vérification qui, étant donné une instance et une solution candidate, vérifie si la solution est correcte ou non. Ensuite, l'espace de solution d'une instance par rapport à un vérificateur est l'ensemble des solutions candidates qui rendent la sortie du vérificateur "correcte".

Par exemple, prenons le problème SAT0: étant donné une formule booléenne, est-il satisfait par l'affectation de tous les zéros? Ce problème est trivial en temps polynomial, mais son espace de solution peut varier énormément, selon le vérificateur que vous utilisez. Si votre vérificateur ignore la solution candidate et vérifie simplement si tous les zéros fonctionnent sur l'instance, alors "l'espace de solution" pour toute instance SAT0 sur ce vérificateur est trivial: ce sont toutes les solutions possibles. Si votre vérificateur vérifie si la solution candidate est une affectation satisfaisante, l'espace de solution d'une instance SAT0 peut en fait être assez complexe, sans doute aussi complexe que l'espace de solution de n'importe quelle instance SAT.

t(n,k)nknkO(2kt(n,k))

Remarque est le coût d'essayer toutes les chaînes de longueur jusqu'à k et d'exécuter le vérificateur. Donc, ce qui précède peut être vu comme demandant si nous pouvons améliorer la recherche par force brute pour le vérificateur donné. Le domaine des "algorithmes exacts pour les problèmes NP-difficiles" peut être considéré comme un effort à long terme pour étudier la difficulté d'améliorer la recherche par force brute de certains vérificateurs très naturels: par exemple, la question de trouver des algorithmes supérieurs à 2 n pour SAT est la question de savoir si nous pouvons toujours améliorer par rapport à la recherche par force brute le vérificateur qui vérifie si la solution candidate donnée est une affectation satisfaisante pour l'instance SAT donnée.O(2kt(n,k))2n

L'article montre quelques conséquences intéressantes de l'amélioration de la recherche par force brute pour certains problèmes. Même l'amélioration de la recherche par force brute des «espaces de solution de taille polynomiale» aurait des conséquences intéressantes.


1
..

Je suis plus que réticent à faire référence à mes propres articles dans une réponse. Mais quand cela correspond exactement à la question, il est difficile de résister ...
Ryan Williams

5

Comment feriez-vous face à des problèmes de programmation dynamique typiques? Ici, ce qui se produit souvent, c'est que l'espace des solutions optimales est polynomialement limité, mais pas l'espace des solutions. Cela semble donc «facile» dans votre sens, car le temps d'exécution est logarithmique dans l'espace de la solution, mais il est «difficile» dans votre sens, car il exécute la «force brute» sur toutes les solutions potentiellement optimales.


Il y a un certain nombre de subtilités dans les définitions qui devraient être élaborées, comme exactement quels algorithmes peuvent être qualifiés de force brute. J'essaierais probablement de restreindre l'espace de la solution comme suit: si, pour une taille de problème donnée, vous pouvez supprimer une réponse de la considération sans regarder les données, alors ce n'est pas dans l'espace de la solution (certes, cela permet plusieurs espaces de solution distincts). Cela dit, je serais heureux d'avoir une réponse qui ressemble à ma question même si elle diffère sur bien des points.
Ian

3

La perspective semble supposer certaines choses, comme la finitude des espaces de solution.

Par exemple, réfléchissez au problème de la génération d'une tesselation de Voronoï à partir d'un ensemble de points d'entrée. Ici, il y a un espace de solution de taille infinie car chaque point dans les bords du diagramme est un tuple de nombres réels. Pourtant une solution peut être trouvée en O (n log (n)) dans le nombre de points d'entrée (pour l'avion).


Certes, certains problèmes peuvent ne pas rentrer dans ce cadre. Bien que pour certains problèmes avec des sorties en nombre réel, on puisse rendre l'espace fini en décrivant la sortie algébriquement en termes d'entrées (par exemple comme des combinaisons linéaires de points d'entrée). Je ne connais pas grand-chose aux algorithmes géométriques, où des nombres réels sont généralement rencontrés, donc je ne sais pas à quelle fréquence ou si cela serait possible.
Ian

1
Les nombres réels ne sont pas le seul moyen d'obtenir des espaces de solution infinis. Prenons un match entre Alice et Bob. Alice choisit un entier n. Bob fait des suppositions et Alice lui dit s'il est supérieur, inférieur ou égal à son secret n. Bob a une stratégie à temps fini pour trouver n car il est toujours fini. Il commence un 0 puis sélectionne une grande constante c. Alice lui dit dans quelle direction se trouve son n et Bob devinera un virage jusqu'à ce qu'il trouve une limite inférieure et supérieure, où il effectue une recherche binaire de n. Là encore, je suppose que vous pourriez faire valoir qu'il existe un espace de solution finie dans le nombre de bits de n ...
Ross Snider

3

Les problèmes qui admettent des algorithmes avec un retard polynomial sont liés . La première solution, et chaque solution par la suite, peut être générée en temps polynomial. Johnson, Yannakakis et Papdimitriou discutent de ce cadre dans le contexte d'autres lacunes possibles (telles que le temps total polynomial): On Generating All Maximal Independent Sets , Information Processing Letters 27 , 119-123, 1988.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.