CONNEXION
  • RetourJeux
    • Sorties
    • Hit Parade
    • Les + populaires
    • Les + attendus
    • Soluces
    • Tous les Jeux
    • Gaming
  • RetourActu Gaming
    • News
    • Astuces
    • Tests
    • Previews
    • Toute l'actu gaming
  • RetourBons plans
    • Bons plans
    • Bons plans Smartphone
    • Bons plans Hardware
    • Bons plans Image et Son
    • Bons plans Amazon
    • Bons plans Cdiscount
    • Bons plans Decathlon
    • Bons plans Fnac
    • Tous les Bons plans
  • RetourJVTech
    • Actus High-Tech
    • Intelligence Artificielle
    • Smartphones
    • Mobilité urbaine
    • Hardware
    • Image et son
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTech
  • RetourCulture
    • Actus Culture
    • Culture
  • RetourVidéos
    • A la une
    • Gaming Live
    • Vidéos Tests
    • Vidéos Previews
    • Gameplay
    • Trailers
    • Chroniques
    • Replay Web TV
    • Toutes les vidéos
  • RetourForums
    • Hardware PC
    • PS5
    • Switch 2
    • Xbox Series
    • Switch
    • Pokemon pocket
    • FC 25 Ultimate Team
    • League of Legends
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • Switch 2
  • PS4
  • One
  • Switch
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Liste des sujets

Problème P = NP

JeanJean-Astuce
JeanJean-Astuce
Niveau 8
07 novembre 2014 à 11:53:30

Bonjour,
Je précise que je n'ai aucune compétence en informatique, donc je risque de sortir des inanités...
Pourriez-vous me dire si j'ai bien compris ou non le problème :
N = problème résolvable en temps polynomial par une machine déterministe, donc résolvable en un temps raisonnable par les machines du Turing - qui sont des machines déterministes c'est à dire qu'elles ne choisissent pas un chemin parmi d'autres pour résoudre un problème, mais bien un seul algorithme prédéfini..
NP = problème résolvable en temps polynomiale mais cette fois par des machines non-déterministes, c'est à dire des machines qui n'existent pas actuellement (j'ai un doute sur cette affirmation...), qui résolve un problème en choisissant l'algorithme prenant le moins de temps et d'espace parmi d'autres.

Donc l'ensemble P est inclus dans l'ensemble NP, mais on doit, pour prouver que P = NP, démontrer que NP est inclus dans P c'est à dire.

Ai-je bien compris...? :question:

(Merci à DingiDing de m'avoir fait découvrir ce problème :-) )

godrik
godrik
Niveau 30
07 novembre 2014 à 12:58:10

ouais c'est ca.

Precision: Les machines de Turing non deterministe executent TOUTES les branches en meme temps et s'arretent des qu'une des branches s'arrete. Naturellement, on a pas vraiment de machine non deterministe dans la vraie vie.

JeanJean-Astuce
JeanJean-Astuce
Niveau 8
07 novembre 2014 à 13:10:39

Merci Godrik.
Peut-être pourrais-tu m'éclairer sur un autre point : les machines non déterministes mais résolvant les problèmes en temps exponentielle cette fois existent-elle ?

Et une dernière demande de précision : N appartient à NP car on peut assimiler un problème N à un problème NP qui n'aurait qu'une "branche" ?

Lowenheim
Lowenheim
Niveau 10
07 novembre 2014 à 17:24:35

Si par "exister" tu veux dire que l'on peut en fabriquer dans la vraie vie, non, elles n'existent pas. Les machines de Turing non-déterministes sont un modèle de calcul abstrait, pour en simuler une en vrai comme l'a dit godrik il faudrait faire toutes les exécutions en parallèle, et ce n'est pas possible.

Par contre, il existe (au sens mathématique / abstrait de "existe") des machines de turing non-déterministes qui calculent en temps exponentiel. La classe de complexité correspondante s'appelle NEXP. D'ailleurs, la question de savoir si EXP = NEXP est ouverte également, au même titre que P = NP.

En fait, si le problème "P = NP" est si connu, c'est principalement parce que les algos polynomiaux sont ceux que l'on aime bien avoir en informatique, c'est là que les temps d'exécution sont le plus souvent "acceptables" à l'échelle humaine. Ca, et le fait qu'il soit parmi les "7 problèmes du millénaire" :)
Mais il y a plein d'autres classes de complexité, et plein de questions ouvertes sur leurs relations. Tu peux regarder cette page vite fait, elle référence la plupart (toutes ?) les classes intéressantes qui existent à l'heure actuelle.
https://complexityzoo.uwaterloo.ca/Complexity_Zoo

JeanJean-Astuce
JeanJean-Astuce
Niveau 8
07 novembre 2014 à 20:18:33

Lowenheim :
"Les machines de Turing non-déterministes sont un modèle de calcul abstrait, pour en simuler une en vrai comme l'a dit godrik il faudrait faire toutes les exécutions en parallèle, et ce n'est pas possible."
En soi, en mettant plusieurs machines de Turing déterministes en réseau, qui résoudraient ensemble un même problème avec des algorithmes différents (emprunteraient donc plusieurs "branches"), on obtiendrait ainsi une machine de Turing non-déterministe ?

Je me doute que la réalité est loin d'être aussi simple, mais je me demande en quoi mon hypothèse est fausse !

Lowenheim
Lowenheim
Niveau 10
07 novembre 2014 à 20:45:25

On parle un peu dans le vide là, le plus simple serait de regarder la définition formelle d'une machine de Turing déterministe et non-déterministe pour voir la différence.
C'est vraiment élémentaire comme truc, pas besoin d'avoir fait d'études avancées pour comprendre, surtout qu'il y a des moyens très basiques de réprésenter tout ça avec des dessins.
Tu peux regarder un peu ce bouquin par exemple si tu as pas peur de l'anglais : http://www.icsd.aegean.gr/kaporisa/index_files/sipser.pdf . Sinon, wikipedia devrait pas etre trop compliqué non plus.

Sinon, un autre caractérisation équivalente et peut être moins compliquée à concevoir de la classe NP :
Un problème est en NP si il existe une machine de Turing déterministe qui arrive à vérifier une solution en temps polynomial.
En gros, ta machine "devine" la solution au problème (c'est là que se cache le non-déterminisme), et ensuite elle la vérifie en temps polynomial.

C'est ce "devine" qu'on ne peut pas simuler dans la réalité : tout ce qu'on peut faire, c'est d'essayer toutes les possibilités en parallèle.

JeanJean-Astuce
JeanJean-Astuce
Niveau 8
07 novembre 2014 à 21:16:38

Merci pour le lien !

Justement c'est en me rendant sur la page wiki des Turings non déterministes (http://fr.wikipedia.org/wiki/Machine_de_Turing_no
n_d%C3%A9terministe)
que j'ai lu :
une machine de Turing non déterministe peut être simulée par une machine de Turing déterministe. Toutefois la complexité des calculs diffère
Du coup, néophyte que je suis, je ne comprend toujours pas en quoi une machine non-déterministe n'est pas possible à réaliser !

"Un problème est en NP si il existe une machine de Turing déterministe qui arrive à vérifier une solution en temps polynomial."
Tu voulais dire non déterministe ?

Lowenheim
Lowenheim
Niveau 10
07 novembre 2014 à 22:08:26

Non, c'est bien "déterministe", justement !

Calculer la solution de manière non-déterministe
<=> Savoir vérifier une solution de manière déterministe

"Vérifier" dans le sens où la machine prend en entrée un problème et sa solution, et doit répondre si "oui" ou "non" la solution est correcte.

Et oui en effet, on peut simuler une machine non-déterministe par une machine déterministe. En fait, la différence c'est qu'une machine non-déterministe peut lancer tout plein de calculs différents en même temps, et si l'un d'entre eux aboutit, elle s'arrête. La machine déterministe peut simuler ça en faisant tous les calculs l'un après l'autre, mais ça prend plus de temps.

Quand on disait qu'on ne pouvait pas faire de machine non-déterministe dans la réalité, c'est parce qu'on ne peut pas simuler le fait de faire tous les calculs en même temps. Mais on peut les faire l'un après l'autre.

godrik
godrik
Niveau 30
07 novembre 2014 à 22:23:50

Quelques commentaires:

"Et une dernière demande de précision : N appartient à NP car on peut assimiler un problème N à un problème NP qui n'aurait qu'une "branche" ?"

Les probleme de N ca n'existe pas, c'est P et NP :) Mais oui c'est pour ca que P \in NP

"Les machines de Turing non-déterministes sont un modèle de calcul abstrait, pour en simuler une en vrai comme l'a dit godrik il faudrait faire toutes les exécutions en parallèle, et ce n'est pas possible."
En vrai, il y a des gens qui ont essayer a base de reaction chimique de faire une genre de machine non deterministe. Mais ce n'est pas aller bien loin.

"En fait, si le problème "P = NP" est si connu, c'est principalement parce que les algos polynomiaux sont ceux que l'on aime bien avoir en informatique, c'est là que les temps d'exécution sont le plus souvent "acceptables" à l'échelle humaine"
Dans la vraie vie des que les algos sont plus que lineaire, les gens abandonne les implemetations sur des gros jeu de donne. De nos jours, les problemes "big data" on des taille en millions ou en milliard, donc un algo en n^3, c'est pas utilisable.

"Sinon, un autre caractérisation équivalente et peut être moins compliquée à concevoir de la classe NP : Un problème est en NP si il existe une machine de Turing déterministe qui arrive à vérifier une solution en temps polynomial."
Dans les trucs lie a ca, tu as le PCP theorem qui est assez interessant aussi.

DingiDing
DingiDing
Niveau 12
08 novembre 2014 à 01:36:57

Salut, ravi que le sujet te plaise ;o

Essaie de lire https://interstices.info/jcms/c_21832/p-np-un-probleme-a-un-million-de-dollars?hlText=p+np

JeanJean-Astuce
JeanJean-Astuce
Niveau 8
08 novembre 2014 à 02:32:54

Lowenheim : Ok j'avais pas saisi la nuance Calculer / Vérifier ! Merci. :)

Godrik : En soi, le PCP theorem permet, non pas de résoudre un problème NP avec une machine déterministe et en temps polynomiale, mais de contourner le problème P = NP en simplifiant la tâche de vérification d'une machine de Turing déterministe grâce à un PCP ?
Là encore j'ai peut-être mal formulé... D'ailleurs (on n'est plus vraiment dans la question du P = NP mais bon), je pense avoir mal saisi cette notion de vérification car il s'agit d'une vérification et non d'un calcul !
Le PCP theorem, qui est censé permettre la simplification d'une tâche qui normalement serait exécutée en temps exponentielle, ne permet en fait que la vérification de la solution ? Or cette tâche de vérification n'est normalement pas longue et est réalisable par une machine déterministe en temps polynomiale non ?
Donc en quoi cette technique permet de contourner P = NP (comme j'ai pu le lire) ? :question:

Dingiding : Merci pour ton lien ! :-))

Jean-Electron
Jean-Electron
Niveau 10
09 novembre 2014 à 09:03:07

Vous pensez que dans un futur proche (ou éloigné) on pourra utiliser l'ordinateur quantique pour résoudre ce problème puisque apparemment si on écoute ce qui se dit sur cette ordinateur, il pourrait être capable de simuler une machine non-déterministe ?

Jean-Electron
Jean-Electron
Niveau 10
09 novembre 2014 à 09:08:50

D'ailleurs c'est quoi l'intérêt d'une machine de Turing ? Ça ne ressemble même pas à un ordinateur ce bordel...

Lowenheim
Lowenheim
Niveau 10
09 novembre 2014 à 11:54:06

La problème P = NP est encore une fois un problème théorique qui parle de machines abstraites. Le fait de pouvoir ou non fabriquer des machines non-déterministes dans la vraie vie n'y change rien, et le fait d'avoir ou non des ordinateurs quantiques non-plus. C'est un problème mathématique qui se résout avec une démonstration, pas avec une avancée technologique.

Quand on parle d'ordinateurs quantiques, on parle d'autres classes de complexité : par exemple, BQP (Bounded Quantum Polynomial time) ou bien QMA (Quantum Merlin Arthur), et encore beaucoup d'autres.

Ce qu'on sait, c'est qu'il y a des problèmes telles que la factorisation d'entiers, que l'on ne sait pas résoudre en temps polynomial (déterministe), mais qu'on sait résoudre en temps polynomial sur un ordinateur quantique (avec l'algorithme de Shor). C'est à dire qu'on ne sait pas si le problème de factorisation d'entiers est dans P, mais on sait qu'il est dans BQP. De manière plus générale, on sait que P est inclus dans BQP.

Y'a un joli dessin sur wikipedia qui explique les relations supposées entre certaines classes :
http://upload.wikimedia.org/wikipedia/commons/1/1d/BQP_complexity_class_diagram.svg?uselang=fr
Mais les inclusions ne sont pas forcément strictes, par exemple si on a P=NP ça change totalement le dessin...

godrik
godrik
Niveau 30
09 novembre 2014 à 18:25:31

Jean-Electron, justement c'est ce qui est interessant dans la machine de turing. Bien qu'elle ne ressemble pas a un ordinateur tel qu'on les connait, elle n'est pas differente d'un ordinateur en terme de capacite de calcul. En supposant que ton ordinateur a une memoire infinie, ton ordinateur a exactement la meme puissance de calcul qu'une machine de turing (a un facteur polynomial pres).

Cette abstraction permet de repondre a des question comme: est ce qu'il y a des choses qui sont calculable avec machine A mais qui ne sont pas calculable avec machine B? Si tu peux montrer l'equivalence de A et de B a une machine de turing, alors tu as montrer que les machine ne sont pas fondamentalement differente: tu peux emuler l'une avec l'autre. On a pu montrer que certaines machines sont strictement moins puissante qu'une machine de turing.

Montrer ce genre de chose dans les annees 50 ce n'etait pas forcement gagne. C'etait une epoque ou plein de machine de calcul differente apparaissait. Pouvoir classer les machines entre turing equivalent et pas turing equilavent etait important. C'est d'autant plus interessant que l'on arrive a des machines quantiques qui a priori ne seront pas equivalente a des machines de turing et qui permettront donc de faire des choses fondamentalement differente.

Aussi les machines de turing sont la base de l'algorithmique. Tu ne peux reflechir a des algorithmes de facon abstraite que parceque tu sais les machines sur lesquelles tu vas implementer ces algorithms sont toutes turing equivalente. Du fait tu n'as pas besoin de construire des algorithmes pour chaque machine.

Finalement, la notion de machine de turing a permi d'extraire la classe de probleme NP-Complet. Ca nous donne une comprehension assez claire de pourquoi certains problemes peuvent etre resolu avec un algorithme polynomial alors que l'on arrive pas a en trouver pour certains autres probleme.

Bref la machine de turing n'a pas pour vocation a etre construite, mais a nous donner un modele theorique surlequel on peut reflechir a la resolution de certains probleme.

Lowenheim
Lowenheim
Niveau 10
09 novembre 2014 à 20:00:28

"des machines quantiques qui a priori ne seront pas equivalente a des machines de turing"

:d) Tu en es sur ? :( Il me semblait qu'en termes de calculabilité le fait de travailler sur des machines quantiques n'apportait rien. Je n'ai pas de source, donc je peux me tromper

godrik
godrik
Niveau 30
09 novembre 2014 à 20:16:22

a priori c'est non deterministe une machine quantique et ca peut manipuler simultanement une infinite d'etat quantique. Moralement c'est analogique comme truc. Apres, ce que je dis toujours au sujet des machines quantiques, c'est que j'attends dans avoir une sur laquelle je peux me logguer avant de me poser plus de question.

Jean-Electron
Jean-Electron
Niveau 10
10 novembre 2014 à 07:01:13

C'est vraiment chelou l'informatique théorique :malade:

JeanJean-Astuce
JeanJean-Astuce
Niveau 8
10 novembre 2014 à 14:41:29

Puisqu'il est question d'ordinateur quantique, je me demandais : l'ordinateur quantique pourrait résoudre des problèmes Exp et NP grâce à la fonction de superposition des états quantiques (les qubits) ?
D'après ce que j'ai pu lire : n qubits permettrait à l'ordinateur de lire 2^n états à la fois, contre un état parmi 2^n pour un ordinateur classique.
Avec 2 bits :
- Ordi classique : 00, 01, 10 ou 11
- Ordi quantique : Tous ces états à la fois.

En fait, l'ordinateur quantique donne la probabilité de chacun des résultats possibles pour lire l'information porté par le qubit ?

Lowenheim
Lowenheim
Niveau 10
10 novembre 2014 à 17:43:58

Oui c'est à peu près ça "l'idée intuitive" derrière la notion d'ordinateur quantique. Après, si on veut voir concrètement à quoi ressemble un algorithme quantique il faut faire un peu de méca Q et d'algèbre linéaire. Un qubit ce n'est pas exactement comme une distribution de probabilités.

Et niveau théorie de l'information également y'a pas mal de subtilités qui font que ce n'est pas aussi simple que "avoir tous les états à la fois". Lorsque tu mesures un qubit, tu le détruis, et il y a des propriétés (par exemple, le non-clonage) qui font que tu ne peux pas refaire ta mesure autant de fois que tu le veux.

On peut faire des algorithmes intelligents grâce aux ordinateurs quantiques, mais ce n'est pas immédiat, on n'a pas de façon directe de simuler une machine de Turing non-déterministe sur une machine quantique.

Sous forums
  • Astronomie
La vidéo du moment