Télécharger la présentation
La présentation est en train de télécharger. S'il vous plaît, attendez
Publié parAgathe Godin Modifié depuis plus de 8 années
1
ALGORITHMES LANGAGES ALGORITHMIQUE
2
Qu'est-ce qu'un algorithme ? Un algorithme est une méthode décrite pas à pas pour « faire quelque chose ». Hors des mathématiques, les algorithmes sont partout :
3
Les algorithmes sont un élément constitutif des mathématiques.
4
Le développement de l'informatique permet de donner leur pleine puissance aux algorithmes. Pour le calcul numérique : Méthode de Newton f(x) ≈ f(x 0 ) + f '(x 0 )(x-x 0 ) x n+1 = x n – f(x n )/f'(x n ) I= 0 : 1Approximation de la racine carrée de 2 (Héron d'Alexandrie) i= 1 : 1.5 i= 2 : 1.41666666666666666666666666666666666666666666666666666666666666666666666667 i= 3 : 1.41421568627450980392156862745098039215686274509803921568627450980392156862 i= 4 : 1.41421356237468991062629557889013491011655962211574404458490501920005437183 i= 5 : 1.41421356237309504880168962350253024361498192577619742849828949862319582422 i= 6 : 1.41421356237309504880168872420969807856967187537723400156101313311326525563 i= 7 : 1.41421356237309504880168872420969807856967187537694807317667973799073247846 √2=1.41421356237309504880168872420969807856967187537694807317667973799073247 Pour la résolution de problèmes complexes : Programmation linéaire de contraintes 1. Si x est le nombre d'objets A et y le nombre d'objets B, les contraintes sont: 2. Polygone des Contraintes: On a représenté, les droites d'équations (D1) : (3x +7y =56) et (D2) : (5x + 3y = 50) ainsi que les droites (D) et (D '), (D) correspondant à (54x + 45y = 300), (D ') correspondant au bénéfice maximum. Cette dernière droite passe par le point d'intersection de (D1) et (D2) qui est le point L(7 ; 5). 3. Le bénéfice journalier de l'entreprise est donné, en fonction de x et y, par: B(x ; y) = 54x + 45y. Le bénéfice maximum est obtenu par x = 7 et y = 5. Il est alors égal à 603. Pour la résolution de problèmes complexes : Equations différentielles, méthode des éléments finis Deux contraintes, ce n'est pas beaucoup ! Pour explorer de nouveaux domaines mathématiques : L'ensemble de Mandelbrot et courbes fractales z n+1 = z n ² + c
5
Les ingrédients d'un algorithme Un algorithme est une succession d'instructions dont le type est très limité : - une entrée/sortie Demander une donnée à l'utilisateur Lire une donnée en mémoire Afficher une donnée pour l'utilisateur Enregistrer une donnée en mémoire - une affectation Modifier la valeur affectée à une variable Nom = « Toto » X = 4 Y = X + 2 X = 10 ATTENTION : les variables utilisées dans un algorithme ne sont pas utilisées au sens mathématique usuel de ce terme. Une variable ne change pas d'état tant qu'elle n'est pas affectée ou réaffectée. Dans l'exemple X=4, Y=X+2, X=10, la lecture de la variable Y donnera 6 et non 12. Cela engendre deux problèmes : - erreurs d'appréciation de ce que réalise l'algorithme - erreurs d'initialisation de variables - un test Exécution conditionnelle d'instructions Si (condition) Alors (instructions) Sinon (instructions) - facultatif Si ( Z² = X²+Y²) Alors Afficher « Le triangle est rectangle » Les expressions Z² et X²+Y² sont évaluées, comparées et « oubliées ». Il ne s'agit pas d'une affectation. Le symbole « = » des mathématiques est en général remplacé par deux symboles différents dans les langages de codage des algorithmes ( ← ou := ou ==...) Donc : travailler avec les élèves sur la notion de variable dans un algorithme
6
Les ingrédients d'un algorithme Un algorithme est une succession d'instructions dont le type est très limité : - une entrée/sortie - une affectation - un test - une boucle Répéter des instructions tant qu'une condition est remplie. Tant que (condition) (instructions) Tant que (X<1000) X = 2 * X On évalue la condition (X<1000). Si elle est vraie, on affecte la valeur de 2X à X. On évalue la condition (X<1000). Si elle est vraie, on affecte la valeur de 2X à X... ATTENTION : les boucles sont souvent responsables de la non terminaison d'un algorithme. Si la valeur -3 est affectée à la variable X, L'exemple Tant que (X<1000), X = 2X, aboutit à une non terminaison. La plupart des langages permettent l'utilisation de plusieurs types de boucles : TANT QUEJUSQU'A BOUCLE ITERATIVE Tant que (condition)Répéter (instructions)Pour (variable variant de (instructions)Jusqu'à (condition)valeur1 à valeur2) (instructions) Les instructions ne sont effectuées que si la condition est vérifiée Les instructions sont effectuées au moins une fois La variable est automatiquement incrémentée
7
Les ingrédients d'un algorithme Un algorithme est une succession d'instructions dont le type est très limité : - une entrée/sortie - une affectation - un test - une boucle A ces briques élémentaires s'ajoutent dans des algorithmes évolués les notions de fonction et de récursivité. Fonction : Demander Num et Den s=PGCD(Num,Den) Num=Num/s Den=Den/s Afficher Num et Den Appel d'une fonction PGCD définie ailleurs Récursivité : Fonction puissance(a, n) début si n = 0 Alors retourner 1 Sinon retourner puissance(a, n-1) * a fin La fonction puissance fait appel à elle même
8
L'algorithmique L'algorithmique est l'étude des algorithmes pour eux-mêmes. Elle tente de répondre à des questions telles que : - peut-on certifier qu'un algorithme donné est « fini » et « correct » ? C'est à dire : prouver la terminaison de l'algorithme et fait-il réellement ce que l'on voulait (indépendamment de « la méthode choisie pour résoudre le problème est-elle correcte ? ») On utilise pour cela des méta-langages réécrivant l'algorithme sous une forme purement mathématique. → Cela est clairement hors de propos dans nos cours. Elle tente de répondre à des questions telles que : - quelle est la « complexité » d'un algorithme donné ? L'efficacité d'un algorithme est étudiée en fonction de la taille n des données selon deux critères : - Le temps d'exécution (nombre d'instructions nécessaires) On parle d'algorithme en temps linéaire (de l'ordre de n) ou polynomial ou encore exponentiel (à éviter !) - L'espace mémoire utilisé. → La compréhension d'algorithmes fournis et la recherche d'améliorations constitue une étude intuitive de ces concepts.
9
Des articles de vulgarisation sur la culture informatique : La revue en ligne INTERSTICES de l'INRIA Le site d'INTERSTICES Une variété de sujets : Les ingrédients des algorithmesLes ingrédients des algorithmes P, NP, comprendre la complexitéP, NP, comprendre la complexité Qu'est-un qu'un algorithme ?Qu'est-un qu'un algorithme ? Du programme au langage machineDu programme au langage machine Informatique et mathématiques, une revue d'ouvragesInformatique et mathématiques, une revue d'ouvrages Résoudre le mini-rubikRésoudre le mini-rubik En podcast : A propos de l'enseignement de l'informatique Scilab, à propos du calcul numérique Des connaissances approfondies sur la science informatique Accès aux coursAccès aux cours de l'Ecole Polytechnique Un exempleUn exemple
10
Deux ouvrages papier * Introduction à l'algorithmique, T. Cormen, C. Leiserson, R. Rivest, C. Stein 3ème édition, Dunod * Histoire d'algorithmes Du caillou à la puce. Jean-Luc Chabert Belin 2010.
11
Principales structures de données Les types de variables Les structures : liste, tableau, arbre
Présentations similaires
© 2024 SlidePlayer.fr Inc.
All rights reserved.