SYNTHESE INDIVIDUELLE DE TPE
TPE sur l’intelligence artificielle (septembre 2011- mars 2012)
Elèves : FRANCESCHINO Lucas, VICARIO Pierre et REYNE Mickaël
Synthèse de FRANCESCHINO Lucas
Lycée Georges Pompidou 1ère S 2
Dès la première séance de TPE, au début de cette année scolaire, j’ai voulu choisir un thème
en lien avec l’informatique, sujet qui me passionne. J’ai donc été rapidement attiré par l’une des
thématiques que propose l’éducation nationale qui est « Les réalisations techniques face aux défis du
XXIème siècle ». Dans un premier temps, j’ai d’abord pensé à la cryptographie qui occupait une place
de choix dans le sous-thème « Technologie de l’information, stockage et transport », car intervenant à
tout niveau dans le stockage et le transport de l’information. C’était aussi l’occasion d’étudier et de
réaliser des algorithmes en lien avec la cryptographie. Seulement, après discussion avec les membres
du TPE, nous avons décidé de nous diriger vers un autre sous-thème, à savoir l’intelligence artificielle.
Ce sujet me paraissait aussi très intéressant, une fois encore par son aspect technique : les
algorithmes utilisés sont très novateurs et attrayants, notamment les algorithmes génétiques. En outre,
en faisant un TPE dans ce domaine, nous avons pu croiser plusieurs disciplines : les mathématiques
en ce qui concerne les algorithmes et les calculs, la physique, en abordant le fascinant sujet de la
mécanique quantique par exemple, et même un soupçon de SVT en étudiant les algorithmes
génétiques !
Nous avons tout d’abord voulu choisir la problématique « Comment l’intelligence artificielle peut
être utile au quotidien ? ». Je trouvais cette problématique trop large, surtout par rapport à l’aspect du
TPE qui suscitait, de mon point de vue, le plus d’intérêt, à savoir la technique, les algorithmes
utilisés. Nous avons donc fait le choix d’une problématique bien plus ciblée : « Quels sont les moyens
techniques mis à contribution pour l’intelligence artificielle dans le passé, le présent et le futur ? ».
Après une documentation approfondie, nous avons opté pour établir un plan en deux parties :
l’évolution de l’IA au fil du temps et l’aspect technique de l’intelligence artificielle. Très attiré par cette
dernière partie, je l’ai personnellement organisée et rédigée. Je me suis aussi chargé de la réalisation
et de l’explication des deux algorithmes étudiés, c’est-à-dire l’algorithme génétique et l’algorithme de
recherche de chemin, A*. J’ai aussi voulu implémenté un algorithme « min-max », utilisé dans les
jeux de stratégie, mais j’ai finalement préféré ne pas le réaliser pour soigner davantage les deux
autres implémentations. La partie qui a été, pour moi, la plus difficile, mais aussi, la plus intéressante,
est celle sur les calculateurs quantiques. J’ai d’ailleurs voulu implanter l’algorithme quantique de Shor
en python (il existe un module « pyQuante » permettant de simuler un ordinateur quantique), mais j’
ai été confronté à de trop nombreuses difficultés, de compréhension notamment : l’informatique
quantique fait appel à des notions avancées de mécanique quantique ou de mathématique qu’il aurait
fallu que je comprenne non pas globalement mais justement très techniquement, ce qui m’a paru
quasi-impossible avec la documentation et le temps dont je disposais. La partie sur la puissance
matérielle des ordinateurs n’a pas posé de problèmes particuliers mais s’est révélée être surprenante,
en partie par la quantité incroyable de ressources matérielles qu’a nécessité Watson, l’intelligence
artificielle d’IBM qui a participé à un jeu télévisé.
Pour la réalisation d’un algorithme de recherche de chemin, j’ai d’abord essayé d’en réaliser
un en JavaScript, mais j’étais confronté à divers problèmes : l’algorithme était lent, et parfois il ne
trouvait aucun chemin. J’ai donc décidé de m’orienter vers quelque chose de plus conventionnel, soit
l’algorithme A*. Après avoir relu (j’avais déjà, par le passé, implémenté cet algorithme dans un jeu
de ma conception de type « Tower Defense ») quelques explications à ce sujet, j’ai écrit un
programme en HTML et JavaScript le mettant en scène, au travers d’une carte sur laquelle l’utilisateur