La saisissante question P=NP

publicité
LA SAISISSANTE QUESTION : P = NP ?
J F Kentzel – Lycée Pardailhan à Auch (32) [email protected]
Rappelant en fin d’année à mes élèves de terminale qu’en cas d’indétermination à l’infini « une
lim  a x 
    si a  1 ), il me
exponentielle l’emporte toujours sur une puissance » (
x    x b 
revient à l’esprit que j’ai l’impression depuis quelques années que la plus jolie énigme
mathématique du début du vingt et unième siècle est peut être cette question « P = NP ? » qui
va être décrite dans ce qui suit.
Explication pour un élève de la classe de première :
Une suite géométrique u vérifiant u0 = 1 (autrement dit : définie par un = an ,
avec a fixé) est la restriction à IN d’une fonction exponentielle.
2n
On se persuade facilement avec un tableur que, par exemple : lim 3   .
n   n
1.001n
On démontre en terminale qu’on a aussi, par exemple : lim
  .
n    n1000
Quelques définitions incontournables
1 ) Un algorithme résolvant un problème est une suite
d’opérations élémentaires menant à coup sur (pour
n’importe quelle donnée du problème) en un nombre
fini d’étapes à la résolution de ce problème pour la
donnée considérée. Voir les exemples qui suivent.
2 ) Soit n un entier (positif). On dit qu’une donnée d’un problème est de taille n si on peut
écrire (coder) cette donnée avec n chiffres ou symboles. Par exemple, 3662 est de taille 4.
On prouverait facilement, avec les logarithmes de terminale, que le choix de l’ « alphabet » utilisé ( {a, b,…z},
{0,1,…9}, {0, 1},…) ne joue aucun rôle dans la question P / NP.
3 ) On dit qu’un algorithme A résolvant un problème est de complexité polynomiale s’il existe
un polynôme f tel que toute donnée de taille n peut être traitée en au plus f ( n ) étapes. On dit
aussi que A « travaille » en temps polynomial.
On peut traduire le mot « étape » par « opération élémentaire ». Etre plus précis est sans importance pour la
question P / NP.
Le fonctionnement d’un algorithme demande du temps mais aussi de l’espace (espace -mémoire si l’algorithme
fonctionne avec un ordinateur). On ne s’intéresse ici qu’au problème du temps.
On dit que l’algorithme est de complexité exponentielle si dans la définition précédente on
remplace f par g définie par g ( n ) = C.an avec des nombres a et C fixés (a vérifiant a > 1).
Certains auteurs s’autorisent à dire que la complexité d’un algorithme est exponentielle dès qu’il est prouvé
qu’elle n’est pas polynomiale. C’est sans importance pour la question P / NP.
4 ) Les problèmes concernés par la question P / NP sont appelés des problèmes de décision, .
Résoudre un tel problème signifie répondre à une question par oui ou non pour chaque donnée
fixée du problème. Voir les deux exemples qui suivent pour lesquels une donnée est un nombre
entier x de n chiffres (au plus).
On ne s’intéresse donc pas dans ce qui suit à des algorithmes qui génèrent un résultat numérique, du type
« addition » (qui est polynomial « en n »; et peu importe que la complexité obtenue soit 2n  3 ou 4n  5 , ce
n’est qu’un détail qui dépend du modèle mathématique de calcul, ou du langage de programmation informatique,
2
utilisé) , « multiplication » (polynomial « en n »)…
Exemple 1 : le problème simplet DIVISIBLE PAR 2.
Algorithme (vu en classe de sixième) : on lit le nombre x (ce qui fait n étapes au plus ) puis on
compare son dernier chiffre à 0, 2, 4, 6 et 8 (5 étapes au maximum). Cet algorithme est
polynomial de complexité 2 n + 5.
Contre-exemple 2 : le problème PREMIER.
1
Algorithme (vu en classe de seconde) : on divise x par tous les entiers y vérifiant 1  y 
x
.
Dans le pire des cas on doit effectuer ( Ent ( x )  1) divisions avant de savoir si x est
premier ( Ent signifiant partie entière). L’écriture de x comporte n chiffres donc x  10 n 1 et
Ent ( x )  Ent ( 10 n1 )  3n1 . Cet algorithme n’est pas polynomial car l’expression 3 n 1 a
la forme d’une exponentielle, qui l’emporte sur n’importe quel polynôme quand n devient
grand.
Raffiner cet algorithme en se limitant aux divisions de x par 2 puis par les nombres impairs (respectivement : par
3 puis par les non multiples de 3…etc) ne fait, en gros, que diviser le nombre de divisions par 2 (respectivement
par 3…etc) et ne rend pas l’algorithme polynomial (quel que soit l’entier p premier fixé, le nombre d’opérations à
n 1
effectuer, de l’ordre de 3 / 2.... p , est toujours un nombre « de forme exponentielle », en la variable n, c’est à
dire non majorable par un polynôme).
Les problèmes du type P
On dit qu’un problème de décision est du type P lorsqu’on connaît un algorithme polynomial
permettant de le résoudre (c’est à dire de déterminer si la réponse est oui ou non pour n’importe
quelle donnée).
Savoir si un problème est dans P est une question mathématique mais la notion de problème de
type P a été introduite par des informaticiens car en pratique, même avec les plus puissants
ordinateurs, on ne peut pas traiter les problèmes qui ne sont pas dans P dès que n est trop grand
à cause de la croissance très rapide des fonctions exponentielles.
Ce phénomène est parfois appelé « l’explosion combinatoire » : si un problème n’est pas dans P, les seuls
algorithmes disponibles pour le résoudre doivent envisager un trop grand nombre de cas si les données sont de
grande taille et même les meilleurs ordinateurs sont inefficaces. Voir le tableau page 10 de [1].
La question P / NP est a priori un problème théorique car en pratique il faudrait considérer un n très grand pour
3
n
qu’une complexité (exponentielle) en 10 .1.01 donne plus d’opérations qu’une complexité (polynomiale) en
10 3. n1000 .
Exemple 1 : on a vu que le problème DIVISIBLE PAR 2 est dans P.
Exemple 2 : Le problème PREMIER est aussi dans P mais l’algorithme le prouvant n’a été trouvé qu’en 2002 et il
est bien trop compliqué pour qu’il soit possible d’en parler ici . Cet algorithme est détaillé dans [2] mais il repose
sur des notions d’arithmétiques dépassant nettement le niveau du bac.
Les problèmes du type NP
Exemples 3 et 4 : pour une configuration (finie bien sur) « villesroutes » du type ci-contre, on considère les problèmes EULERIEN et
HAMILTONIEN qui correspondent respectivement aux énoncés : peut
on déterminer un parcours fermé qui passe une fois et une seule par
chaque route (par chaque ville)1 ?
On voit que pour une configuration un peu compliquée, répondre oui ou non à une de
ces deux questions est a priori difficile. Ces problèmes semblent, a priori, être de « complexité
exponentielle », au sens où, désignant par n la taille des données (on verra plus loin qu’on peut
considérer que n est le nombre de villes), on est sur de résoudre le problème en essayant tous
les trajets possibles, lesquels sont, si chaque ville est reliée à toutes les autres par une route qui
n’est pas à sens unique, au nombre de n ! / 2n  (n  1)! / 2 , par exemple avec 4 villes A, B, C et
D il y a a priori 4 ! = 24 parcours possibles mais ACBD =CBDA=BDAC=DACB, c’est le
même parcours, on peut diviser 4 ! par 4, puis on peut diviser par 2 (sens de parcours),
cependant qu’on prouve facilement, en terminale, par récurrence, que (n  1)! / 2  2 n dès que
n  8 . Le nombre d’opérations à effectuer est bien, dans le pire des cas, d’ordre exponentiel..
1
Ces exemples sont très concrets : le problème EULERIEN concerne les facteurs qui remplissent des boites aux
lettres situées sur des routes et le problème HAMILTONIEN concerne les représentants de commerce qui visitent
des magasins situés dans des villes.
2
En revanche, si on vous donne un parcours prouvant que la réponse est oui pour un des deux
problèmes, vérifier que ce parcours est correct, et donc que la réponse est oui, est un jeu
d’enfant (jeu d’enfant signifiant précisément que ça peut être fait par un algorithme travaillant
en temps polynomial, c’est à dire rapidement et sans difficulté)… On dit que ces deux
problèmes sont du type NP (ces initiales N et P sont expliquées au paragraphe suivant).
La définition ne stipule pas que quand la réponse est oui on sait effectivement déterminer un
parcours; on sait seulement prouver qu’il en existe un.
Une preuve permettant d’affirmer que la réponse est oui pour une donnée (c’est à dire une
configuration villes-routes) fixée est appelé un certificat de la réponse oui pour cette donnée.
Un parcours-solution peut évidemment faire office de certificat.
Il faut noter que la définition de NP ne dit rien des données pour lesquelles la réponse est non. Par ailleurs cette
définition ne dit pas que quand la réponse est oui on sait trouver un certificat de cette réponse oui : elle dit
seulement que si on vous donne un certificat, la vérification est facile et rapide.
Exemple 5 : le problème COMPOSE.
Ce problème est dit complémentaire du problème PREMIER car pour une donnée fixée (un entier), ils ont des
réponses oui / non opposées.
COMPOSE est évidemment dans NP : pour un entier x qui est composé, un certificat de la
réponse oui pour x est un diviseur d non trivial (c’est à dire autre que 1 et x ) de x et si on
vous donne d, la vérification est une simple division de x par d, elle se fait en temps
polynomial.
Exemple 6 : PREMIER aussi est dans NP mais on ne peut pas dire de façon convaincante en quelques lignes ce
qu’est un certificat pour une réponse oui.
Remarque : les problèmes COMPOSE et PREMIER sont dits inverses l’un de l’autre (ils échangent les réponses
oui et non). Lorsqu’on sait qu’un problème est dans P, il va de soi que son problème inverse y est aussi. Il n’y a
rien de tel avec NP car, contrairement à P, les réponses oui et non ne jouent pas un rôle symétrique dans la
définition de NP.
Conjecture de contre-exemple 7 : le problème K-VOYAGEUR DE COMMERCE.
Pour la donnée d’une configuration villes-routes, on suppose connues les distances entre les villes (sans
nécessairement que la distance considérée soit euclidienne : ces « poids » attribués aux routes peuvent représenter
des durées, penser à des routes de montagne, des coûts, etc…). On peut alors pour tout k positif poser le
problème :y a-t-il un unique plus court trajet fermé passant une fois et une seule par chaque ville et de longueur
égale à k ? Ce problème ne semble pas être dans NP; sa complexité semble être intrinsèquement exponentielle :
dans les pires cas, il peut être nécessaire d’étudier à peu près tous les parcours (qui ne sont pas en nombre
polynomial comme on l’a vu à l’exemple 4) pour pouvoir répondre oui.
La classe NP est très vaste : pour trouver des problèmes de décision dont on est sur qu’ils ne
sont pas dans NP, il faut considérer des problèmes compliqués du type jeu d’échecs généralisé
avec n cases sur chaque côté (au lieu de 8) et la question, pour une configuration de jeu
donnée, « les noirs ont ils une stratégie gagnante ? »
Signification des initiales N et P de NP
La suite est tout à fait lisible même si ce paragraphe n’est pas bien compris !
Pour comprendre la signification des initiales N et P il faut faire un effort d’imagination : un
« algorithme non déterministe2 » est un algorithme B dans lequel à chaque instruction on peut
lancer plusieurs nouvelles séries de calculs (d’instructions) en parallèle (penser à un
programme informatique qui à chaque instruction lancerait plusieurs sous-programmes; un tel
programme ne pourrait fonctionner pour une donnée de grande taille car les possibilités de
n’importe quel ordinateur finiraient par être dépassées !). Pour un problème de décision, la
(grosse !) différence avec un algorithme déterministe est qu’il y a plusieurs sorties possibles
On dit que B résout un problème en temps polynomial
§ avec la réponse oui si au moins une sortie (en temps polynomial) est oui.
§ avec la réponse non si toutes les sorties (en temps polynomial) sont non.
Le principe d’un algorithme non déterministe est d’essayer toutes les possibilités…en même
temps ! Pour les problèmes EULERIEN et HAMILTONIEN on part d’une ville et à chaque
C’est là qu’a lieu l’effort d’imagination car les termes « algorithme » et « non déterministe » semblent se
contredire !
2
3
carrefour on essaie toutes les directions proposées. Pour le problème COMPOSE, on utilise
l’algorithme de l’exemple 2 mais en effectuant tous les calculs en parallèle. Si pour une
donnée, la réponse est oui, alors une des possibilités (au moins une ) permet d’obtenir un
certificat. NP signifie « Non déterministe Polynomial ».
Une autre façon de comprendre l’expression « non déterministe » : pour prouver qu’un problème est dans NP,
pour une donnée de réponse oui, on n’a pas à déterminer (au sens de : trouver) une preuve de la réponse oui : on
doit seulement savoir vérifier que la réponse est oui à l’aide d’un certificat qu’on nous donne.
Lien entre les ensembles P et NP
On a vu que NP ne signifie pas « Non Polynomial ». Il n’y a pas d’opposition entre P et NP.
Reformulons les définitions de P et NP pour se persuader que P  NP :
Considérons un problème de décision. Si vous pouvez, pour n’importe quelle donnée, en temps
polynomial (en la taille n de cette donnée)
§ prouver que la réponse est oui ou non, le problème est dans P.
§ prouver, quand la réponse est oui, que la réponse est effectivement oui, à l’aide d’un certificat
qu’on vous donne, le problème est dans NP.
P  NP car {oui}  {oui, non} et l’ensemble vide peut être considéré comme un certificat.
Certains problèmes de NP sont donc dans P. Un des plus connus est le problème EULERIEN
de l’exemple 3 (passer une fois et une seule par chaque route). C’est facile à voir si on a suivi
la spécialité mathématiques en terminale ES, on traduit alors la question posée en termes de
graphes : une configuration villes-routes est un graphe dont les sommets sont les villes A, B,
C…, certains de ces sommets étant reliés par des arêtes, les routes) et il n’y a qu’à utiliser le
théorème suivant, théorème historique pour la théorie des graphes, qui donne une condition
assez simple pour permettre (en temps polynomial) de prouver qu’une configuration donne la
réponse oui ou non.
Théorème d’Euler : un graphe G admet un « cycle eulérien » (parcours fermé tel
que chaque arête est parcourue une fois et une seule) si et seulement si :
G est « connexe » (toute paire de sommets est reliée par une succession d’arêtes)
et si tous ses sommets sont de « degré » pair.
(C’est le cas ci-contre, tous les sommets sont de degré 2 ou 4. Intuitivement : il
faut pouvoir « quitter » un sommet chaque fois qu’on y « arrive » : il est évident
que la condition donnée est nécessaire).
0 1 0 0 0 1


1 0 1 0 1 1
0 1 0 1 1 1


 0 0 1 0 1 0
 0 1 1 1 0 1


 1 1 1 0 1 0
2
On peut noter que la définition d’un graphe à n sommets est en fait la donnée de n nombres alors qu’on
a dit à l’exemple 3 qu’on peut considérer qu’un tel graphe est une donnée de taille n . Ceci n’a aucune importance
2
dès qu’on ne s’intéresse qu’au caractère, polynomial ou non, des algorithmes : un polynôme en n est un
polynôme en n et un polynôme en n est majorable (en prenant la valeur absolue des coefficients et en remplaçant
n par n 2 ) par un polynôme en n 2 .
En effet, un graphe à n sommets peut être représenté par un tableau à n
lignes et n colonnes (on dit : une matrice n - n ) ne comportant3 que des
0 et des 1, voir ci-contre l’exemple du graphe G donné ci-dessus. On
détermine s’il contient un cycle eulérien en regardant si chaque ligne,
ou colonne, contient au moins un 1 (connexité) et si la somme de
chacune des n lignes est paire (degrés pairs). Il est évident que ces
( n  n 2 ) calculs peuvent être effectués en temps polynomial.
On vient de voir comment répondre, en temps polynomial, au problème EULERIEN. La preuve donnée
n’est pas constructive, c’est à dire qu’elle permet de dire si, oui ou non, un cycle eulérien existe mais sans
déterminer effectivement un tel cycle (détermination qui n’est pas évidente : en parcourant au hasard les arêtes du
graphe on peut être conduit à une impasse).
Pour étudier le contre-exemple 7, on remplacerait les 0 par des   et les 1 par les « poids » ( ou longueurs) des
arêtes. Noter par ailleurs que cette représentation « matricielle » montre que les problèmes relatifs aux graphes
peuvent être aisément informatisés : toute l’information relative à un graphe est contenue dans sa matrice.
3
4
Un algorithme de détermination d’un tel cycle existe (les représentants de commerce
l’appellent « marguerite », son principe est un tour « central », obtenu en se déplaçant
au hasard et en s’arrêtant dès qu’on retombe sur une ville déjà visitée, entouré de
pétales; quand on part de A vers B pour former un pétale, comme ci-contre, on est sur
de pouvoir revenir en A car le degré de A est pair ). On peut facilement montrer que
cette détermination a lieu en temps polynomial mais trouver un tel algorithme est un
« problème de recherche », hors-sujet dans le présent texte où il n’est question que de
problèmes de décision.
.Il n’existe aucun théorème du type de celui d’Euler pour les parcours hamiltoniens (à l’heure actuelle !).
Les seuls théorèmes connus sont des conditions suffisantes pour qu’un graphe soit hamiltonien (disant, en gros, et
c’est intuitivement compréhensible, qu’un graphe qui a « beaucoup » d’arêtes est hamiltonien).
On ne sait donc pas si HAMILTONIEN est dans P. HAMILTONIEN n’est pas « prouvé dans
P » parce qu’ « on ne comprend pas vraiment bien ce qu’est un graphe hamiltonien ».
On a vu que P  NP mais actuellement on ne sait pas si NP  P
et donc si P = NP. P  NP est l’opinion très majoritaire, mais pas
unanime, parmi les chercheurs4. Un institut américain propose un
million de dollars à qui résoudra ce problème : voir [3]. La
conjecture P  NP est souvent qualifiée de conjecture majeure de la
calculabilité ou de l’informatique théorique.
Les problèmes NP-complets
Certains problèmes de décision peuvent se ramener (se réduire) à d’autres.
On dit que le problème E, d’ensemble de données DE , se ramène au problème F, d’ensemble de données DF ,
lorsqu’on connaît une application r, de DE dans DF telle que pour toute donnée x de DE : la réponse est oui pour x
 la réponse est oui pour r (x ).
On voit que si pour tout x, r ( x ) peut être calculé en temps polynomial, F est dans P implique que E est dans P.
Autrement dit, E est plus facile à résoudre que F5, plus précisément : E n’est pas plus difficile à résoudre que F.
En 1971, l’Américain Stephen Cook découvrit une étonnante propriété d’un problème de la
classe NP, nommé SAT (qu’il serait trop long de décrire ici) : tous les problèmes de NP
peuvent se réduire en temps polynomial à SAT ! Il posa la définition : un tel problème est NPcomplet6.
Si on savait résoudre le problème SAT en temps polynomial, on prouverait du même coup que
tous les problème de NP sont dans P !
Il y a mieux : on découvrit peu à peu que des centaines de problèmes sont NP-complets. On en
connaît actuellement des milliers dans des domaines très variés des mathématiques ou de
l’informatique. HAMILTONIEN est un de ces problèmes. Le jeu actuellement si populaire du
Sudoku ou les problèmes d’emplois du temps des proviseurs en sont d’autres.
Voici deux autres exemples formalisés prouvant eux aussi que ces problèmes sont concrets :
Exemple 7 : le problème SAC A DOS : un randonneur capable de porter le poids S voudrait
emporter des objets de poids (entiers) x1, x2, …xn. Est ce qu’une somme de certains de ces
nombres vaut exactement S ?
n
n
Il y a a priori 2 sommes à essayer car on prouve facilement qu’il y a 2 parties dans un ensemble à n éléments :
n
 n  k nk
 .1 .1  1  1n . Or 2 n est une exponentielle. Cependant, si on vous donne un certificat de la réponse

k 0  k 
oui, vérifier qu’il convient est rapide !
Exemple 8 : la 3-COLORATION. Dans une entreprise, certains salariés se détestent au point
de ne pas pouvoir travailler efficacement dans le même bureau. Peut on loger tout le monde
dans trois bureaux ?
C’est une question de la spécialité math de la terminale ES : reprenant le graphe G à six
sommets donné plus haut, chaque salarié étant représenté par un sommet, une inimitié entre
deux salariés étant représentée par une arête entre les sommets correspondant, la question se
dont certains pensent que cette question est indécidable, c’est à dire qu’on ne peut pas lui donner de réponse.
au sens où toute donnée x de DE peut être traitée en temps polynomial par l’algorithme résolvant le problème F.
La réciproque n’est pas vraie car une donnée y de DF peut avoir plusieurs antécédents dans DE (ou aucun) par r .
6
Le Russe Léonid Lévin obtint une définition équivalente à la même époque mais on ne l’apprit que plus tard :
Internet n’existait pas et on était en pleine guerre froide.
4
5
5
traduit par : peut on colorer tous les sommets du graphe avec trois couleurs en respectant la
consigne : deux sommets reliés par une arête doivent être colorés différemment ? (la réponse
étant non à cause du « sous –graphe » BCEF qui montre qu’il faut au moins quatre bureaux de
couleurs différentes)
Contre –exemple 9 (conjecture) : PREMIER n’est pas NP-complet (sauf si P = NP). On savait depuis 1975 que
PREMIER est dans NP. Quand PREMIER a été déclaré dans P en 2002, ça a suscité de l’intérêt mais pas d’émoi
car il n’avait pas été conjecturé que PREMIER est NP-complet7.
Les problèmes NP-difficiles (ou NP-durs)
On parle ici d’une conséquence très concrète de la question P / NP.
Un problème (pas nécessairement de décision) C est NP- difficile (on dit parfois aussi NP-dur
ou NP-hard) si tout problème de la classe NP peut être réduit polynomialement à C. Noter que
la définition ne dit pas que C est dans NP. Noter aussi que dans la littérature sur Internet,
certains problèmes NP-difficiles sont parfois qualifiés de NP-complets (alors qu’il ne s’agit pas
de problèmes de décision).
Dans cette catégorie on trouve l’immense variété des très concrets problèmes d’optimisation.
Si vous voulez essayer de prouver que P = NP, et accessoirement empocher le million de
dollars offert par la fondation américaine évoquée ci-dessus, il vous « suffit » de prouver que
votre problème NP-complet favori est dans P. Plus concrètement, pour un informaticien ou un
ingénieur, savoir qu’un problème est NP- difficile signifie que les meilleurs algorithmes
(connus) de résolution de ce problème sont non polynomiaux; s’il tient à travailler en temps
polynomial parce que ses données sont d’assez grande taille, il ne peut (sauf en prouvant, à la
surprise générale, que P = NP !) s’intéresser qu’à des cas particuliers simplifiés de son
problème, en simplifiant l’énoncé (par exemple, 2-COLORATION est dans P) ou en réduisant
l’ensemble des données. Il peut aussi essayer de trouver des algorithmes de solution approchée
de son problème. Ces activités occupent évidemment bien plus de monde que la question
théorique « P = NP ? » !
Bibliographie
[1] Machines de Turing et complexité algorithmique (28 pages) – Olivier Hudry – ENS des télécommunications
(tout n’est pas facilement lisible !)
ftp://mse.univ-paris1.fr/pub/mse/cahiers2003/B03119.pdf
[2] Idée et fonctionnement de l’algorithme AKS – Julien ELIE – élève-ingénieur à l’Ecole centrale
http://www.trigofacile.com/maths/curiosite/primarite/aks/idee.htm (Idem!)
[3] Stephen Cook (Université de Toronto)- P contre NP. L’état du problème.
http://www.claymath.org/millennium/P_vs_NP/Official_Problem_Description.pdf
Texte passionnant (en anglais). Depuis son théorème de 1971, l’auteur a eu le temps de réfléchir à la question
posée…(Idem!)
[3’] http://www.claymath.org/millennium/P_vs_NP/ (sur le même site où on trouve par ailleurs six autres
problèmes, tous incompréhensibles !, à un million de dollars) (Idem!)
[4] L’étonnante question “P = NP?” J F Kentzel
http://pardailhan.entmip.fr/rubrique-des-disciplines/mathematiques/documents-enseignants/documentsenseignants-518.htm
Texte du même type que celui ci-dessus mais destiné à des enseignants, donc moins facile à lire a priori, et plus
détaillé, donc plus facile à lire pour certains points. La fin de l’annexe contient quelques dizaines de liens Internet,
SOUVENT PLUS LISIBLES QUE CEUX QUI PRECEDENT.
Cette absence d’émoi vient aussi du fait qu’on peut depuis 2002, grâce à trois chercheurs indiens, déclarer en
temps polynomial si un entier x est premier ou non, mais que ça n’implique pas, contrairement à ce qu’on a vu
pour le problème EULERIEN, qu’on peut en temps polynomial trouver un facteur de x si la réponse est non. Or
cette difficulté de trouver un facteur d’un grand nombre x non premier est la base de beaucoup de procédés de
cryptanalyse (codage des messages secrets).
7
6
Téléchargement