đ 1. DĂ©finitions & Cadre d'Ă©tude
đ 1. DĂ©finitions & Cadre dâĂ©tude
Section titled âđ 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.
ModĂšles de calcul
Section titled âModĂšles de calculâ- 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 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 Ă .
- Langages semi-dĂ©cidables (ou rĂ©cursivement Ă©numĂ©rables) : Un langage est semi-dĂ©cidable sâil existe une MT qui sâarrĂȘte et accepte si , mais peut boucler indĂ©finiment si .
Classes de complexité temporelle
Section titled âClasses de complexitĂ© temporelleâSoit une fonction mesurable.
- : La classe des langages décidables par une MT déterministe en temps .
- (ou ) : . Ensemble des problÚmes décidables en temps polynomial par une machine déterministe.
- : 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.
- : Un langage est -complet sâil est dans et si tout langage de se rĂ©duit en temps polynomial Ă (-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 est indĂ©cidable.
DĂ©monstration par lâabsurde (Diagonalisation de Turing) : Supposons par lâabsurde quâil existe une MT dĂ©cidable qui prend en entrĂ©e et renvoie âAccepteâ si sâarrĂȘte sur , et âRefuseâ sinon.
Construisons une nouvelle MT qui prend en entrĂ©e le code dâune MT :
- simule sur lâentrĂ©e .
- Si accepte, entre dans une boucle infinie.
- Si refuse, sâarrĂȘte (et accepte).
Analysons le comportement de lorsquâon lui fournit sa propre description :
- Si sâarrĂȘte sur , alors renvoie âAccepteâ sur . Par construction, entre alors en boucle infinie. Contradiction.
- Si ne sâarrĂȘte pas sur , alors renvoie âRefuseâ. Par construction, sâarrĂȘte. Contradiction.
LâhypothĂšse selon laquelle existe est donc fausse. est indĂ©cidable.
ThéorÚme de Cook-Levin
Section titled âThĂ©orĂšme de Cook-Levinâ- ĂnoncĂ© : Le problĂšme (satisfiabilitĂ© dâune formule logique propositionnelle) est -complet. Câest la pierre angulaire de la thĂ©orie de la complexitĂ©.
đĄ 3. MĂ©thodes de calcul & Algorithmes
Section titled âđĄ 3. MĂ©thodes de calcul & AlgorithmesâRĂ©duction polynomiale
Section titled âRĂ©duction polynomialeâPour prouver quâun problĂšme est -difficile :
- On choisit un problĂšme connu pour ĂȘtre -complet (ex: , , ).
- On construit une fonction calculable en temps polynomial () telle que pour tout mot :
- On démontre la correction de la réduction (équivalence) et sa complexité polynomiale.
Arbres de décision et bornes inférieures
Section titled âArbres de dĂ©cision et bornes infĂ©rieuresâ- Pour prouver quâun problĂšme (comme le tri par comparaison) requiert opĂ©rations dans le pire des cas, on modĂ©lise lâalgorithme par un arbre de dĂ©cision.
- Si un problĂšme admet outputs possibles valides, lâarbre de dĂ©cision binaire associĂ© doit avoir au moins feuilles, ce qui implique une hauteur minimale de .
â ïž 4. PiĂšges classiques aux Concours
Section titled ââ ïž 4. PiĂšges classiques aux Concoursâ- 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 ou est dĂ©cidable, mais impraticable en temps/espace. Ne dites jamais quâun problĂšme indĂ©cidable est âen temps exponentielâ.
- Erreur classique dans les rĂ©ductions : Pour montrer , il faut rĂ©duire un problĂšme connu -difficile vers le nouveau problĂšme . Faire lâinverse (rĂ©duire vers ) prouve seulement que est plus facile (ou Ă©quivalent), mais ne montre en rien la -difficultĂ© de .
- Le piĂšge du complĂ©mentaire : Si un langage est dans , son complĂ©mentaire nâest pas nĂ©cessairement dans (il est dans ). Ăvitez dâaffirmer hĂątivement lâĂ©galitĂ© , qui reste lâun des plus grands problĂšmes ouverts en informatique thĂ©orique.
- Attention Ă la dĂ©finition de : 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.