Les algorithmes

Définition :  « Un algorithme est une suite d’actions (conditionnées ou pas) à appliquer pour obtenir un certain résultat en un nombre fini d’étapes»

Tout est dit ici…reste à bien comprendre cette définition.

Une idée classique est d’illustrer un algorithme comme étant très comparable à une recette de cuisine. Jugez plutôt :

C’est bien une suite d’actions élémentaires (remarquez qu’il y a une action dans chaque rectangle d’action)

Certaines actions sont conditionnées (on a du Rhum ?)

Il existe un début …et une fin (sinon, votre programme ne s’arrêterait jamais, il serait d’une certaine façon « planté »).

Ceci est donc bien un algorithme.

Une première illustration avec un jeu à jouer à 2, le Jeu de Nim (cliquer pour plus de détail)

II/ Algorithmes et jeux :

S’il y a bien un domaine ou l’algorithme est roi c’est bien celui des jeux. Des formes à emboîter pour les plus petits au jeu d’échec. A ce dernier jeu, dorénavant l’ordinateur et ses algorithmes domine l’Homme depuis « Deep Blue ».

Un autre grand classique de l’algorithmique est dorénavant le Rubik’s Cube qui se résout de façon automatisée…grâce à un algorithme maintenant bien rodé. Regardez plutôt cette vidéo :

III/ Dessiner un algorithme :

Trois formes suffisent pour commencer : le rectangle qui indiquera une action, le losange un test et les symboles ovales de début et de fin. Un exemple…l’algorithme du bonheur…

Vous êtes heureux ? …continuez.

Vous êtes malheureux ?

A vous de choisir si cela vous convient ou si vous voulez changer quelque chose.

Tout un programme de vie…

IV/ A quoi sert un algorithme en définitive ?

  • A décrire ou analyser une séquence de fonctionnement (un jeu, une recette, un programme scratch ou informatique…)
  • A échanger et mieux se comprendre entre concepteurs

V/ Les symboles et règles de dessin :

Un bon algorithme se doit d’être :

  • Clair,facile à comprendre …par tous ceux qui le lisent
  • Le plus général possible…pour répondre au plus grand nombre de cas possibles et ne pas être prisonnier d’un langage
  • Compact…de manière à limiter le nombre d’opérations à effectuer et la place occupée en mémoire

VI/ Scratch et l’algorithmique :

Peut-être ne l’aviez-vous pas réalisé mais Scratch est ni plus ni moins la mise en programme d’un algorithme. Jugez plutôt :

Vous faites donc de l’algorithmique depuis un moment sans en être conscients. Chaque jour de la même façon vous appliquez des centaines d’algorithmes durant votre journée de l’habillage du matin (qui pourrait être transcris en algorithme) jusqu’à votre coucher (lui aussi transcriptible en algorithme…).

VII- Les algorithmes et internet :

Tous les jours nous entendons parler « des algorithmes » à propos d’internet, de Facebook, Amazon et autres géants du web qui nous pistent et analysent nos comportements…pour mieux nous vendre.

Un des problèmes posés par ces algorithmes est de nous enfermer petit à petit dans une bulle nous correspondant tellement bien…qu’elle nous empêche de regarder ailleurs et de nous ouvrir l’esprit à d’autres idées.

C’est effectivement un sujet de plus en plus présent, voici une vidéo de « Cookie connecté » que j’ai légèrement raccourcie et modifiée pour les besoins de ce site (désolé « Cookie »)

On peut tenter de contourner ces algorithmes, certains s’y emploient…mais encore faut-il les connaître et les comprendre…d’où ce cours 😉