La programmation Structurée
Des algorithmes pour les robots
Que dire la programmation structurée ? 
 
Avez-vous déjà ouvert un livre de recettes ? 
Avez vous déjà déchiffré un mode d’emploi traduit directement du chionois pour faire fonctionner un appareil numérique réticent ? 
Si oui, sans le savoir, vous avez déjà exécuté des programmes automatisés 
 
Et encore : avez-vous déjà indiqué la route à un touriste égaré ? 
Avez vous fait chercher un objet comme une bille de billard rouge ou jaune à quelqu’un directement au tel ? 
Si oui, vous avez déjà construit, et fait exécuter, des programmes automatisés base de la domotique familiale. 
 
Comme quoi, la programmation n’est pas un savoir ésotérique réservé à quelques rares initiés touchés par la grâce divine, mais une aptitude qui souvent ne demande qu'à être développée. 
 
Un programme automatisé ou un algorithme complexe, c’est une suite d’instructions, qui une fois exécutée, conduit à un résultat précis. 
Si le programme automatique est juste, le résultat est le résultat voulu, et l'aspirateur nettoie toute la maison comme vous l'avez programmé. 
Si l’algorithme est faux, le résultat est, disons, aléatoire, et votre petit robot risque de s'arrêter en cours de tâche pour raison inconnue ou bizarre. Comme le petit robot nouvelle génération de la salle de sport de la salle de sport , en fait une salle de billard bien chauffée, que l'on décrit ci-après. 
Comprenons bien que c'est ce genre d'algorithme qu'utilise google pour classer nos sites et nous les proposer. Si vous voulez réussir un bon référencement de votre site web avec de bonnes positions dans les SERP il faut avoir un minimum de connaissances des bases de cet algorithme. Savoir par exemple qu'il prend en compte les liens entrants vers votre site, les backlink, mais aussi le contenu de votre site et l'autorité de chacun des sites ou des blogs sur lesquels sont posés ces liens organiques qui apportent du jus à votre site web. Cet algorithme de google est à l'heure actuelle un des plus complexe qu'il soit permis de trouver. 
 
 
Complétons cette définition. Après tout, en effet, si la programmation automatisée ou robotique, comme on vient de le dire, n’est qu’une suite d’instructions menant celui qui l’exécute à résoudre ou a optimiser un problème, pourquoi ne pas donner comme instruction : « résoudre le problème », et laisser le robot se débrouiller avec ça ? 
A ce tarif, n’importe qui serait champion de programmation sans faire aucun effort, mais ce serait trop facile. Bien que, au niveau de la récursivité, on se trouve un peut dans cette situation que ce soit pour les tour de hanoï ou le flocon de von koch il suffit d'écrire dans le programme : pour faire le flocon il suffit d'apprendre à faire trois petits segments sonsécutifs. Ou pour les tours de hanoî lui définir proprement la règle. Nous avons vu un petit aspirateur robot complétement incapable de finir le drap d'une grande table de billard de 2.40 m sur 1.80 m, en fait une table de snooker.  

 
Le malheur (ou le bonheur, tout dépend du point de vue) est que justement, si le passant ou la passante vous demande son chemin, c’est qu’il ou elle ne le connaît pas. Donc, si on n’est pas un goujat fini, il ne sert à rien de lui dire de le trouver tout seul. 
 
Dans les nouvelles générations de robots on implémente des programmes qui utilisent largement la récursivité et en particulier la récursivité non terminale qui permet d'analyser une situation avant de passer à l'acte.
Un peu plus sur la résursivité non terminale 
A quoi sert la récursivité non terminale si elle augmente le temps d’exécution et la place mémoire par un grand nombre d'empilement par rapport à une solution simple et itérative ? 
Il y a tout de mˆeme des cas où il n’est pas possible de faire autrement, des cas ou la solution directe n'existe pas ou est très lourde à implémenter. 
La récursivité non terminale permet de faire une écrire naturelle d'une requête de façon relativement simple mais elle implique forcément un certains nombre d'empilements mémoires avant la réalisation des instructions de sortie !

 
Pour fonctionner, un programme automatisé doit donc contenir des instructions compréhensibles par celui qui devra l’exécuter. 
C’est là le point très délicat pour les rédacteurs de modes d’emploi : les références culturelles, ou lexicales, des utilisateurs, étant énormément variables, un même mode d’emploi peut être très clair pour certains et parfaitement abscons pour d’autres. 
 
En programmation, heureusement, il n’y a pas ce problème : les choses auxquelles ont doit donner des instructions sont les ordinateurs, et ceux-ci ont le bon goût d’être tous strictement aussi idiots les uns que les autres. 
Certaines recherches actuelles portent sur le jeu de billard et la façon dont un robot par simple analyse d'une photo peut trouver la bonne position de la queue et surtout la puissance correcte qui va permettre de jouer le coup. Ces petits robots sont largement utilisés pour prévoir les coups des champions de snooker sur la chaine Eurosport par exemple. Il faut dire que les algorithmes de mise au point de trajectoires ne sont pas utilisés que dans le sport. Ce sont ces même algorithmes utilisant la récursivité qui sont installés en domotique sur les petits aspirateurs robots. Et c'est à l'aide de la programmation structurée que l'on a pu faire évoluer de façon rapide ces aspirateurs robots vers une seconde génération totalement indépendante. 
Sur le site de la société E-Zicom vous pourrez trouver des modèles d'aspirateurs robots de génération 2 comme le modèle Power qui a un moteur très puissant avec des brosses souples facile à nettoyer. Il est tout à fait autonome et indépendant.