Skip to content

📌 1. DĂ©finitions & Cadre d'Ă©tude

Le chapitre de calculabilitĂ© et complexitĂ© formalise la notion intuitive de “problĂšme soluble par ordinateur” et classifie ces problĂšmes selon les ressources nĂ©cessaires (temps, espace) pour les rĂ©soudre.

  • Machine de Turing (MT) : ModĂšle standard de rĂ©fĂ©rence. Un ruban infini, une tĂȘte de lecture/Ă©criture, et un nombre fini d’états. Une fonction est dite itĂ©rable ou calculable (au sens de Turing) s’il existe une machine de Turing qui s’arrĂȘte en donnant le rĂ©sultat attendu pour toute entrĂ©e valide.
  • Langages dĂ©cidables : Un sous-ensemble L⊆Σ∗L \subseteq \Sigma^* est dĂ©cidable (ou rĂ©cursif) s’il existe une machine de Turing qui s’arrĂȘte sur toutes les entrĂ©es en dĂ©cidant si le mot appartient ou non Ă  LL.
  • Langages semi-dĂ©cidables (ou rĂ©cursivement Ă©numĂ©rables) : Un langage LL est semi-dĂ©cidable s’il existe une MT qui s’arrĂȘte et accepte si w∈Lw \in L, mais peut boucler indĂ©finiment si w∉Lw \notin L.

Soit t:N→Nt : \mathbb{N} \to \mathbb{N} une fonction mesurable.

  • DTIME(t(n))\text{DTIME}(t(n)) : La classe des langages dĂ©cidables par une MT dĂ©terministe en temps O(t(n))O(t(n)).
  • P\text{P} (ou PTIME\text{PTIME}) : ⋃k∈NDTIME(nk)\bigcup_{k \in \mathbb{N}} \text{DTIME}(n^k). Ensemble des problĂšmes dĂ©cidables en temps polynomial par une machine dĂ©terministe.
  • NP\text{NP} : Ensemble des problĂšmes dĂ©cidables par une MT non dĂ©terministe en temps polynomial, ou de maniĂšre Ă©quivalente, dont les solutions peuvent ĂȘtre vĂ©rifiĂ©es en temps polynomial par une MT dĂ©terministe.
  • NP-compleˊtude\text{NP-complĂ©tude} : Un langage LL est NP\text{NP}-complet s’il est dans NP\text{NP} et si tout langage de NP\text{NP} se rĂ©duit en temps polynomial Ă  LL (LL-difficile).

📐 2. ThĂ©orĂšmes fondamentaux & DĂ©monstrations clĂ©s

Section titled “📐 2. ThĂ©orĂšmes fondamentaux & DĂ©monstrations clĂ©s”

IndĂ©cidabilitĂ© du problĂšme de l’arrĂȘt (Halting Problem)

Section titled “IndĂ©cidabilitĂ© du problĂšme de l’arrĂȘt (Halting Problem)”

ThĂ©orĂšme : Le langage HATM={⟹M,wâŸ©âˆŁM est une MT qui s’arreˆte sur l’entree w}H_{ATM} = \{ \langle M, w \rangle \mid M \text{ est une MT qui s'arrĂȘte sur l'entree } w \} est indĂ©cidable.

DĂ©monstration par l’absurde (Diagonalisation de Turing) : Supposons par l’absurde qu’il existe une MT dĂ©cidable HH qui prend en entrĂ©e ⟹M,w⟩\langle M, w \rangle et renvoie “Accepte” si MM s’arrĂȘte sur ww, et “Refuse” sinon.

Construisons une nouvelle MT DD qui prend en entrĂ©e le code d’une MT ⟹M⟩\langle M \rangle :

  1. DD simule HH sur l’entrĂ©e ⟹M,⟹M⟩⟩\langle M, \langle M \rangle \rangle.
  2. Si HH accepte, DD entre dans une boucle infinie.
  3. Si HH refuse, DD s’arrĂȘte (et accepte).

Analysons le comportement de DD lorsqu’on lui fournit sa propre description ⟹D⟩\langle D \rangle :

  • Si DD s’arrĂȘte sur ⟹D⟩\langle D \rangle, alors HH renvoie “Accepte” sur ⟹D,⟹D⟩⟩\langle D, \langle D \rangle \rangle. Par construction, DD entre alors en boucle infinie. Contradiction.
  • Si DD ne s’arrĂȘte pas sur ⟹D⟩\langle D \rangle, alors HH renvoie “Refuse”. Par construction, DD s’arrĂȘte. Contradiction.

L’hypothĂšse selon laquelle HH existe est donc fausse. HATMH_{ATM} est indĂ©cidable. ■\blacksquare

  • ÉnoncĂ© : Le problĂšme SAT\text{SAT} (satisfiabilitĂ© d’une formule logique propositionnelle) est NP\text{NP}-complet. C’est la pierre angulaire de la thĂ©orie de la complexitĂ©.

Pour prouver qu’un problùme BB est NP\text{NP}-difficile :

  1. On choisit un problĂšme AA connu pour ĂȘtre NP\text{NP}-complet (ex: SAT\text{SAT}, 3-SAT\text{3-SAT}, CLIQUE\text{CLIQUE}).
  2. On construit une fonction ff calculable en temps polynomial (FP\text{FP}) telle que pour tout mot ww : w∈A  âŸș  f(w)∈Bw \in A \iff f(w) \in B
  3. On démontre la correction de la réduction (équivalence) et sa complexité polynomiale.
  • Pour prouver qu’un problĂšme (comme le tri par comparaison) requiert Ω(nlog⁥n)\Omega(n \log n) opĂ©rations dans le pire des cas, on modĂ©lise l’algorithme par un arbre de dĂ©cision.
  • Si un problĂšme admet NN outputs possibles valides, l’arbre de dĂ©cision binaire associĂ© doit avoir au moins NN feuilles, ce qui implique une hauteur minimale de log⁥2(N)\log_2(N).

  1. Confondre indĂ©cidabilitĂ© et complexitĂ© Ă©levĂ©e : Un problĂšme indĂ©cidable (ex: problĂšme de l’arrĂȘt) ne peut jamais ĂȘtre rĂ©solu par un algorithme qui se termine toujours. Un problĂšme EXPSPACE\text{EXPSPACE} ou 2-EXPTIME\text{2-EXPTIME} est dĂ©cidable, mais impraticable en temps/espace. Ne dites jamais qu’un problĂšme indĂ©cidable est “en temps exponentiel”.
  2. Erreur classique dans les rĂ©ductions NP\text{NP} : Pour montrer A≀pBA \le_p B, il faut rĂ©duire un problĂšme connu NP\text{NP}-difficile AA vers le nouveau problĂšme BB. Faire l’inverse (rĂ©duire BB vers AA) prouve seulement que BB est plus facile (ou Ă©quivalent), mais ne montre en rien la NP\text{NP}-difficultĂ© de BB.
  3. Le piĂšge du complĂ©mentaire : Si un langage LL est dans NP\text{NP}, son complĂ©mentaire L‟\overline{L} n’est pas nĂ©cessairement dans NP\text{NP} (il est dans co-NP\text{co-NP}). Évitez d’affirmer hĂątivement l’égalitĂ© NP=co-NP\text{NP} = \text{co-NP}, qui reste l’un des plus grands problĂšmes ouverts en informatique thĂ©orique.
  4. Attention Ă  la dĂ©finition de P=NP\text{P} = \text{NP} : En entretien ou Ă  l’écrit, rappelez rigoureusement que la question est de savoir s’il existe un algorithme dĂ©terministe polynomial pour des problĂšmes de vĂ©rification, et non de prouver qu’aucun algorithme exponentiel n’existe.