On
trouvera ici un cours et des programmes de simulation en Maple
sur les machines de Turing et les fonctions récursives.
TELECHARGER ! ----- PAGE SUIVANTE ----- RETOUR A LA PAGE PRINCIPALE
01 PREAMBULE
J’avais créé, en 1988 à l’E.N.T.P.E., un
cours optionnel de mathématiques, intitulé assez rébarbativement je l’avoue,
" Algorithmique théorique et Calculabilité effective " (publié sous le même titre,
chez Eyrolles, en 1989) .
Ce cours traitait dans un premier temps, des
fondements logiques de l’informatique, par l’intermédiaire des machines de
Turing et des fonctions récursives (incluant une approche des fonctions
universelles et du problème de l’arrêt). Il abordait dans une
deuxième partie, la thèse de Church et les problèmes de complexité
des algorithmes (problèmes NP-complets, théorème de Cook et NP
¹ P).
Bien qu’assez abstrait, ce cours fut bien
reçu par les étudiants qui y virent une approche différente de l’informatique,
loin des connotations de rendement, de technologie et d’utilitarisme qu’elle
draine parfois. C’était mon but.
De mon côté, je me rappelle que pour
" vendre " cette option, c’est à dire, pour attirer le plus
grand nombre possible d’étudiants à ce cours optionnel (!), j’avais recours à
la métaphore suivante. Je comparai l’informatique à la conduite automobile. On
peut ainsi " se servir d’un ordinateur " (traitement de
texte, tableur, ...) sans rien connaître de son fonctionnement, de même qu’on
peut conduire une voiture sans aucune notion de mécanique; c’est le niveau
zéro. (Rien de péjoratif à cette appellation car c’est en fait la destination
des ordinateurs et des automobiles que de pouvoir être utilisés facilement et
sans formation préalable longue). Un niveau un peu supérieur consiste, en ce
qui concerne l’automobile, à savoir changer une roue, mettre de l’huile dans le
moteur, changer des plaquettes de freins éventuellement, c’est à dire, en
informatique, sauver un fichier, créer des dossiers et des raccourcis sous
Windows ou écrire un petit programme .bat sous DOS. Le niveau qui semble être
le sommet est alors celui de la programmation et du développement de logiciels
d’un côté et de la réparation complète d’un moteur ou d’une carrosserie de
l’autre. Mais il est néanmoins un niveau de perception différent de
l’automobile comme de l’informatique, qui se traduit pour l’automobile, par la
connaissance des notions de thermodynamique, de mécanique et de mécanique des
fluides entre autres, permettant la compréhension théorique du moteur à
explosion, de la solidité d’un châssis ou de l’aérodynamisme d’une carrosserie.
C’est à ce niveau là que ce situait, en informatique, le cours que je
développai. (On peut remarquer d’ailleurs que tous ces niveaux de compréhension
ne s’impliquent pas les uns les autres, ce qui conduit parfois à des situations
risibles. Il existe ainsi sans aucun doute, des thermodynamiciens éminents
incapables de remplacer une bougie dans un moteur ou, par exemple, à l’inverse
et dans l’autre domaine considéré, des programmeurs experts n’ayant aucune idée
de ce que peut représenter le théorème de Gödel).
Cette parenthèse fermée, je reviens à
l’historique de mon cours.
En 1995, sous diverses pressions mal
identifiées, je fus obligé de suspendre cet enseignement jugé avant tout trop
théorique. Le calcul formel faisant son apparition dans les classes
préparatoires (avec Maple surtout et Mathématica un peu), on me demanda de
mettre au point un nouveau cours optionnel de mathématiques, dont l’intitulé
pourrait être " Calcul formel : Maple " mais dont le
contenu n’était pas précisément délimité pourvu que l’outil Maple fût employé.
Ce qui fut fait.
J’assure donc actuellement à l’E.N.T.P.E.,
parmi d’autres enseignements, un cours de mathématiques optionnel effectivement
intitulé " Calcul formel : Maple ".
Pratiquement, deux objectifs sont visés.
D’abord une maîtrise avancée de l’outil Maple, tant au niveau de la
connaissance précise des si nombreuses primitives du langage, de sa structure
et de sa syntaxe, qu’au niveau de l’exploitation du logiciel, avec par exemple,
la création de packages, l’exploitation de routines en langage C ou
l’interconnexion avec un logiciel de Calcul comme Mathlab. Ensuite et c’est la
partie libre du cahier des charges, je développe avec Maple, l’étude
d’algorithmes complexes, la résolution de problèmes de mathématiques de tous
ordres et ... les fondements théoriques de l’informatique avec l’étude des machines
de Turing et des fonctions récursives. Il va de soi que les deux
objectifs se complètent.
J’ai donc entre autres, en reprenant le
formalisme de mon cours de 1988, réalisé une simulation complète et avancée avec
Maple, des machines de Turing et des fonctions récursives. Les machines
de Turing " fonctionnent " en temps réel (on visualise
par des animations, le déplacement de la tête sur le ruban,
avec gestion de la mémoire) et peuvent être assemblées en systèmes complexes.
On peut alors constater comment les fonctions récursives sont Turing-calculables
et réciproquement (ce qui est un des grands résultats de la théorie).
Maple étant maintenant passé dans les moeurs
des classes préparatoires et les programmes d’informatique de certaines d’entre
elles incluant des notions d’informatique assez théoriques (automates et
langages, arbres, ...), j’ai pensé que la mise à disposition du formalisme des machines
de Turing et des fonctions récursives (définitions, théorèmes et
démonstrations) ainsi que les fichiers Maple réalisant les simulations
correspondantes intéresseraient certains. Il s’agit là finalement, d’un bon
entrainement à la programmation Maple, joint à l’étude de concepts de base non
triviaux de l’informatique.
Le cours est composé pour l’instant de
fichiers au format Word et sera bientôt sous TEX.
Les programmes Maple sont exploitables par
tous, pourvu que leur origine soit citée, mais peuvent surtout être modifiés et
optimisés. Que les auteurs d’améliorations d’une quelconque procédure ou de
prolongements divers n’hésitent pas à me contacter et me pardonnent mes
maladresses et mes erreurs.
Amusez-vous bien !
TELECHARGER ! ----- DEBUT DE PAGE ----- PAGE SUIVANTE ----- RETOUR A LA PAGE PRINCIPALE