Ce cours s’intéresse à deux notions essentielles en informatique:
- la calculabilité qui est la capacité à résoudre un problème étant données des régles de calcul
- la complexité qui mesure les ressources (temps et mémoire) nécessaires pour résoudre un problème
Supports de cours
- Machines de Turing
- Machines de Turing universelles, thèse de Church-Turing
- Indécidabilité
- Réduction, théorème de Rice
- Complexité: P, NP, EXPTIME
- Réduction polynomiale, NP-complétude
- Complexité en espace: PSPACE
- Introduction au calcul quantique
Supports de TD
Ressources supplémentaires
Les fichiers ci-dessous peuvent être utilisés dans le simulateur en ligne https://turingmachinesimulator.com.
- Machine de Turing pour (01)* (cours #1). Cette machine de Turing décide si le mot d’entrée est dans le langage (01)*.
- Machine de Turing pour PAL (cours #1). La machine de Turing décrite dans ce fichier décide si le mot d’entrée est un mot palindrome sur {0,1}. Le mot d’entrée doit débuter par le symbole spécial $ qui n’est pas considéré comme faisant partie du mot.