si vous n'y voyez pas clair rapprochez-vous !. algorithmique, algorithmie, algorithme origine...
TRANSCRIPT
Si vous n'y voyez pas clair
rapprochez-vous !
Algorithmique, algorithmie, algorithme
Origine des mots
XIIIème siècle, de la traduction en latin d'un mémoire de Mohammed Ibn Musa Abu Djefar (IXème siècle) dit
Al-Khwarismi
Définition
Séquence d'opérations visant à la résolution d'un problème en un temps fini
(mentionner la condition d'arrêt)
Algorithme mathématique
Simplifier le rationnel 18 / 30
= 3 / 5
Algorithme d’Euclide
Soit deux entiers naturels A et B, on commence par tester si A = B. Si oui, alors le PGCD est égal à A (ou B). Sinon, on remplace A par A-B si A > B ou on remplace B par B - A si B > A
PGCD (A, B) = PGCD (B, A) =
PGCD (A-B, B) si A > BPGCD (B-A, A) si B > AA (ou B) si B = A
Trace d’une matrice carrée
a11 a12 ... a1N
a21 a22 ... a2N
...
aN1 aN2 ... aNN
M =
Trace (M) = a11 + a22 + ... + aNN
Faire un bronx
Ingrédients (pour 8 personnes) :
Les proportions sont mesurées avec un petit verre cocktail
2 verres de gin1 verre 1/2 de cinzano doux1 verre 1/2 de cinzano sec4 verres de jus d'orange (naguère, le volume du jus d'orange représentait la moitié du volume de gin)
Technique:
1. Mettre les verres vides au réfrigérateur pendant une demi-heure.
2. Verser tous ces ingrédients dans le shaker et secouer pour bien mélanger.
3. Servir dans les verres glacés: ne pas ajouter de glace.
Est-ce un algorithme ?
Mettre les verres vides au réfrigérateur pendant une demi-heure.
Verser tous ces ingrédients dans le shaker et secouer
pour bien mélanger.
Servir dans les verres glacés: ne pas ajouter de glace.
1.
2.
3.
Séquence d’instructions
1. Mettre les verres vides au réfrigérateur pendant une demi-heure.
2.1 Verser tous ces ingrédients dans le shaker
2.2 et secouer pour bien mélanger.
3. Servir dans les verres glacés : ne pas ajouter de glace.
Action complexe
Secouer pour bien mélanger.
. // ne pas ajouter de glace
1. Mettre les verres vides au réfrigérateur pendant une demi-heure.
1.1 Mettre les verres vides au réfrigérateur
1.2 Armer un minuteur à ½ heure
1.3 Attendre la sonnerie du minuteur // ou faire n'importe quoi d'autre interruptible à la sonnerie
Ingrédients :(pour 8 personnes)
= Spécifications
( 2 verres de gin, 1 verre 1/2 de Cinzano doux, ... )
FaireUnBronx
= Identificateur
de fonction Ingrédients
= Paramètres données
8 verres d’apéritif = Résultat de la fonction
pour 8 personnes
8 verres d’apéritif FaireUnBronx ( 2 verres de gin, 1 verre 1/2 de Cinzano doux, ... )
Mettre les verres vides au réfrigérateur; Armer un minuteur à ½ heure; Attendre la sonnerie du minuteur; Verser tous ces ingrédients dans le shaker; Secouer pour bien mélanger; Servir dans les verres glacés; // ne pas ajouter de glace.
Coller du tube de PVC
Le tube PVC est devenu le matériau courant des évacuations d’eauUne canalisation est constituée ...
1. Nettoyer les surfaces à coller avec du papier de verre fin2. Eventuellement les dégraisser au trichloréthylène3. Etaler de la colle sur les deux surfaces4. Emboîter les deux éléments bien à fond et dans la position souhaitée. La colle sèche en quelques minutes
Fonction
Commentaires
Ingrédients ?
Résultats ?
Remarques
Eventuellement les dégraisser au trichloréthylène
instruction conditionnelle
Quelle est la condition ?
si les surfaces sont grasses, alors les dégraisser ...
Prédicat (vrai ou faux)
Sinon RIEN !
Cas général :
- Plusieurs actions à enchaîner si condition remplie
- Plusieurs autres actions à enchaîner dans le cas contraire
- Dans tous les cas reprendre ensuite le traitement normal
Et sinon ?
Action1;
Action2;
Action3;
Action4;
Action5;
Action6;
Action7;
A faire dans tous les cas
A faire dans tous les cas
A faire si une certaine condition est vraie
A faire si cette même condition est fausse
Action1;Action2;
si (une condition est vérifiée)Action3;Action4;
si (cette condition n’est pas vérifiée)Action5;Action6;
dans tous les casAction7;
Décalage = Indentation
Schéma alternatif
Action1;Action2;
si (une condition est vérifiée)Action3;Action4;sinonAction5;Action6;fin si
Action7;
Action3;Action4;
Action5;Action6;
Schémas séquentiels
Baisers au chocolat
Ingrédients (pour 24 baisers) :
- 48 petites meringues achetées toutes préparées
Pour la crème au beurre au chocolat ou au café:
- 200 gr de beurre fin- 4 jaunes d'oeufs- 125 g de sucre- 1 c. à c. de fécule- 50 g de chocolat fondant ou quelques gouttes d'essence de café- 1/2 l de lait bouillant
1. Travailler les jaunes d'oeufs et le sucre dans un plat en remuant au fouet ou au batteur électrique jusqu'à ce que le mélange devienne blanc et mousseux; ajouter la fécule.
2. Casser le chocolat en menus morceaux; le faire fondre à chaleur douce ou au micro-ondes avec 2 cuillères à soupe de lait; lorsqu'il est fondu, ajouter le reste de lait bouillant; remettre sur le feu et quand il est chaud, le verser peu à peu sur les jaunes d'oeufs en remuant énergiquement; remettre sur le feu et laisser épaissir sans faire bouillir et sans cesser de tourner; retirer du feu et laisser refroidir.
3. Mettre le beurre dans une terrine et le travailler à la spatule de bois jusqu'à ce qu'il soit ramolli sans être fondu; il doit avoir la consistance d'une pommade.
4. La crème étant presque froide, l'incorporer au beurre ramolli sans cesser de remuer; mettre dans un endroit frais mais non au frigo; lorsque la crème au beurre est froide, coller les meringues deux par deux avec une cuillère de cette crème au beurre.
1.Travailler les jaunes d'oeufs et le sucre dans un plat en remuant au fouet ou au batteur électrique jusqu'à ce que le mélange devienne blanc et mousseux; ajouter la fécule.
1.1 Travailler les jaunes d'oeufs et le sucre dans un plat en remuant au fouet ou au batteur électrique jusqu'à ce que le mélange devienne blanc et mousseux;
1.2 Ajouter la fécule;
2. Casser le chocolat en menus morceaux; le faire fondre à chaleur douce ou au micro-ondes avec 2 cuillères à soupe de lait; lorsqu'il est fondu, ajouter le reste de lait bouillant; remettre sur le feu et quand il est chaud, le verser peu à peu sur les jaunes d'oeufs en remuant énergiquement; remettre sur le feu et laisser épaissir sans faire bouillir et sans cesser de tourner; retirer du feu et laisser refroidir.
2.1 Casser le chocolat en menus morceaux; 2.2 Le faire fondre à chaleur douce ou au micro-ondes avec 2 cuillères à soupe de lait;2.3 Lorsqu'il est fondu, ajouter le reste de lait bouillant;2.4 Remettre sur le feu 2.5 et quand il est chaud, le verser peu à peu sur les jaunes d'oeufs en remuant énergiquement; 2.6 remettre sur le feu ...
2.1 Casser le chocolat en menus morceaux; 2.2 Le faire fondre à chaleur douce ou au micro-ondes avec 2 cuillères à soupe de lait;2.3 Lorsqu'il est fondu, ajouter le reste de lait bouillant;2.4 Remettre sur le feu 2.5 et quand il est chaud, le verser peu à peu sur les jaunes d'oeufs en remuant énergiquement; 2.6 remettre sur le feu ...
2.2 Le faire fondre à chaleur douce ou au micro-ondes avec 2 cuillères à soupe de lait jusqu’à ce qu’il soit fondu;2.3 Ajouter le reste de lait bouillant;2.4 Remettre sur le feu jusqu’à ce qu’il soit chaud;2.5 Le verser peu à peu sur les jaunes d'oeufs en remuant énergiquement;
3. Mettre le beurre dans une terrine et le travailler à la spatule de bois jusqu'à ce qu'il soit ramolli sans être fondu; il doit avoir la consistance d'une pommade.
4. La crème étant presque froide, l'incorporer au beurre ramolli sans cesser de remuer; mettre dans un endroit frais mais non au frigo; lorsque la crème au beurre est froide, coller les meringues deux par deux avec une cuillère de cette crème au beurre.
Les multiples formes de structures répétitives
3. Serrer la poignée d'un demi-tour;
4. Faire tourner le coupe-tube autour du tube;
Couper du tube de cuivre
// On utilise un coupe-tube à molette
1. Placer le tube dans le coupe-tube, à l'endroit de la coupe;
2. Serrer la poignée du coupe-tube pour que la molette soit en appui sur le tube;
5. Répéter les opérations 3 et 4 jusqu'à coupure complète;
6. Ebavurer l'intérieur du tube à la lime ou au couteau;
Couper du tube de cuivre
// On utilise un coupe-tube à molette
Placer le tube dans le coupe-tube, à l'endroit de la coupe;
Serrer la poignée du coupe-tube pour que la molette soit en appui sur le tube;
répéter
Serrer la poignée d'un demi-tour;
Faire tourner le coupe-tube autour du tube;
jusqu'à (coupure complète)
Ebavurer l'intérieur du tube à la lime ou au couteau;
1. Prendre la bûche;
Scier du bois
2. si (sa longueur > 30 cm)
alors
Lui enlever 30 cm;
Stocker le morceau coupé;
fin si3 Remonter à 2)
ou mieux :
4. Stocker le reste de la bûche
sinon
aller en 4)
2. tant que (sa longueur > 30 cm)
répéter
Lui enlever 30 cm;
Stocker le morceau coupé;
fin répéter
1. Prendre la bûche;
Scier du bois
3. Stocker le reste de la bûche
ou, différent :
jusqu'à (sa longueur <= 30 cm)
mais pas :
1. Prendre la bûche;
Scier du bois
3. Stocker le reste de la bûche
2. répéter
Lui enlever 30 cm;
Stocker le morceau coupé;
jusqu’à ce que (sa longueur <= 30 cm)
répéter
Actions1; ...
Actions2; ...
Actions3; ...
fin répéter
Nombreuses formes de boucles
Forme plus générale
boucle infinie
répéter
Actions1; ...
Actions2; ...
Actions3; ...
fin répéter
si (condition 1 vraie) alors sortir;
Une boucle avec sortie
équivalent à :
répéter
Actions1; ...
Actions2; ...
Actions3; ...
fin répéter
jusqu’à (condition 1 vraie)
répéter
Actions1; ...
Actions2; ...
Actions3; ...
fin répéter
si (condition 1 vraie) alors sortir;
équivalent à :
répéter
Actions1; ...
Actions2; ...
Actions3; ...
jusqu’à (condition 1 vraie)
Une autre boucle avec sortie
répéter
Actions1; ...
Actions2; ...
Actions3; ...
fin répéter
si (condition 1 vraie) alors sortir;
si (condition 2 vraie) alors sortir;
si (condition 3 vraie) alors sortir;
si (condition 4 vraie) alors sortir;
Forme la plus générale
Avancer d'un pas jusqu'à ce que vous soyez au bord de la falaise
Aller au bord de la falaise
répéter Avancer d'un pas ; ?????
jusqu’à (au bord de la falaise)
jusqu’à (au bord de la falaise)répéter
Avancer d'un pas;fin répéter
ou
Boucle à compteur
pour les valeurs successives d’un compteur variant de 1 à 100répéter
Traitement (par exemple "dormir" 1 seconde);
fin répéter
Compter jusqu’à 100
peut aussi être écrit :
Prendre un compteur qu’on désignera par Compteur;Initialiser le Compteur à 1;répéter
Traitement (par exemple "dormir" 1 seconde); si (Compteur = 100) alors sortir; Ajouter 1 au Compteur ;
fin répéter
CompterJusqua100 ( )
Identificateur de la fonction
Pas d’ingrédient(de paramètre)
Ne « renvoie » rien
Prendre un compteur qu’on désignera par Compteur;Initialiser le Compteur à 1; // ou Compteur 1;répéter
Traitement (par exemple "dormir" 1 seconde); si (Compteur = 100) alors sortir; Ajouter 1 au Compteur ; // Compteur Compteur + 1;
fin répéter
local à la fonction
Identificateur d’un objet
Affectation
Incrémentation
Déclaration
Affectation
Prendre le compteur CompteurCompteur ??? ;répéter si (Compteur = ??? ) alors sortir; Traitement (par exemple "dormir" 1 seconde); Compteur Compteur + 1;
fin répéter
Autre version
CompterJusqua100 ()
0
100
ou, beaucoup mieux :
Prendre le compteur CompteurCompteur ??? ;répéter si (Compteur = ??? ) alors sortir; Traitement (par exemple "dormir" 1 seconde); Compteur Compteur + 1;
fin répéter
Dernière version
CompterJusquaN (une valeur entière N) // N est la valeur maximale
0
N
pour chaque élément d’un ensemble donnérépéter
Traitement de l’élément;
fin répéter
Autre type de boucle
dite « boucle ForEach »
Imprimer le fichier;
fichier du répertoire courant
l'ensemble peut être une liste, un tableau, ...
Comment écrire l'algorithme permettant de fendre du bois ( Ø <= 10 cm) ?
1. Mesurer Ø de la bûche2. Si bûche trop grosse : la fendre en deux.3. pour chacun des 2 morceaux répéter4. si (il est trop gros) alors le fendre en deux sinon le ranger fin si5. fin répéter
34
Récursivité
L'algorithmique ? C’est simple ...
DEA Algorithmique
Université Pierre et Marie Curie (PARIS 6) Université Denis Diderot (PARIS 7)
Université Paris Sud (PARIS 11) Ecole Normale Supérieure (Ulm)
Ecole Normale Supérieure de Cachan Ecole Polytechnique
Ecole Nationale Supérieure des Télécommunications (ENST) Ecole Nationale Supérieure des Techniques Avancées (ENSTA)
En convention avec l'INRIA
Les techniques mises en œuvre pour la résolution de ces
questions font appel à des domaines des mathématiques
en plein essor comme :
la combinatoire, l’algèbre, la théorie des nombres et certains chapitres de l’analyse.
Ces techniques permettent de comprendre en profondeur
la nature des problèmes rencontrés, de leur donner des solutions
rigoureuses et efficaces et de construire des programmes
fiables et performants....
Objectifs
L’algorithmique constitue un des corps de doctrine privilégié
de l’informatique. Les problèmes actuels de l’algorithmique
trouvent leur source dans les questions rencontrées pour la
réalisation de logiciels efficaces et ceci dans tous les domaines
d’application de l’informatique :
systèmes, processus de calcul, gestion des ressources en mémoire, structure des systèmes et réseaux, étude et amélioration des performances, modélisation, sécurité, bases de données, réalisation d’outils de calcul et d’analyse.
Enseignements
Les enseignements débutent par un tronc commun autour de
quatre thèmes généraux :
Géométrie algorithmique, introduction à la complexité, problèmes algorithmiques et combinatoires, automates.
Ensuite, une variété de thèmes sont plus spécifiquement
distingués et présentés dans des filières :
analyse d'algorithmes, automates et mots, calcul formel, combinatoire, complexité codage et cryptographie, géométrie image et robotique, algorithmique de la vérification, modélisation des réseaux, algorithmes et modèles de calcul ...
Les domaines de recherche ou d’application accessibles à
partir des enseignements du DEA ... couvrent, outre les thèmes
évoqués plus haut, les sujets suivants :
l’optimisation d’algorithmes et de protocoles, la modélisation, la programmation parallèle ou distribuée, la théorie des automates et ses applications, la vision par ordinateur et les calculs d’ingénierie
que l’on retrouve en robotique et conception assistée
par l’ordinateur.