Est-ce que prouver P ≠ NP serait plus difficile que prouver P = NP?


20

Considérons deux possibilités pour le problème P vs. NP: P = NP et P NP.

Soit Q l'un des problèmes NP-difficiles connus. Pour prouver P = NP, nous devons concevoir un seul algorithme polynomial de temps A pour Q et prouver que A résout correctement Q.

Pour prouver P NP, nous devons montrer qu'aucun algorithme de temps polynomial ne résout Q. En d'autres termes, nous devons exclure tous les algorithmes de temps polynomial.

J'ai entendu des gens dire que cela rend la deuxième tâche plus difficile (en supposant que c'est vraiment vrai).

Y a-t-il une raison de penser que prouver P = NP (en supposant que P = NP) serait plus facile que de prouver P NP (en supposant que P NP)?


31
Cette question est mal posée. Puisqu'une seule des affirmations peut être vraie, une est impossible à prouver. L'autre peut être possible de prouver, et si c'est le cas, il serait plus facile de prouver que le faux. Ergo, je n'ai aucune idée du type de réponse que vous recherchez. Votes de la communauté, s'il vous plaît! Peut-on y répondre du tout?
Raphael

10
@Raphael Je suis en désaccord. Vous pourriez interpréter la question de OP comme "Si P = NP était vrai, serait-il plus facile de prouver que de prouver P ≠ NP si P ≠ NP était vrai?" Je ne pense pas qu'OP ait sérieusement l'intention de l'interpréter comme une suggestion que les deux doivent être vraies.
The Anathema

3
FWIW, il me semble que a) @ l'interprétation de TheAnathema de la question est correcte et b) c'est une question significative. En d'autres termes: si P = NP, et qu'une preuve est trouvée, cette preuve sera probablement sous la forme d'un algorithme polynomial pour un problème NP-complet. D'un autre côté, si nous partons de l'hypothèse que P ≠ NP, quelles sortes de techniques pourrions-nous utiliser pour trouver une preuve, et quelle forme pourrait prendre une telle preuve?
JohannesD


Les commentaires ne sont pas pour une discussion approfondie; cette conversation a été déplacée vers le chat .
Gilles 'SO- arrête d'être méchant'

Réponses:


25

Comme l'explique Raphaël, cette question est mal posée, car au plus l'un des P = NP et P ≠ NP devrait être prouvable. Cependant, une question similaire se pose en informatique théorique sous plusieurs formes, dont la plus visible se situe dans le domaine des algorithmes d'approximation .

Étant donné un problème d'optimisation NP-difficile (par exemple, la maximisation), nous pouvons nous demander dans quelle mesure nous pouvons l'approcher. Prouver une borne supérieure sur l'approximation possible s'apparente à P = NP, tandis que prouver une borne inférieure sur l'approximation possible s'apparente à P ≠ NP. Le premier est beaucoup plus facile que le second. En effet, pour prouver une borne supérieure, il suffit de trouver un algorithme d'approximation et de l'analyser. En revanche, toutes les bornes inférieures connues sont conditionnelles: ils ne sont valables que si P ≠ NP (en effet, si P = NP alors tout problème d'optimisation NP-dur deviendrait résoluble). Pour prouver ces limites inférieures, nous montrons que si nous pouvions trop bien approcher le problème, nous obtiendrions un algorithme de temps polynomial pour un problème NP-difficile. Habituellement, cela se fait via la machinerie technique complexe du théorème PCP. Ce domaine, connu sous le nom de dureté d'approximation , ne peut être abordé que par des spécialistes, et est techniquement plus difficile que la plupart des algorithmes d'approximation. Donc dans ce cas au moins, P = NP est en effet plus facile que P ≠ NP.


14
Vous pourriez interpréter la question de OP comme "Si P = NP était vrai, serait-il plus facile de prouver que de prouver P ≠ NP si P ≠ NP était vrai?" Je ne pense pas que OP ait sérieusement voulu que cela soit interprété comme étant vrai.
The Anathema

6
@TheAnathema Je suppose qu'il faut interpréter la question de cette façon. Mais c'est encore assez mal posé car l'une des options est nécessairement contrefactuelle. Comment pouvez-vous comparer ce contrefactuel à la difficulté de prouver quelque chose de vrai?
David Richerby

@ David, l'affirmation sur la difficulté de prouver P NP par rapport à P = NP est quelque chose que j'ai eu à plusieurs reprises auprès d'experts. Demander s'il s'agit d'une réclamation raisonnable est une question valable. L'évaluation de la difficulté des situations contrefactuelles (lorsqu'elles ne le sont pas) est en fait courante. Prenons par exemple quelqu'un qui pose des questions sur la difficulté de prouver P NP. Si P = NP, il est contrefactuel. =
Kaveh

9

Nous n'avons pas exclu la possibilité d'une simple preuve que P = NP. Si quelqu'un arrive demain avec un algorithme qui résout un problème NP-complet en temps P, le monde change.

En revanche, nous avons exclu la possibilité d'une simple preuve que P! = NP. Nos techniques de preuve typiques pour montrer que deux classes de complexité différentes se sont avérées formellement insuffisantes. Trois de ces techniques sont connues sous le nom d '"arithmétisation", de "preuves naturelles" et de la catégorie de preuves appelées "relativiser" (celles qui ne se soucient pas des oracles utilisés). Il peut être prouvé que toute technique de preuve qui appartient à l'une de ces trois catégories ne peut pas prouver P! = NP.

En effet, il existe des preuves solides que prouver P! = NP nécessite de nouveaux types de preuves (nouvelles techniques avec des propriétés différentes), pas seulement une nouvelle application de techniques de preuve bien connues.


Maintenant, il pourrait s'avérer que P = NP, alors qu'il n'y a pas d'algorithme simple à vérifier dans P qui résout un problème NP-complet, et que de nouvelles techniques de preuve sont nécessaires pour prouver P = NP. (Si P = NP, nous connaissons déjà des algorithmes qui sont techniquement en P et qui résolvent les problèmes NP-difficiles, de manière amusante. Ils ne sont pas pratiques à exécuter, car leur facteur constant est grand.)

Fondamentalement, nous savons beaucoup de choses sur ce que nous ne pouvons pas utiliser pour prouver P! = NP, alors que nous savons apparemment peu sur ce que nous ne pouvons pas utiliser pour prouver P = NP.


Toutes les barrières aux preuves simples de s'appliquent aux preuves de P = N P à force égale. Si vous aviez un algorithme, alors la preuve que P = N P serait la preuve que l'algorithme était (i) correct et (ii) en temps polynomial, et cette preuve devrait encore argumenter sur le fait du non-déterminisme que l'algorithme utilise pour sa simulation déterministe efficace qui n'est pas vraie par rapport à un oracle (algébrique), et comment il bat la barrière des preuves naturelles. PNPP=NPP=NP
Lieuwe Vinkhuijzen

8

Eh bien, vous avez essentiellement l'idée. Nous pensons généralement que P! = NP mais n'avons aucune idée de la façon dont nous pourrions même prouver que ces choses ne sont pas égales.

À l'inverse, si P = NP, vous penseriez que nous aurions trouvé un algorithme pour résoudre l'un des dizaines de problèmes NP-complets maintenant.

Ce sont des arguments très vagues, mais en quelques phrases, ils décrivent la culture des informaticiens.

La preuve que P! = NP est "plus difficile" dépend bien sûr de ce qui est vrai (sauf résultats méta-mathématiques?), Et cela, bien sûr, nous ne le savons pas.


5

¬mod6n1.9

Cependant, il y a eu des travaux récents de Ryan Williams et d'autres qui montrent qu'il existe des liens intrinsèques entre prouver des limites inférieures et trouver des algorithmes. Par exemple, il a montré qu'un algorithme légèrement meilleur qu'un algorithme de force brute pour un problème SAT restreint particulier implique des limites inférieures de circuit, puis il a conçu un tel algorithme. Je pense donc que les gens sont un peu moins pessimistes et ne semblent pas non plus développer d'algorithme et prouver des limites inférieures aussi distinctes que les gens le pensaient.

πφπφet l'algorithme renvoie oui ou non. Vous pouvez penser à n'importe quel correcteur d'épreuves de cette façon. Vous pouvez également penser aux preuves dans un système mathématique comme ZFC en tant que tel. Le processus de vérification lui-même peut se faire en temps polynomial à la taille de la preuve car c'est une tâche syntaxique.

φφφ265536en ce sens que vous pouvez déterminer les lignes précédentes à partir de la ligne actuelle dans la preuve et la règle. Une exception importante à cela est la règle de coupe. C'est important car bien que nous n'ayons pas besoin de la règle de coupe pour prouver les déclarations, cela peut réduire considérablement la taille de la preuve la plus courte. Cependant, la règle de réduction n'est pas déterministe: il existe une formule de réduction que nous devons deviner. Vous pouvez penser à la règle de coupe comme prouvant les lemmes et les utilisant. La formule coupée est comme un lemme. Mais quel lemme devons-nous prouver qui nous aidera? C'est la partie difficile. Souvent, un résultat est prouvé en mathématiques en trouvant un bon lemme. De plus, lorsque vous utilisez des résultats précédemment éprouvés, vous utilisez essentiellement la règle de coupe. Les définitions sont un autre élément important pour prouver les déclarations. Souvent, nous définissons un nouveau concept, puis prouvons des déclarations à ce sujet, et enfin l'appliquer dans notre cas particulier. L'utilisation de définitions réduit la taille des formules (essayez d'étendre certaines formules mathématiques au langage théorique de l'ensemble pur en développant les définitions pour avoir une idée de l'importance des définitions). Encore une fois, quelles nouvelles définitions devrions-nous utiliser? Nous ne le savons pas. Cela m'amène au troisième sens d'une déclaration difficile à prouver. Une déclaration peut être difficile à prouver car vous avez besoin d'axiomes forts. Prenez par exemple Une déclaration peut être difficile à prouver car vous avez besoin d'axiomes forts. Prenez par exemple Une déclaration peut être difficile à prouver car vous avez besoin d'axiomes forts. Prenez par exempleCH . Il ne peut pas être prouvé dans ZFC ni réfuté dans ZFC. C'est un cas extrême mais cela arrive plus souvent que vous ne le pensez. Par exemple, avons-nous besoin de grands axiomes cardinaux (pour pouvoir travailler dans les univers de Grothendieck ) pour prouver le FLT ou pouvons-nous le prouver dans une théorie beaucoup plus faible comme l' AP ? Il s'agit d'un autre concept concernant la difficulté de prouver des déclarations.


Lorsque vous parlez de définir la question "plus religieusement", je suppose que vous voulez dire "plus rigoureusement"? :-)
David Richerby

2
@ David, oui, la correction automatique le fait parfois. :)
Kaveh

4

Je pense que la question peut être réduite à: est-il plus facile de prouver que quelque chose existe ou de prouver que quelque chose n’existe pas.

L'argument en faveur de la preuve que quelque chose existe est qu'il est facile de construire des choses qui pourraient satisfaire aux exigences et il est également facile de vérifier si elles les satisfont effectivement.

Dans certains cas, cela est vrai: si vous voulez trouver la racine d'un polynôme, il est facile de construire des nombres et il est facile de vérifier s'ils sont des racines.

Le problème, bien sûr, c'est qu'il faut avoir de la chance. Vous pourriez être en mesure de réduire l'espace de recherche, par exemple en prouvant qu'il doit être un multiple de 5 ou compris entre 1 et 10; mais, à moins que vous ne le limitiez à un ensemble fini de nombres (auquel cas vous n'utilisez pas vraiment la méthode "devinez et validez"), vous n'avez pas de méthode pour résoudre le problème: vous n'avez qu'une méthode qui, en supposant vous êtes extrêmement chanceux, pourriez générer une solution.

Mais si vous le souhaitez, il est tout aussi facile de prouver que quelque chose n'existe pas! Générez des textes qui pourraient être des solutions possibles et vérifiez s'ils le sont réellement.

Par conséquent, avoir une méthode qui pourrait donner la solution par pure chance ne signifie pas que prouver que quelque chose existe est plus facile.

Maintenant, est-il généralement plus facile de prouver que quelque chose existe avec une autre méthode? Cela dépend du problème réel car sinon, prouver que quelque chose n'existe pas serait réduit à prouver qu'une preuve qu'il n'existe pas existe. Et je crains que nous ne puissions pas mesurer cela car il n'y a jamais eu quelque chose dont il a été prouvé qu'il existait et n'existait pas afin que nous puissions (tenter de) mesurer la difficulté de la preuve.


1
Si ce "quelque chose" existe, il est plus facile de le prouver (trivialement, vous ne pouvez pas prouver qu'il n'existe pas; cela ne signifie pas qu'il n'est pas diaboliquement difficile de trouver ladite preuve). Même raisonnement dans l'autre sens. Comme le disent les commentaires, la question elle-même n'a aucun sens.
vonbrand

@vonbrand Je ne dis pas for any X: is it easier to prove that X exists or to prove that X does not exist, je dis que for any X,Y: is it easier to prove that X exists or to prove that Y does not exist.c'est -à- dire si E l'ensemble de preuves qui prouvent des phrases de la forme «X existe» et NE l'ensemble de preuves qui prouvent des phrases de la forme «Y n'existe pas», et d ( P) la difficulté de la preuve, est-il vrai que d (X) <d (Y) où X dans E et Y dans NE.
Thanos Tintinidis

d(X)XXX

@vonbrand yes; de plus, je soutiens que vous ne pouvez pas utiliser la méthode OP (continuer à générer des solutions potentielles jusqu'à ce que vous en trouviez une) comme argument pour suggérer que prouver l'existence est plus facile que prouver la non-existence car vous pouvez transformer la transformation de la déclaration S1 de non-existence à une déclaration S2 de l'existence de la preuve de la déclaration S1. Bien que je commence à douter de la valeur de cela
Thanos Tintinidis


-2

Je pense qu'il est impossible de prouver P <> NP, car il faudrait exclure tous les algorithmes qui pourraient prouver P = NP. Il pourrait y en avoir un nombre infini possible. Il n'y a aucun moyen de réfuter l'infini, donc ce n'est pas possible. D'un autre côté, il suffirait d'un seul algorithme pour prouver P = NP, s'il en est ainsi. Par conséquent, soit P = NP que quelqu'un prouvera, soit nous ne le saurons jamais.


Bienvenue en informatique ! Vous croyez ou vous pouvez prouver que ce n'est pas prouvable? Je pense que la réponse de Yakk fait la lumière sur le sujet.
Evil

2
"Il n'y a aucun moyen de réfuter l'infini" Les gens excluent infiniment de possibilités tout le temps en mathématiques; nous n'avons pas nécessairement à vérifier chacun à la main pour savoir qu'aucun ne fonctionne. Votre «argument» impliquerait que nous ne pouvons jamais séparer les classes de complexité, ce qui est un non-sens.
Noah Schweber
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.