La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

Sensibilisation à l’Algorithmique

Présentations similaires


Présentation au sujet: "Sensibilisation à l’Algorithmique"— Transcription de la présentation:

1 Sensibilisation à l’Algorithmique

2 Algorithme Permet de résoudre un problème donné
ex: Trouver la crue minimale et la crue maximale à partir d’un ensemble de relevés Procédure de calcul bien définie Séquence d'instructions élémentaires termine en un temps fini prend une ou des valeur(s) en entrée donne une ou des valeur(s) en sortie

3 Etude de cas – Fil rouge Gestion des relevés d’une crue d’une rivière
Un relevé comprend : La hauteur de la crue Le point de relevé La date du relevé L’heure du relevé L’auteur du relevé Un identifiant de relevé On stocke et analyse un ensemble de relevés

4 Exemple Exemple de problème à résoudre
Trouver la crue minimale et/ou la crue maximale à partir d’un ensemble de relevés Input: liste non triée de relevés Output: liste des relevés correspondant à la crue minimale ou maximale Algo: ???

5 Types de problèmes Tris d'éléments d'une liste (trier les relevés)
Recherches d'un élément (trouver la hauteur de la crue à une heure donnée à un point donné) Calculs (calculer la moyenne de la crue, identifier les points critiques….) Algorithmes exacts / d'approximation chaînes de carctères codant la séquences de gènes du génome humain séquençage de l'ADN Séquençage du génome humain En biochimie, le séquençage consiste à déterminer l'ordre linéaire des composants d'une macromolécule (les acides aminés d'une protéine, etc.). En génétique, le séquençage concerne la détermination de la séquence des gènes voire des chromosomes, voire du génome complet. Ce qui techniquement revient à effectuer le séquençage de l'ADN constituant ces gènes ou ces chromosomes. algo sur graphes: modélisent pb réels: réseaux de communication ,jeux, pb du voyageur de commerce, pb de coloration de graphes pour planification d'évènements... pb combinatoires: explosion combinatoire, pas d'algo en temps raisonnable, sauf exception géométriques: graphisque, robotique: trouver la paire la plus proche, trouver le polygone convexe le plus petit numérique: systèmes d'équation, évaluation de fonctions, calcul intégral, etc. suppose représentation des nombres, approximations

6 Algorithme et Programme
Un algorithme est implémenté dans un langage de programmation Un même algorithme peut être implémenté dans différents langages (Java, C, Python, Caml, ...) Pseudo-code

7 Structure de Données Moyen de stocker et organiser les données d'un algorithme accès aux données modification, mise à jour des données Tableaux nombre max de relevés est connu (le tableau incomplet) Listes la liste contient toujours le nombre de relevés courant, on ne connait pas forcément le nombre max de relevés Sets : notion d’ensemble Les relevés n’ont pas besoin d’être retrouvés selon un ordre Maps : un index unique Les relevés peuvent être retrouvés directement à partir du nom de l’auteur Piles, files : gestion des accès aux données Graphes, arbres, arbres binaires de recherche tableau/liste: taille fixe ou non set: ensemble non ordonné d'éléments distincts opérations: test d'appartenance, union, intersection si on prend un super-ensemble, on représente un set par une suite de 0 et de 1 selon que l'élément est dans le super set ou pas dictionnaires ou map: recherche d'un élément, ajout, suppression système de clés uniques

8 Structures de contrôle
Structures de contrôle conditionnelle Si cond Alors instr FinSi Si cond Alors instr sinon instr FinSi (imbrications possibles) Structures de contrôle itératives TantQue cond Faire instr FinTantQue variantes

9 Itérations int i = 0; while(i<10){ System.out.println(“Coucou”);
}

10 Itérations int i = 0; do{ System.out.println(“Coucou”); i +=1;
}while(i<10); for (i=0; i<10; i++) System.out.println(“Coucou”);

11 Tableaux Déclaration et allocation mémoire d’un tableau de 10 entiers
int [] hauteurs = new int[10]; Accès au premier élément : hauteurs[0] Accès au dernier élément : hauteurs[hauteurs.length -1] i ième élément : hauteurs[i-1] init./modif. d'un élément: hauteurs[i] = 3;

12 Tableaux valeur tableau[i] / indice i
recherche du (des) élément(s) vérifiant une certaine propriété vérification de la présence ou l'absence d'une certaine valeur dans le tableau recherche de l'indice dans le tableau d'une valeur donné tri du tableau selon un certain critère

13 Exemple d’Itération int i = 0; int somme=0;
while(i<hauteurs.length){ somme=somme+hauteurs[i]; } int max=hauteurs[0]; for (int i=1; i<hauteurs.length; i++){ if (max < hauteurs[i]) max=hauteurs[i];

14 Matrices Tableau de tableaux :
int [][] matrice = new int[10][15]; élément en ligne i et colonne j : matrice[i][j] Matrice carrée : int [][] matriceCarree = new int[7][7];

15 La classe ArrayList : Liste
Déclaration et allocation mémoire ArrayList<Integer> hauteurs; hauteurs = new ArrayList<Integer>(); ArrayList<Releve> releves; releves = new ArrayList<Releve>(); Ne peuvent contenir que des objets Accès au premier élément : releves.get(0) dernier élément : releves.get(liste.size()-1) i ième élément : releves.get(i-1)

16 La classe ArrayList : Listes
ajout d'un élt: releves.add(new Releve(3,100,10,0,”26/04/2003”) ); modif d'un élt: hauteurs.set(i,new Integer(4)); suppression d'un élt: releves.remove(i); mêmes algos que sur les tableaux

17 Exemple d’Itération int i = 0; int somme=0;
while(i<hauteurs.size()){ somme=somme+hauteurs.get(i).value(); } int max=hauteurs.get(0).value(); for (int i=1; i<hauteurs.size(); i++){ if (max < hauteurs.get(i).value()) max=hauteurs.get(i).value();

18 Paires d'objets : Maps Déclaration et allocation mémoire
HashMap<String,String> surnoms; surnoms = new HashMap<String,String>(); HashMap<String,Releve> releves; releves = new HashMap<String,Releve>(); paires clé/valeur, clés uniques ajout d'un couple clé/valeur : surnoms.put(“tartampion”, “dupont”); releves.put(“Martin”, new Releve(3,100,10,0,”26/04/2003”)) suppression d'un couple clé/valeur : releves.remove(“Martin”);

19 Maps plus de premier, dernier, i ième élément, récupération d'une valeur associée à une clé : Releve r = releves.get(“martin”); récupération directe de la valeur associée à une clé : get de l'information de présence/absence d'une valeur: releves.containsKey(“dupont”); d'une clé : releves.containsValue(r);

20 ensemble non ordonné d'objet : Sets
Déclaration et allocation mémoire HashSet<String> surnoms; surnoms = new HashSet<String>(); ajout d'un élément : surnoms.put(“tartampion”); suppression : surnoms.remove(“tartampion”); test direct de la présence d'un élément : surnoms.contains(“tartampion”);

21 Exemple d’Itération Non Adaptées int i = 0; int somme=0;
while(i<hauteurs.size()){ somme=somme+hauteurs.get(i).value(); } int max=hauteurs.get(0).value(); for (int i=1; i<hauteurs.size(); i++){ if (max < hauteurs.get(i).value()) max=hauteurs.get(i).value(); Non Adaptées

22 Maps et Sets Les structures de Maps et de Sets ne supportent que les opérations de dictionnaire: insérer, rechercher, supprimer HashMap et HashSet sont des implémentations à base de tables de hachage qui permettent de réduire le coût de ces opérations.

23 Piles et Files Ordonnancements particuliers des éléments d'un tableau ou d'une liste Pile : empiler/dépiler des éléments File : enfiler /défiler des éléments :


Télécharger ppt "Sensibilisation à l’Algorithmique"

Présentations similaires


Annonces Google