Retour au cours

Leçon 57 : Introduction aux Classes de Complexité : P vs. NP

Algorithmes : De Zéro à Héro (Un Guide pour Débutants)

57. Introduction aux Classes de Complexité : P vs. NP

Les classes de complexité catégorisent les problèmes computationnels en fonction des ressources nécessaires pour les résoudre. Ceci est crucial pour comprendre les limites de la computation.

Classe P (Temps Polynomial)

P signifie 'Polynomial time' (temps polynomial). Cette classe comprend tous les problèmes de décision (problèmes avec une réponse oui/non) qui peuvent être résolus par une machine de Turing déterministe (c'est-à-dire un ordinateur standard) en temps polynomial, c'est-à-dire O(N^k) pour une constante k.

  • Exemples : Tri, recherche, recherche du MST.

Classe NP (Temps Polynomial Non Déterministe)

NP comprend tous les problèmes de décision dont la solution peut être vérifiée en temps polynomial. Remarque : NP ne signifie PAS 'Non-Polynomial'.

  • Si quelqu'un vous présente une solution potentielle à un problème NP, vous pouvez rapidement vérifier si elle est correcte.
  • Exemple : Le Problème du Voyageur de Commerce (TSP). Trouver l'itinéraire le plus court est difficile, mais vérifier qu'un itinéraire proposé est plus court que X est facile.

Le Problème P vs. NP (La Question à Un Million de Dollars)

Est-ce que P = NP ? Est-ce que tout problème dont la solution est rapide à vérifier est également rapide à résoudre ? La plupart des informaticiens croient que P ≠ NP, mais cela reste non prouvé. Les problèmes NP-Complete sont les problèmes les « plus difficiles » de NP.