En général, nous savons qu'il est plus facile de tester si une fonction prend une valeur particulière à une entrée donnée que d'évaluer la fonction à cette entrée. Par exemple:
L'évaluation du permanent d'une matrice de nombre entier non négatif est # P-difficile, mais indiquer si un tel permanent est nul ou non nul est en P (correspondance bipartite)
Il y a n nombres réels , tel que le polynôme ait les propriétés suivantes (en effet, la plupart des ensembles de nombres réels auront ces propriétés). Pour une entrée donnée , tester si ce polynôme est égal à zéro prend des multiplications et des comparaisons (par le résultat de Ben-Or , car le zéro a composants), mais l’évaluation du polynôme ci-dessus prend au moins étapes, dePaterson-Stockmeyer.
Le tri nécessite étapes sur un arbre de comparaison (également étapes sur un arbre de décision algébrique réel, toujours d'après le résultat de Ben-Or), mais le test de sélection d'une liste à l'aide de comparaisons .
Existe-t-il des conditions générales sur un polynôme suffisantes pour impliquer que la complexité (algébrique) de tester si le polynôme est égal à zéro équivaut à la complexité de l'évaluation du polynôme?
Je recherche des conditions qui ne dépendent pas de la connaissance préalable de la complexité des problèmes.
( Clarification 27/10/2010 ) Pour être clair, le polynôme ne fait pas partie de l'entrée. Ce que cela signifie, c’est que, étant donné une famille fixe de fonctions (une pour chaque taille d’entrée (longueur binaire ou nombre d’entrées)), je souhaite comparer la complexité du problème langage / décision avec la complexité d'évaluer les fonctions .
Précision: je m'interroge sur la complexité asymptotique de l'évaluation / test des familles de polynômes. Par exemple, sur un champ fixe (ou un anneau, tel que ), "le permanent" n’est pas un polynôme unique, mais une famille infinie où est le permanent d'une matrice sur ce champ (ou anneau). { p e r m n : n ≥ 0 } p e r m n n × n
la source
Réponses:
Sur , le test de zéro et l'évaluation sont "presque" identiques dans le sens suivant: Supposons que vous avez un arbre de décision qui teste si un polynôme irréductible f est différent de zéro. Nous travaillons sur C , nous ne pouvons donc tester que l’égalité mais nous n’avons pas "<". C'est la différence importante avec le deuxième exemple de la question! Maintenant , prenez le chemin typique, par exemple, le chemin emprunté par presque toutes les entrées (nous suivons toujours le « ≠ » -branch). De plus, prenez le chemin typique de tous les éléments de la variété V ( f ) . Soit v le noeud sur lequel ces deux chemins prennent une branche différente pour la première fois. Soit h 1 ,C f C ≠ V(f) v sont les polynômes qui sont testés le long du préfixe commun des deux chemins. Puisque V ( f ) est fermé, tous les éléments qui se trouvent dans V ( f ) et atteignent v se trouvent aussi dans V ( h m ) . Par conséquent, si f ( x ) = 0 , alorsun des h i est nulle sur x . Nous appliquons Nullstellensatz de Hilbert h 1 ⋯ h m et obtenir que f g =h1,…,hm V(f) V(f) v V(hm) f(x)=0 hi x h1⋯hm pour certains polynômes g qui est coprime de f . En bref, alors que nous necalculonspas f , pour décider si f ( x ) = 0 , nous devons calculer f g pour certains coprimes g .fg=h1⋯hm g f f f(x)=0 fg g
la source
Makowski "Les utilisations algorithmiques du théorème de Feferman-Vaught" est peut-être pertinent. Il définit les polynômes en faisant la somme de structures définissables par MSOL sur des graphiques et montre qu'ils sont faciles à évaluer lorsque les graphiques sont liés par une largeur d'arbre.
Cela ne dit pas grand-chose sur la différence de complexité des tests / évaluations au-delà du FPT. Tester une valeur signifie demander s'il existe un paramètre de variables tel que la formule donnée de MSO2 sur un graphe donné ait la valeur true, alors que l'évaluation implique l'énumération des assignations trop satisfaisantes de la formule de MSO2. Cela semble être lié à la question de savoir comment la complexité du comptage SAT est liée à la complexité de SAT.
Edit 10/29 Un autre concept utile pourrait être d'examiner la propriété Uniform Difficult Point. Apparemment, les polynômes avec cette propriété sont soit faciles à évaluer en tous points, soit difficiles à évaluer presque à chaque point. Makowski donne quelques références sur les diapositives 46-52 - http://www.cs.technion.ac.il/admlogic/TR/2009/icla09-slides.pdf
la source
Je vais faire l’idée que l’évaluation d’un polynôme dans F p pour un nombre premier fixe p (ou toute extension de celui-ci, et avec les coefficients limités au même corps) conviendra à votre critère.q(x) Fp p
plus concrètement, considérons un polynôme dans . Nous savons que x 2 = x dans F 2 , donc si nous supposons qu'un polynôme est déjà sous forme réduite lorsqu'il est donné en entrée, nous considérons simplement l'un des éléments suivants: 0 , 1 , x , x + 1 et en conséquence, en évaluant n'importe lequel de ces polynômes à 0 ou 1 prend au plus 2 opérations arithmétiques.F2[x] x2=x F2 0,1,x,x+1 0 1
Je crois qu'une déclaration similaire "temps constant via un nombre fixe d'opérations arithmétiques" s'applique plus généralement à où q = p n où p est premier. notez que si n n'est pas corrigé, cette instruction n'est plus valideFq q=pn p n
la source
Je ne suis pas sûr de bien comprendre la question, mais laissez-moi tenter de vous éclairer.
En règle générale, l'évaluation d'un polynôme à certaines valeurs est plus facile que le test d'identité, en particulier lorsque la représentation du polynôme s'effectue via un circuit (une représentation succincte). Cependant, il existe de nombreux algorithmes de tests d'identité aléatoires ( Schwarz-Zippel étant le plus simple) qui fonctionnent uniquement avec des évaluations.
Dans certains cas particuliers, nous proposons des tests de type "boîte noire" permettant de vérifier si un polynôme est égal à zéro ou non, simplement en les évaluant selon un ensemble de points prédéfini. Un exemple simple de ceci est si le polynôme est 'clairsemé' (a seulement monômes). Pour simplifier l’exposé, supposons que le polynôme soit multilinéaire (chaque monôme est un produit de variables distinctes).nO(1)
Un moyen naturel d'envoyer un polynôme multiligne multivarié à un univarié consiste à utiliser la substitution . Le polynôme résultant est à dire Σ i ∈ S α i y a i . Cela pourrait bien être un polynôme de degré exponentiel, mais passons modulo y r - 1 pour une petite plage de r 's. Maintenant , un r serait « mauvais » pour une paire de monômes si y a et y b get mappées à la même monôme modulo y r - 1xi↦y2i ∑i∈Sαiyai yr−1 r r ya yb yr−1 . Ou en d'autres termes, divise a - b . Donc tant que r ne divise pas ∏ i , j ∈ S ( a i - a j ) , cela ne se produira pas. Par conséquent, il suffit de parcourir une plage polynomiale de r . Ainsi, il suffit d'évaluer le polynôme à certaines racines d'unités et nous pouvons comprendre que le polynôme est nul ou non.r a−b r ∏i,j∈S(ai−aj) r
Les algorithmes de test d'identité dans les boîtes noires ont progressé davantage. À l’heure actuelle, la plupart d’entre elles se trouvent alors à une profondeur restreinte 3 circuits (somme des produits de sommes de variables). (FWIW) Une partie de cela est mentionnée plus en détail dans les chapitres 3 et 4 de ma thèse de maîtrise . Et Saxena et Seshadri ont également fait l’objet de nouvelles améliorations récemment.
la source
Tout problème #P, ou même # P / poly, peut être écrit sous forme de polynôme: créez un circuit à partir de portes NAND, écrivez-les en tant que où x et y valent des entiers valant 0-1, et additionnez toutes les entrées. . Cela donne un polynôme en Z [ x 1 , . . . , x n ] pour les entrées de taille n . Le problème de la décision est de savoir si c'est 0.1−xy x y Z[x1,...,xn] n
la source