J'ai récemment adapté ce petit billet en vidéo avec mes comparses de Big Bang Science, en version un peu simplifiée. N'hésitez pas à me dire ce que vous en pensez, ça me permettra de corriger certaines problèmes et d'adapter le niveau de vulgarisation pour d'éventuelles autres vidéos :)
Algorithme : ce mot ne cache rien de bien méchant : un algorithme est simplement une suite d'instructions permettant de faire quelque-chose. Une recette de cuisine, par exemple, est un algorithme : une suite d'opérations simples permettant de passer des ingrédients à un plat préparé.
Des ingrédients aux crêpes, images honteusement chipées sur le blog de hoptoys |
Pour faire des crêpes, il suffit de suivre les instructions dans l'ordre. Les recettes sont des algorithmes destinés aux humains et sont donc écrites dans un langage compréhensible par des humains. Comme on suppose que les humains sont raisonnablement intelligents, il y a plein de choses qu'on n'a pas besoin de préciser dans la recette, par exemple qu' il faut retirer la coquille des œufs ou ne pas utiliser du lait de raton-laveur. En plus, l'algorithme de la recette des crêpes est très simple car il n'y a qu'un seul choix possible à chaque étape. Pour aborder cette notion de choix, nous allons considérer un autre algorithme : celui qui permet de déterminer si on peut faire des crêpes ou non, en fonction de ce qu'il y a dans le frigo et les placards.
Les conditions dans les algorithmes
Avant de se lancer dans la confection des crêpes, on vérifie d'ordinaire qu'on a bien tout ce qu'il faut. C'est quelque-chose de facile pour un humain, mais supposons que tu aies la chance d'avoir un robot pour t'aider en cuisine. Pour s'assurer qu'il dispose de suffisamment d'ingrédients, voici un des algorithmes qu'il pourrait utiliser, sachant qu'il lui faudra des œufs, du lait, de la farine, du sucre et du beurre. Dans ce schéma, le robot va vérifier une à une toutes les conditions nécessaires au bon déroulement de la préparation des crêpes. Les questions qu'il doit se poser sont affichées dans des losanges et les instructions dans des rectangles. À chaque étape, en fonction des réponses, les instructions peuvent changer :Les algorithmes en langage informatique
Aujourd'hui, toutes les machines avec des composants électroniques ont recours à des algorithmes, qui peuvent être plus ou moins compliqués. Ces algorithmes sont généralement conçus par des humains, qui réalisent des schémas qui ressemblent à ceux que nous avons vus précédemment. Pour être compris par des machines, ces schémas doivent être traduits en langage informatique. Considérons par exemple un algorithme très simple, toujours dans la cuisine : celui qui permet au four de maintenir la bonne température. Voici à quoi il pourrait ressembler (dans une version très simple) :étape 1 Lire et Mémoriser Tu
étape 2 Mesurer Tf
Si Tf est inférieure à Tu : chauffer fortement le four pendant un temps t = 60 secondes puis revenir à l'étape 2
Si Tf est égale à Tu : chauffer modérément le four pendant un temps t = 60 secondes puis revenir à l'étape 2
Si Tf est supérieure à Tu : interrompre le chauffage pendant un temps t = 60 secondes puis revenir à l'étape 2
Enfin, pour traduire cela en langage informatique, on simplifie au maximum les phrases en utilisant un vocabulaire très basique qui correspond à des opérations élémentaires déjà connues par la machine. Les mots en verts sont des fonctions : des instructions qui lancent une action ou un autre algorithme, défini ailleurs. Dans l'algorithme ci-dessous par exemple, la fonction compteur effectue un compte à rebours à partir de la valeur t.
Algorithme bonne température
Début
étape 1 Lire Tu
étape 2 Lire Tf
t = 60
Si Tf inférieur à Tu
Alors
exécuter compteur (t)
tant que t supérieur à 0
exécuter chauffage fort
fin tant que
aller à étape 2
fin Si
Si Tf = Tu
Alors
exécuter compteur (t)
tant que t supérieur à 0
exécuter chauffage doux
fin tant que
aller à étape 2
fin Si
Sinon
exécuter compteur (t)
tant que t supérieur à 0
exécuter chauffage stop
fin tant que
aller à étape 2
fin Si
fin
Les algorithmes dans la vie quotidienne
Tu t'en doutes, la grande majorité des algorithmes sont beaucoup plus compliqués que cela ! Mais ce qui est cool, pour les gens qui les inventent, c'est qu'ils sont tous écrits avec un vocabulaire simple et restreint, même lorsqu'ils sont dérivés de théories mathématiques assez pointues. C'est le cas par exemple de l'algorithme de Dijkstra, qui sert à trouver un chemin optimal dans les applications GPS. On retrouve les algorithmes, avec leur double mathématique maléfique, un peu partout aujourd'hui. Tous les programmes installés sur ton ordinateur utilisent des algorithmes. Les moteurs de recherche, la confidentialité des transactions en ligne, la gestion des bonus dans Candy Crush et celle des stocks d'Ikea dépendent d'algorithmes. Leur qualité dépend essentiellement du temps qu'ils mettent pour résoudre un problème et fournir un résultat correct ainsi que des ressources qu'ils vont utiliser sur les ordinateurs. Des gens sont payés très chers pour trouver les algorithmes les plus performants, ceux qui iront le plus vite et qui nécessiteront le moins de mémoire. On arrive alors à des résultats spectaculaires, comme l'algorithme ci-dessous, qui permet de savoir si oui ou non tu es un cheval.Comme l'indique joliment le joyeux Jojo dans son commentaire, l'algorithme ci-dessus ignore le cas de Hans le malin, cheval surdoué qui parvenait à compter, calculer et répondre à des questions simples. Plus fort que Christine Boutin donc, mais moins balèze que Paul le poulpe. L'étude de ce phénomène équin mit en lumière l'influence de l’observateur sur l'animal, le fameux "Clever Hans Effect".
Boucle infinie=crêpes ad vitam aeternam, ça me parle bien. Enfin une vision appétissante de l'informatique :)
RépondreSupprimer:) Bon il faudrait aussi avoir un budget infini.. Une vision appétissante de la finance ?
RépondreSupprimerMerduum, je viens de dfébcouvrir que suis un cheval, et cropyezmoi c'est trèds dur de tapppper avbec des sabots!
RépondreSupprimer(excellent billet :D)
Ha ha excellent Tamala :) Merci pour le commentaire :)
RépondreSupprimerIl convient d'être prudent et de bien vérifier les conditions avant de répondre qu'un cheval ne peut pas lire ou écrire (en frappant le sol) ou même compter...
RépondreSupprimerhttp://fr.wikipedia.org/wiki/Hans_le_malin
Ha ha, bien joué Jojo, je rajoute une condition dans l'algorithme alors :)
RépondreSupprimerNovice dans l'art de l'algorithme, cet article est selon moi super bien écrit! très bien vulgarisé, je me fais porte parole des néophytes et vous remercie :)
RépondreSupprimerMerci à vous, c'est sympa de prendre le temps de commenter :)
RépondreSupprimerSi tu l'avait fait à l'ordi ce serait mieux mais bon si tu peux pas tend payer un tempi
SupprimerMerci à toi
SupprimerQuel plaisir de savoir si je vais ou non manger des crépes....
RépondreSupprimerCordialement
https://wp.me/p4Im0Q-2hT
Quelqu'un pourrait-il m'expliquer le dernier paragraphe, s'il-vous-plaît ?
RépondreSupprimerAmen.
Merci de m'avoir aidé!��
RépondreSupprimerC'est génial de votre part.
RépondreSupprimerUn petit vidéo comique (en anglais) qui montre que c'est pas si évident de faire une recette claire et explicite des étapes pour faire un sandwich beurre d'arachide et confiture https://www.youtube.com/watch?v=Ct-lOOUqmyY
RépondreSupprimerexcellent :)
Supprimer