La programation dynamique

Dimension: px
Commencer à balayer dès la page:

Download "La programation dynamique"

Transcription

1 La programation dynamique François Lemieux UQAC François Lemieux (UQAC) La programation dynamique 1 / 51

2 La programmation dynamique 1 Le compromis espace/temps 2 Principes de la programmation dynamique 3 Exemple 1: Calcul des nombres de Fibonacci 4 Exemple 2: Concaténation de nombres premiers 5 Exemple 3: Multiplication chaînée de matrices 6 Exemple 4: Plus court chemin dans un graphe (Floyd) 7 Exemple 5: Sous-chaîne commune de longueur maximale 8 Exemple 6: Disposer des mots en paragraphe François Lemieux (UQAC) La programation dynamique 2 / 51

3 Le compromis espace-temps Une situation récurrente en informatique est que la diminution du temps d exécution d un algorithme se fait souvent au prix d une augmentation de l espace mémoire. Exemple: Une fonction f : N N peut être remplacer par une table des valeurs. Similairement, diminuer l utilisation de l espace mémoire peut être fait si on accepte d augmenter le temps d exécution. Exemple. Lecture et écriture dans un fichier compressé. François Lemieux (UQAC) La programation dynamique 3 / 51

4 Principes de la programmation dynamique On évite de refaire certains calculs en les mémorisant dans une table. Cette méthode est souvent utilisée lorsque l on ne peut pas utiliser un algorithme diviser-pour régner pour une des raisons suivantes: 1 Un algorithme diviser-pour-régner se révèle inefficace parce qu il refait souvent les mêmes appels récursifs 2 Un algorithme diviser-pour-régner serait efficace si seulement on pouvait deviner comment diviser le problème Nous allons voir deux exemples qui illustrent ces situations. François Lemieux (UQAC) La programation dynamique 4 / 51

5 Exemple 1: Nombres de Fibonacci Algorithme diviser-pour-régner (approche descendante): fib1(n) si (n<2) retourner n sinon retourner fib1(n-1) + fib1(n-2) Le temps est Θ(φ n ) où φ = Comme il n y a que n paramètres possibles, alors il y a une multitude d appels identiques. François Lemieux (UQAC) La programation dynamique 5 / 51

6 fib(5) fib(3) fib(4) fib(1) fib(2) fib(2) fib(3) fib(0) fib(1) fib(0) fib(1) fib(1) fib(2) fib(0) fib(1) François Lemieux (UQAC) La programation dynamique 6 / 51

7 Meilleure solution On utilise une table T [1 n] initialisé à 0 Après le premier appel à fib(k) on met le résultat dans T [k] Avant chaque appel à fib(k) on regarde dans T [k] pour voir si le résultat a déjà été calculé. François Lemieux (UQAC) La programation dynamique 7 / 51

8 Approche descendante (fonctions à mémoire) L approche descendante est la façon récursive d implémenter un algorithme de programmation dynamique. Une fonction récursive qui utilise une table pour éviter de répéter des calculs est appelée fonction à mémoire. fib2(n) si T[n]>0 alors retourner T[n] si n<2 alors T[n]=n sinon T[n] = fib2(n-1) + fib2(n-2) retourner T[n] Le temps est Θ(n) François Lemieux (UQAC) La programation dynamique 8 / 51

9 fib(5) fib(3) fib(4) fib(1) fib(2) fib(2) fib(3) fib(0) fib(1) fib(0) fib(1) fib(1) fib(2) fib(0) fib(1) Les sous-arbres en rouges correspondent à des calculs qui ont déjà été effectués. François Lemieux (UQAC) La programation dynamique 9 / 51

10 fib(5) fib(3) fib(4) fib(1) fib(2) fib(2) fib(3) fib(0) fib(1) Les noeuds internes correspondent à des appels récursifs distincts, ce qui garantie un temps linéaire. François Lemieux (UQAC) La programation dynamique 10 / 51

11 Approche ascendante Il s agit d une méthode itérative où on remplit la table de façon ascendante: On commence par les entrées correspondant aux sous-problèmes de petite taille. fib2(n) T[0]=0 T[1]=1 pour i=2 à n faire T[i] = T[i-1] + T[i-2] Le temps est Θ(n) Remarque: Dans ce cas ci, le tableau peut être remplacé par deux variables entières. François Lemieux (UQAC) La programation dynamique 11 / 51

12 Exemple 2: Concaténation de nombres premiers Supposons que nous disposions d un algorithme Premier(w) permettant de déterminer si une séquence de bits w représente un nombre premier: { 1 si w est premier Premier(w) = 0 sinon François Lemieux (UQAC) La programation dynamique 12 / 51

13 Description du problème Entrée: Une séquence de n bits w = b 1 b 2 b n Sortie: Vrai si on peut écrire w sous la forme w = w 1 w 2 w m (m > 0) tel que w i est l encodage binaire d un nombre premier, faux sinon. Exemple: La séquence w = est la concaténation de 11 (3), 101 (5) et 10 (2). Remarquez que cette solution n est pas unique puisqu on peut aussi décomposer w en (29) et 10 (2). François Lemieux (UQAC) La programation dynamique 13 / 51

14 Approche diviser-pour-régner Sequence(w) Si (Premier(w)=1) alors retourner vrai Si (n=1) retourner faux Trouver une décomposition w=uv Si Sequence(u)=vrai et Sequence(v)=vrai alors retourner vrai Sinon retourner faux Si on pouvait trouver efficacement une telle décomposition alors l algorithme Sequence serait aussi efficace. François Lemieux (UQAC) La programation dynamique 14 / 51

15 Remarque Une idée serait de choisir u comme le plus petit préfixe de w tel que Premier(u) = 1. Si un tel préfixe n existe pas alors on retourne faux. Malheureusement, cette idée ne fonctionne pas. Exemple: Si w = alors 10 (2) est le plus petit préfixe de w qui soit premier. Cependant, la seule décomposition possible de w est 101 (5) et (17). François Lemieux (UQAC) La programation dynamique 15 / 51

16 Essayer toutes les décompositions possibles Sequence(w) Si (Premier(w)=1) alors retourner vrai Si (n=1) retourner faux Pour i=1 à n-1 faire u = i premiers bits de w v = (n-i) derniers bits de w Si Sequence(u)=vrai et Sequence(v)=vrai alors retourner vrai Retourner faux n 1 T (n) = [T (i) + T (n i)] + Θ(1) i=1 François Lemieux (UQAC) La programation dynamique 16 / 51

17 On a donc que et on conclu que T (n) = n 1 i=1 [T (i) + T (n i)] + Θ(1) = 2 n 1 i=1 T (i) + Θ(1) > 2T (n 1) T (n) > 2 n T (0) T (n) Ω(2 n ) François Lemieux (UQAC) La programation dynamique 17 / 51

18 Fonction à mémoire On utilise un tableau T dont chaque case peut être vide ou contenir vrai ou faux. Initialement toutes les cases de T sont vides. Les indices de ce tableau sont les segments de w (c est-à-dire les séquences de la formes b i b j pour i j) On met dans ce tableau le résultats des appels récursifs. François Lemieux (UQAC) La programation dynamique 18 / 51

19 Sequence(w) Si (T(w) est non vide) alors retourner T(w) T(w)=faux Si (Premier(w)=1) alors T(w)=vrai Si (n=1) alors T(w)=faux Pour i=1 à n-1 faire u = i premiers bits de w v = (n-i) derniers bits de w Si Sequence(u)=vrai et Sequence(v)=vrai alors T(w)=vrai Retourner T(w) François Lemieux (UQAC) La programation dynamique 19 / 51

20 abcde a bcde ab cde abc de abcd e b cde bc de bcd e c de cd e d e c d Développement partiel de l arbre d exécution pour w = abcde François Lemieux (UQAC) La programation dynamique 20 / 51

21 Analyse Il y a Θ(n 2 ) segments distincts. L arbre d exécution contient donc Θ(n 2 ) noeuds internes. Chaque noeud interne possède moins de 2n enfants. Le nombre de feuilles est donc O(n 3 ) T (n) O(n 3 ). François Lemieux (UQAC) La programation dynamique 21 / 51

22 Implémentation du tableau Entrée: w = b 1 b 2 b n On utilise un tableau T n n initialisé de la façon suivante: { vrai si Premier(bi b T [i, j] = j ) = 1 faux sinon Si on dénote par S l ensemble des séquences de bits qui sont des concaténations de nombres premiers alors, à la fin de l algorithme, le tableau sera: { vrai si bi b T [i, j] = j S faux sinon Temps pour l initialisation: Θ(tn 2 ) où t est le temps d exécution de l algorithme Premier. François Lemieux (UQAC) La programation dynamique 22 / 51

23 Programmation dynamique Sequence(w) pour longueur=2 à n faire pour debut=1 à n-longueur+1 faire fin = debut+longueur-1 pour coupure=debut à fin-1 faire si T[debut,coupure]=vrai et T[coupure+1,fin]=vrai alors T[debut,fin]=vrai Retourner T[1,n] T (n) Θ(n 3 ) François Lemieux (UQAC) La programation dynamique 23 / 51

24 Exemple Si w = 10101, alors T sera initialisé de la façon suivante: F V V F F 2 - F F V V F V V F F F Les séquences de longueur 1 correspondent aux entrées de la diagonale principale, les séquences de longueur 2 correspondent aux entrées de la seconde diagonale, etc. François Lemieux (UQAC) La programation dynamique 24 / 51

25 Exemple (suite) À la fin de l algorithme le tableau sera: F V V V V 2 - F F V V F V V F F F Remarque: La valeur d une entrée ne dépend que des entrées précédentes sur la même ligne et des entrées suivante sur la même colonne. Par exemple, on met vrai dans T [1, 4] car T [1, 2] et T [3, 4] sont tous les deux vrais. François Lemieux (UQAC) La programation dynamique 25 / 51

26 Exemple 3: Multiplication chaînée de matrices On veut calculer le produit matriciel: M = M 1 M 2 M n Fait: Multiplier une matrice p q par une matrice q r en utilisant la méthode standard nécessite pqr produits scalaires. Exemple: On veut calculer ABCD. A : 13 5 B : 5 89 C : 89 3 D : 3 34 François Lemieux (UQAC) La programation dynamique 26 / 51

27 Le nombre de produits scalaires est donné dans le tableau suivant: ((AB)C)D (AB)(CD) (A(BC))D 2856 A((BC)D) 4055 A(B(CD)) Question: Comment trouver la meilleure parenthétisation? François Lemieux (UQAC) La programation dynamique 27 / 51

28 Essayer toutes les possibilités Soit T (n) le nombre de façons de parenthétiser M 1 M 2 M n M = (M 1 M i ) }{{} T (i) façons (M i+1 M n ) }{{} T (n i) façons T (n) = n 1 i=1 T (i)t (n i) (nombre de Catalan) T (2) = 1, T (3) = 2, T (4) = 5, T (5) = 14, T (10) = 4862, T (15) = Fait: T (n) Ω(4 n /n 2 ) François Lemieux (UQAC) La programation dynamique 28 / 51

29 Solution par programmation dynamique Soit M i : matrice de dimension d i 1 d i Soit m i,j : nombre minimal de produits scalaires nécessaires pour évaluer M i M j Supposons que nous sachions que la meilleure solution implique de placer des parenthèses de la façon suivante: (M i M k )(M k+1 M j ) François Lemieux (UQAC) La programation dynamique 29 / 51

30 1 M i M k est une matrice d i 1 d k et nécessite m i,k produits scalaires 2 M k+1 M j est une matrice d k d j et nécessite m k+1,j produits scalaires 3 Le nombre total de produits scalaires est m i,k + m k+1,j + d i 1 d k d j On doit trouver la position k qui minimise m i,j : m i,j = { min {m i,k + m k+1,j + d i 1 d k d j } si i < j i k < j 0 si i = j François Lemieux (UQAC) La programation dynamique 30 / 51

31 Exemple Par exemple, pour calculer X = m 2,5 nous avons besoin de connaître A : (m 2,2 et m 3,5 ), B : (m 2,3 et m 4,5 ) et C : (m 2,4 et m 5,5 ) A B C X A B C d=5 d=4 d=3 d=2 d=1 d=0 m 2,5 = min{ m 2,2 + m 3,5 + d 1 d 2 d 5, 5.5emm 2,3 + m 4,5 + d 1 d 3 d 5, 5.5emm 2,4 + m 5,5 + d 1 d 4 d 5 } François Lemieux (UQAC) La programation dynamique 31 / 51

32 Fait 1: Pour calculer une diagonale, on a seulement besoin de connaître les diagonales précédentes. Fait 2: La diagonale d contient les éléments m i,j tels que d = j i Algorithme: 1 Tous les éléments de la diagonale i = 0 sont mis à 0 2 i = i Calculer toutes les entrées de la diagonale i 4 Si i < n aller à 2. François Lemieux (UQAC) La programation dynamique 32 / 51

33 Exemple Considérons n = 4 matrices dont les dimensions sont données par: d 0 = 13, d 1 = 5, d 2 = 89, d 3 = 3, d 4 = 34 Calcul de la diagonale d = 1 m 1,2 = = 5785 m 2,3 = = 1335 m 3,4 = = 9078 François Lemieux (UQAC) La programation dynamique 33 / 51

34 Calcul de la diagonale d = 2 m 1,3 = min{m 1,1 + m 2, , m 1,2 + m 3, } = min{1530, 9256} = 1530 m 2,4 = min{m 2,2 + m 3, , m 2,3 + m 4, } = min{24208, 1845} = 1845 François Lemieux (UQAC) La programation dynamique 34 / 51

35 Calcul de la diagonale d = 3 m 1,4 = min{m 1,1 + m 2, , m 1,2 + m 3, , m 1,2 + m 4, } = min{4055, 54201, 2856} = François Lemieux (UQAC) La programation dynamique 35 / 51

36 Analyse Pour 0 d n 1 il y a n d éléments sur la diagonale d Pour chaque élément, on doit considérer d possibilités. Le temps d exécution est: Donc T (n) θ(n 3 ) T (n) = n 1 (n d)d d=1 = n n 1 d=1 d n 1 d 2 d=1 = n2 (n 1) 2 n(n 1)(2n 1) 6 = n3 n 6 François Lemieux (UQAC) La programation dynamique 36 / 51

37 Exemple 4: Plus court chemin dans un graphe Entrée: Problème: Un graphe dirigé G = N, A où chaque arc possède une longueur non négative. Trouver la longueur du plus court chemin entre tous les noeuds. On suppose N = {1, 2,..., n} On suppose aussi que G est donné sous forme d une matrice L[1...n, 1...n]. François Lemieux (UQAC) La programation dynamique 37 / 51

38 Algorithme de Floyd Cet algorithme construit une matrice D qui donne la longueur du plus court chemin entre chaque pair de noeud. Idée: Initialise D à L Après l itération k, D donne la longueur du plus court chemin lorsque l on utilise que les noeuds dans {1, 2,..., k} comme noeuds intermédiaires. Définition: D k est la matrice D après l itération k (D 0 = L). François Lemieux (UQAC) La programation dynamique 38 / 51

39 D k [i, j] = min {D k 1 [i, j], D k 1 [i, k] + D k 1 [k, j]} i MD k-1 [i,j] j MD k-1 [i,k] k MD k-1 [k,j] François Lemieux (UQAC) La programation dynamique 39 / 51

40 fonction Floyd(L[1...n,1...n]) D=L pour k=1 à n faire pour i=1 à n faire pour j=1 à n faire D[i,j] = min{d[i,j], D[i,k]+D[k,j]} retourner D Temps dans Θ(n 3 ) François Lemieux (UQAC) La programation dynamique 40 / 51

41 D 0 = L = François Lemieux (UQAC) La programation dynamique 41 / 51

42 D 1 = D 3 = D 2 = D 4 = François Lemieux (UQAC) La programation dynamique 42 / 51

43 Sous-chaîne commune de longueur maximale Entrée Deux chaînes de caractères x = x 1, x 2 x m et y = y 1 y 2 y n. Problème Trouver une chaîne z = z 1 z 2 z k de longueur maximale telle que z est une sous-chaîne de x et y. Exemple: Si x = abcbdab et y = bdcaba alors bca est une sous-chaîne commune tandis que bcba est une sous-chaîne commune de longueur maximale. François Lemieux (UQAC) La programation dynamique 43 / 51

44 Définition: MaxCom(x, y) est l ensemble de toutes les sous-chaînes communes de longueur maximale entre x et y. Observation: Soit x = x 1 x m et y = y 1 y n, deux chaînes et soit z = z 1 z k MaxCom(x, y). 1 Si x m = y n alors 1 z k = x m = y n et 2 z 1 z k 1 MaxCom(x 1 x m 1, y 1 y n 1 ) 2 Si x m y m et z k x m alors z MaxCom(x 1 x m 1, y) 3 Si x m y m et z k y n alors z MaxCom(x, y 1 y n 1 ) François Lemieux (UQAC) La programation dynamique 44 / 51

45 Définition: Soit C i,j la longueur de la sous-chaîne commune de longueur maximale entre x 1 x i et y 1 y j. On a: 0 si i = 0 ou j = 0 C i,j = C i 1,j si i, j > 0 et x i = y j max{c i.j 1, C i 1,j } si i, j > 0 et x i y j François Lemieux (UQAC) La programation dynamique 45 / 51

46 SousChaineMax(x 1 x m, y 1 y n ) pour i=1 à m faire C i,0 = 0 pour j=1 à n faire C 0,j = 0 pour i= 1 à m faire pour j=1 à n faire si (x i = y i ) alors C i,j = C i 1,j sinon si (C i 1,j C i,j 1 ) alors C i,j = C i 1,j sinon C i,j = C i,j 1 François Lemieux (UQAC) La programation dynamique 46 / 51

47 Disposer des mots en paragraphe On désire séparer une séquence de mots m 1,..., m n en une série de lignes constituant un paragraphe. Notre objectif est d éviter autant que possible la perte d espace à la fin de chaque ligne à l exclusion de la dernière. Pour simplifier, on suppose que chaque mot doit être écrit sur une seule ligne et que tous les caractères (incluant les caractères d espacement) ont la même largeur. François Lemieux (UQAC) La programation dynamique 47 / 51

48 Disposer des mots en paragraphe L entrée est composée de n entiers w 1, w 2,... w n représentant le nombre de caractères dans chaque mot ainsi que d un entier L représentant la largeur du paragraphe. Pour simplifier les calculs, on suppose que les mots se terminent tous par un espace supplémentaire. Par exemple, si m i est le mot ou alors w i = 3. On suppose aussi que L inclu un espace supplémentaire (e.g. pour des lignes de 80 caractères on a L = 81). François Lemieux (UQAC) La programation dynamique 48 / 51

49 Disposer des mots en paragraphe La principale contrainte est donc que si les mots i à j sont placés sur la même ligne alors on doit avoir w i + w i w j L. Dans ce cas la perte d espace est X = L (w i + w i w j ) On défini la pénalité d une ligne comme X 3 (on pénalise ainsi d avantage une ligne ayant une grande perte d espace que plusieurs lignes ayant une petite perte d espace). On désire minimiser la pénalité du paragraphe, c est-à-dire la somme des pénalités de chaque ligne. François Lemieux (UQAC) La programation dynamique 49 / 51

50 Disposer des mots en paragraphe Nous utiliserons deux tableaux de taille n: PEN: FIN: Remarque: Pour chaque indice i, PEN[i] contient la pénalité minimale du paragraphe contenant uniquement les mots w i,..., w n. Pour chaque indice i, FIN[i] contient l indice du dernier mot de la première ligne dans la solution optimal du problème restreint aux mots w i,..., w n. Si FIN[i]=k alors PEN[i]=(L (w i + + w k )) 3 + PEN(k+1) François Lemieux (UQAC) La programation dynamique 50 / 51

51 Disposer des mots en paragraphe Paragraphe(w i,..., w n, L) Si PEN[i] est non vide alors return PEN[i] Si (w i + + w n L) alors PEN[i]=0 FIN[i]=n return 0 M= kmin=i k=i tantque (w i + + w k L) faire P= Paragraphe(w k+1,..., w n, L) + (L (w i + + w k )) 3 Si (P < M) alors M=P kmin=k k++ FIN[i]=kmin return PEN[i]=M François Lemieux (UQAC) La programation dynamique 51 / 51

INF 232: Langages et Automates. Travaux Dirigés. Université Joseph Fourier, Université Grenoble 1 Licence Sciences et Technologies

INF 232: Langages et Automates. Travaux Dirigés. Université Joseph Fourier, Université Grenoble 1 Licence Sciences et Technologies INF 232: Langages et Automates Travaux Dirigés Université Joseph Fourier, Université Grenoble 1 Licence Sciences et Technologies Année Académique 2013-2014 Année Académique 2013-2014 UNIVERSITÉ JOSEPH

Plus en détail

2.4 Représentation graphique, tableau de Karnaugh

2.4 Représentation graphique, tableau de Karnaugh 2 Fonctions binaires 45 2.4 Représentation graphique, tableau de Karnaugh On peut définir complètement une fonction binaire en dressant son tableau de Karnaugh, table de vérité à 2 n cases pour n variables

Plus en détail

Calcul matriciel. Définition 1 Une matrice de format (m,n) est un tableau rectangulaire de mn éléments, rangés en m lignes et n colonnes.

Calcul matriciel. Définition 1 Une matrice de format (m,n) est un tableau rectangulaire de mn éléments, rangés en m lignes et n colonnes. 1 Définitions, notations Calcul matriciel Définition 1 Une matrice de format (m,n) est un tableau rectangulaire de mn éléments, rangés en m lignes et n colonnes. On utilise aussi la notation m n pour le

Plus en détail

Exo7. Calculs de déterminants. Fiche corrigée par Arnaud Bodin. Exercice 1 Calculer les déterminants des matrices suivantes : Exercice 2.

Exo7. Calculs de déterminants. Fiche corrigée par Arnaud Bodin. Exercice 1 Calculer les déterminants des matrices suivantes : Exercice 2. Eo7 Calculs de déterminants Fiche corrigée par Arnaud Bodin Eercice Calculer les déterminants des matrices suivantes : Correction Vidéo ( ) 0 6 7 3 4 5 8 4 5 6 0 3 4 5 5 6 7 0 3 5 4 3 0 3 0 0 3 0 0 0 3

Plus en détail

Plus courts chemins, programmation dynamique

Plus courts chemins, programmation dynamique 1 Plus courts chemins, programmation dynamique 1. Plus courts chemins à partir d un sommet 2. Plus courts chemins entre tous les sommets 3. Semi-anneau 4. Programmation dynamique 5. Applications à la bio-informatique

Plus en détail

1 de 46. Algorithmique. Trouver et Trier. Florent Hivert. Mél : Florent.Hivert@lri.fr Page personnelle : http://www.lri.fr/ hivert

1 de 46. Algorithmique. Trouver et Trier. Florent Hivert. Mél : Florent.Hivert@lri.fr Page personnelle : http://www.lri.fr/ hivert 1 de 46 Algorithmique Trouver et Trier Florent Hivert Mél : Florent.Hivert@lri.fr Page personnelle : http://www.lri.fr/ hivert 2 de 46 Algorithmes et structures de données La plupart des bons algorithmes

Plus en détail

Représentation d un entier en base b

Représentation d un entier en base b Représentation d un entier en base b 13 octobre 2012 1 Prérequis Les bases de la programmation en langage sont supposées avoir été travaillées L écriture en base b d un entier est ainsi défini à partir

Plus en détail

Programmation linéaire

Programmation linéaire 1 Programmation linéaire 1. Le problème, un exemple. 2. Le cas b = 0 3. Théorème de dualité 4. L algorithme du simplexe 5. Problèmes équivalents 6. Complexité de l Algorithme 2 Position du problème Soit

Plus en détail

Les structures de données. Rajae El Ouazzani

Les structures de données. Rajae El Ouazzani Les structures de données Rajae El Ouazzani Les arbres 2 1- Définition de l arborescence Une arborescence est une collection de nœuds reliés entre eux par des arcs. La collection peut être vide, cad l

Plus en détail

Souad EL Bernoussi. Groupe d Analyse Numérique et Optimisation Rabat http ://www.fsr.ac.ma/ano/

Souad EL Bernoussi. Groupe d Analyse Numérique et Optimisation Rabat http ://www.fsr.ac.ma/ano/ Recherche opérationnelle Les démonstrations et les exemples seront traités en cours Souad EL Bernoussi Groupe d Analyse Numérique et Optimisation Rabat http ://www.fsr.ac.ma/ano/ Table des matières 1 Programmation

Plus en détail

introduction Chapitre 5 Récursivité Exemples mathématiques Fonction factorielle ø est un arbre (vide) Images récursives

introduction Chapitre 5 Récursivité Exemples mathématiques Fonction factorielle ø est un arbre (vide) Images récursives introduction Chapitre 5 Images récursives http ://univ-tln.fr/~papini/sources/flocon.htm Récursivité http://www.poulain.org/fractales/index.html Image qui se contient elle-même 1 Exemples mathématiques

Plus en détail

Cours d Informatique

Cours d Informatique Cours d Informatique 1ère année SM/SMI 2007/2008, Info 2 Département de Mathématiques et d Informatique, Université Mohammed V elbenani@hotmail.com sayah@fsr.ac.ma 2007/2008 Info2, 1ère année SM/SMI 1

Plus en détail

Introduction à MATLAB R

Introduction à MATLAB R Introduction à MATLAB R Romain Tavenard 10 septembre 2009 MATLAB R est un environnement de calcul numérique propriétaire orienté vers le calcul matriciel. Il se compose d un langage de programmation, d

Plus en détail

MATLAB : COMMANDES DE BASE. Note : lorsqu applicable, l équivalent en langage C est indiqué entre les délimiteurs /* */.

MATLAB : COMMANDES DE BASE. Note : lorsqu applicable, l équivalent en langage C est indiqué entre les délimiteurs /* */. Page 1 de 9 MATLAB : COMMANDES DE BASE Note : lorsqu applicable, l équivalent en langage C est indiqué entre les délimiteurs /* */. Aide help, help nom_de_commande Fenêtre de travail (Command Window) Ligne

Plus en détail

INITIATION AU LANGAGE C SUR PIC DE MICROSHIP

INITIATION AU LANGAGE C SUR PIC DE MICROSHIP COURS PROGRAMMATION INITIATION AU LANGAGE C SUR MICROCONTROLEUR PIC page 1 / 7 INITIATION AU LANGAGE C SUR PIC DE MICROSHIP I. Historique du langage C 1972 : naissance du C dans les laboratoires BELL par

Plus en détail

Programmation linéaire

Programmation linéaire Programmation linéaire DIDIER MAQUIN Ecole Nationale Supérieure d Electricité et de Mécanique Institut National Polytechnique de Lorraine Mathématiques discrètes cours de 2ème année Programmation linéaire

Plus en détail

Architecture des Systèmes d Information Architecture des Systèmes d Information

Architecture des Systèmes d Information Architecture des Systèmes d Information Plan... Tableaux et tris I3 - Algorithmique et programmation 1 Rappels Nicol Delestre 2 Tableaux à n dimensions 3 Initiation aux tris Tableaux - v2.0.1 1 / 27 Tableaux - v2.0.1 2 / 27 Rappels : tableau

Plus en détail

Master IAD Module PS. Reconnaissance de la parole (suite) Alignement temporel et Programmation dynamique. Gaël RICHARD Février 2008

Master IAD Module PS. Reconnaissance de la parole (suite) Alignement temporel et Programmation dynamique. Gaël RICHARD Février 2008 Master IAD Module PS Reconnaissance de la parole (suite) Alignement temporel et Programmation dynamique Gaël RICHARD Février 2008 1 Reconnaissance de la parole Introduction Approches pour la reconnaissance

Plus en détail

Algorithmique et Programmation

Algorithmique et Programmation École Supérieure d Ingénieurs de Poitiers Gea Algorithmique et Programmation Laurent Signac ii Algorithmique et programmation Gea Table des matières Avant Propos v Structures de données Notion de pointeur..............................................

Plus en détail

Chapitre 5 : Flot maximal dans un graphe

Chapitre 5 : Flot maximal dans un graphe Graphes et RO TELECOM Nancy A Chapitre 5 : Flot maximal dans un graphe J.-F. Scheid 1 Plan du chapitre I. Définitions 1 Graphe Graphe valué 3 Représentation d un graphe (matrice d incidence, matrice d

Plus en détail

La programmation linéaire : une introduction. Qu est-ce qu un programme linéaire? Terminologie. Écriture mathématique

La programmation linéaire : une introduction. Qu est-ce qu un programme linéaire? Terminologie. Écriture mathématique La programmation linéaire : une introduction Qu est-ce qu un programme linéaire? Qu est-ce qu un programme linéaire? Exemples : allocation de ressources problème de recouvrement Hypothèses de la programmation

Plus en détail

Chapitre 2. Matrices

Chapitre 2. Matrices Département de mathématiques et informatique L1S1, module A ou B Chapitre 2 Matrices Emmanuel Royer emmanuelroyer@mathuniv-bpclermontfr Ce texte mis gratuitement à votre disposition a été rédigé grâce

Plus en détail

Baccalauréat ES Polynésie (spécialité) 10 septembre 2014 Corrigé

Baccalauréat ES Polynésie (spécialité) 10 septembre 2014 Corrigé Baccalauréat ES Polynésie (spécialité) 10 septembre 2014 Corrigé A. P. M. E. P. Exercice 1 5 points 1. Réponse d. : 1 e Le coefficient directeur de la tangente est négatif et n est manifestement pas 2e

Plus en détail

Architecture des ordinateurs TD1 - Portes logiques et premiers circuits

Architecture des ordinateurs TD1 - Portes logiques et premiers circuits Architecture des ordinateurs TD1 - Portes logiques et premiers circuits 1 Rappel : un peu de logique Exercice 1.1 Remplir la table de vérité suivante : a b a + b ab a + b ab a b 0 0 0 1 1 0 1 1 Exercice

Plus en détail

CORRECTION EXERCICES ALGORITHME 1

CORRECTION EXERCICES ALGORITHME 1 CORRECTION 1 Mr KHATORY (GIM 1 A) 1 Ecrire un algorithme permettant de résoudre une équation du second degré. Afficher les solutions! 2 2 b b 4ac ax bx c 0; solution: x 2a Solution: ALGORITHME seconddegré

Plus en détail

Chapitre 7. Récurrences

Chapitre 7. Récurrences Chapitre 7 Récurrences 333 Plan 1. Introduction 2. Applications 3. Classification des récurrences 4. Résolution de récurrences 5. Résumé et comparaisons Lectures conseillées : I MCS, chapitre 20. I Rosen,

Plus en détail

1 Recherche en table par balayage

1 Recherche en table par balayage 1 Recherche en table par balayage 1.1 Problème de la recherche en table Une table désigne une liste ou un tableau d éléments. Le problème de la recherche en table est celui de la recherche d un élément

Plus en détail

ALGORITHMIQUE II NOTION DE COMPLEXITE. SMI AlgoII

ALGORITHMIQUE II NOTION DE COMPLEXITE. SMI AlgoII ALGORITHMIQUE II NOTION DE COMPLEXITE 1 2 Comment choisir entre différents algorithmes pour résoudre un même problème? Plusieurs critères de choix : Exactitude Simplicité Efficacité (but de ce chapitre)

Plus en détail

AC AB. A B C x 1. x + 1. d où. Avec un calcul vu au lycée, on démontre que cette solution admet deux solutions dont une seule nous intéresse : x =

AC AB. A B C x 1. x + 1. d où. Avec un calcul vu au lycée, on démontre que cette solution admet deux solutions dont une seule nous intéresse : x = LE NOMBRE D OR Présentation et calcul du nombre d or Euclide avait trouvé un moyen de partager en deu un segment selon en «etrême et moyenne raison» Soit un segment [AB]. Le partage d Euclide consiste

Plus en détail

Cours Informatique Master STEP

Cours Informatique Master STEP Cours Informatique Master STEP Bases de la programmation: Compilateurs/logiciels Algorithmique et structure d'un programme Programmation en langage structuré (Fortran 90) Variables, expressions, instructions

Plus en détail

Définition 0,752 = 0,7 + 0,05 + 0,002 SYSTÈMES DE NUMÉRATION POSITIONNELS = 7 10 1 + 5 10 2 + 2 10 3

Définition 0,752 = 0,7 + 0,05 + 0,002 SYSTÈMES DE NUMÉRATION POSITIONNELS = 7 10 1 + 5 10 2 + 2 10 3 8 Systèmes de numération INTRODUCTION SYSTÈMES DE NUMÉRATION POSITIONNELS Dans un système positionnel, le nombre de symboles est fixe On représente par un symbole chaque chiffre inférieur à la base, incluant

Plus en détail

IFT1215 Introduction aux systèmes informatiques

IFT1215 Introduction aux systèmes informatiques Introduction aux circuits logiques de base IFT25 Architecture en couches Niveau 5 Niveau 4 Niveau 3 Niveau 2 Niveau Niveau Couche des langages d application Traduction (compilateur) Couche du langage d

Plus en détail

Sujet proposé par Yves M. LEROY. Cet examen se compose d un exercice et de deux problèmes. Ces trois parties sont indépendantes.

Sujet proposé par Yves M. LEROY. Cet examen se compose d un exercice et de deux problèmes. Ces trois parties sont indépendantes. Promotion X 004 COURS D ANALYSE DES STRUCTURES MÉCANIQUES PAR LA MÉTHODE DES ELEMENTS FINIS (MEC 568) contrôle non classant (7 mars 007, heures) Documents autorisés : polycopié ; documents et notes de

Plus en détail

Algorithmes récursifs

Algorithmes récursifs Licence 1 MASS - Algorithmique et Calcul Formel S. Verel, M.-E. Voge www.i3s.unice.fr/ verel 23 mars 2007 Objectifs de la séance 3 écrire des algorithmes récursifs avec un seul test rechercher un élément

Plus en détail

Eléments de Théorie des Graphes et Programmation Linéaire

Eléments de Théorie des Graphes et Programmation Linéaire INSTITUT NATIONAL POLYTECHNIQUE DE LORRAINE Ecole Nationale Supérieure d Electricité et de Mécanique Eléments de Théorie des Graphes et Programmation Linéaire Didier Maquin Professeur à l INPL Version

Plus en détail

Optimisation Discrète

Optimisation Discrète Prof F Eisenbrand EPFL - DISOPT Optimisation Discrète Adrian Bock Semestre de printemps 2011 Série 7 7 avril 2011 Exercice 1 i Considérer le programme linéaire max{c T x : Ax b} avec c R n, A R m n et

Plus en détail

Algèbre binaire et Circuits logiques (2007-2008)

Algèbre binaire et Circuits logiques (2007-2008) Université Mohammed V Faculté des Sciences Département de Mathématiques et Informatique Filière : SMI Algèbre binaire et Circuits logiques (27-28) Prof. Abdelhakim El Imrani Plan. Algèbre de Boole 2. Circuits

Plus en détail

Licence Sciences et Technologies Examen janvier 2010

Licence Sciences et Technologies Examen janvier 2010 Université de Provence Introduction à l Informatique Licence Sciences et Technologies Examen janvier 2010 Année 2009-10 Aucun document n est autorisé Les exercices peuvent être traités dans le désordre.

Plus en détail

Probabilités sur un univers fini

Probabilités sur un univers fini [http://mp.cpgedupuydelome.fr] édité le 7 août 204 Enoncés Probabilités sur un univers fini Evènements et langage ensembliste A quelle condition sur (a, b, c, d) ]0, [ 4 existe-t-il une probabilité P sur

Plus en détail

CCP PSI - 2010 Mathématiques 1 : un corrigé

CCP PSI - 2010 Mathématiques 1 : un corrigé CCP PSI - 00 Mathématiques : un corrigé Première partie. Définition d une structure euclidienne sur R n [X]... B est clairement symétrique et linéaire par rapport à sa seconde variable. De plus B(P, P

Plus en détail

Résolution d équations non linéaires

Résolution d équations non linéaires Analyse Numérique Résolution d équations non linéaires Said EL HAJJI et Touria GHEMIRES Université Mohammed V - Agdal. Faculté des Sciences Département de Mathématiques. Laboratoire de Mathématiques, Informatique

Plus en détail

Jean-Philippe Préaux http://www.i2m.univ-amu.fr/~preaux

Jean-Philippe Préaux http://www.i2m.univ-amu.fr/~preaux Colonies de fourmis Comment procèdent les colonies de fourmi pour déterminer un chemin presque géodésique de la fourmilière à un stock de nourriture? Les premières fourmis se déplacent au hasard. Les fourmis

Plus en détail

Licence ST Université Claude Bernard Lyon I LIF1 : Algorithmique et Programmation C Bases du langage C 1 Conclusion de la dernière fois Introduction de l algorithmique générale pour permettre de traiter

Plus en détail

Définitions. Numéro à préciser. (Durée : )

Définitions. Numéro à préciser. (Durée : ) Numéro à préciser (Durée : ) On étudie dans ce problème l ordre lexicographique pour les mots sur un alphabet fini et plusieurs constructions des cycles de De Bruijn. Les trois parties sont largement indépendantes.

Plus en détail

Cours 02 : Problème général de la programmation linéaire

Cours 02 : Problème général de la programmation linéaire Cours 02 : Problème général de la programmation linéaire Cours 02 : Problème général de la Programmation Linéaire. 5 . Introduction Un programme linéaire s'écrit sous la forme suivante. MinZ(ou maxw) =

Plus en détail

Cours d introduction à l informatique. Partie 2 : Comment écrire un algorithme? Qu est-ce qu une variable? Expressions et instructions

Cours d introduction à l informatique. Partie 2 : Comment écrire un algorithme? Qu est-ce qu une variable? Expressions et instructions Cours d introduction à l informatique Partie 2 : Comment écrire un algorithme? Qu est-ce qu une variable? Expressions et instructions Qu est-ce qu un Une recette de cuisine algorithme? Protocole expérimental

Plus en détail

Priorités de calcul :

Priorités de calcul : EXERCICES DE REVISION POUR LE PASSAGE EN QUATRIEME : Priorités de calcul : Exercice 1 : Calcule en détaillant : A = 4 + 5 6 + 7 B = 6 3 + 5 C = 35 5 3 D = 6 7 + 8 E = 38 6 3 + 7 Exercice : Calcule en détaillant

Plus en détail

Plan du cours 2014-2015. Cours théoriques. 29 septembre 2014

Plan du cours 2014-2015. Cours théoriques. 29 septembre 2014 numériques et Institut d Astrophysique et de Géophysique (Bât. B5c) Bureau 0/13 email:.@ulg.ac.be Tél.: 04-3669771 29 septembre 2014 Plan du cours 2014-2015 Cours théoriques 16-09-2014 numériques pour

Plus en détail

Durée de L épreuve : 2 heures. Barème : Exercice n 4 : 1 ) 1 point 2 ) 2 points 3 ) 1 point

Durée de L épreuve : 2 heures. Barème : Exercice n 4 : 1 ) 1 point 2 ) 2 points 3 ) 1 point 03 Mai 2013 Collège Oasis Durée de L épreuve : 2 heures. apple Le sujet comporte 4 pages et est présenté en livret ; apple La calculatrice est autorisée ; apple 4 points sont attribués à la qualité de

Plus en détail

Organigramme / Algorigramme Dossier élève 1 SI

Organigramme / Algorigramme Dossier élève 1 SI Organigramme / Algorigramme Dossier élève 1 SI CI 10, I11 ; CI 11, I10 C24 Algorithmique 8 février 2009 (13:47) 1. Introduction Un organigramme (ou algorigramme, lorsqu il est plus particulièrement appliqué

Plus en détail

Projet Matlab : un logiciel de cryptage

Projet Matlab : un logiciel de cryptage Projet Matlab : un logiciel de cryptage La stéganographie (du grec steganos : couvert et graphein : écriture) consiste à dissimuler une information au sein d'une autre à caractère anodin, de sorte que

Plus en détail

Formats d images. 1 Introduction

Formats d images. 1 Introduction Formats d images 1 Introduction Lorsque nous utilisons un ordinateur ou un smartphone l écran constitue un élément principal de l interaction avec la machine. Les images sont donc au cœur de l utilisation

Plus en détail

Optimisation Combinatoire et Colonies de Fourmis Nicolas Monmarche April 21, 1999 Sommaire Inspiration biologiques Ant Colony Optimization Applications TSP QAP Flow Shop Problemes dynamiques 1 Historique

Plus en détail

TD3: tableaux avancées, première classe et chaînes

TD3: tableaux avancées, première classe et chaînes TD3: tableaux avancées, première classe et chaînes de caractères 1 Lestableaux 1.1 Élémentsthéoriques Déclaration des tableaux Pour la déclaration des tableaux, deux notations sont possibles. La première

Plus en détail

Les droites (d 1 ) et (d 2 ) sont sécantes en A Le point A est le point d intersection des 2 droites

Les droites (d 1 ) et (d 2 ) sont sécantes en A Le point A est le point d intersection des 2 droites I Droites perpendiculaires Lorsque deux droites se coupent, on dit qu elles sont sécantes Les droites (d 1 ) et (d 2 ) sont sécantes en A Le point A est le point d intersection des 2 droites Lorsque deux

Plus en détail

Chp. 4. Minimisation d une fonction d une variable

Chp. 4. Minimisation d une fonction d une variable Chp. 4. Minimisation d une fonction d une variable Avertissement! Dans tout ce chapître, I désigne un intervalle de IR. 4.1 Fonctions convexes d une variable Définition 9 Une fonction ϕ, partout définie

Plus en détail

4 Exemples de problèmes MapReduce incrémentaux

4 Exemples de problèmes MapReduce incrémentaux 4 Exemples de problèmes MapReduce incrémentaux 1 / 32 Calcul des plus courtes distances à un noeud d un graphe Calcul des plus courts chemins entre toutes les paires de noeuds d un graphe Algorithme PageRank

Plus en détail

1 Introduction au codage

1 Introduction au codage CélestineOscarDésiréAnatoleGastonEugène 1 Introduction au codage 1.1 Les ensembles L ensemble de tout les ensembles est Dieu lui-même. Kantor Ensemble des parties d un ensemble désigne l ensemble des sous-ensembles

Plus en détail

Atelier Transversal AT11. Activité «Fourmis» Pierre Chauvet. pierre.chauvet@uco.fr

Atelier Transversal AT11. Activité «Fourmis» Pierre Chauvet. pierre.chauvet@uco.fr Atelier Transversal AT11 Activité «Fourmis» Pierre Chauvet pierre.chauvet@uco.fr Ant : un algorithme inspiré de l éthologie L éthologie Etude scientifique des comportements animaux, avec une perspective

Plus en détail

Cours d initiation à la programmation en C++ Johann Cuenin

Cours d initiation à la programmation en C++ Johann Cuenin Cours d initiation à la programmation en C++ Johann Cuenin 11 octobre 2014 2 Table des matières 1 Introduction 5 2 Bases de la programmation en C++ 7 3 Les types composés 9 3.1 Les tableaux.............................

Plus en détail

Algorithmique et programmation : les bases (VBA) Corrigé

Algorithmique et programmation : les bases (VBA) Corrigé PAD INPT ALGORITHMIQUE ET PROGRAMMATION 1 Cours VBA, Semaine 1 mai juin 2006 Corrigé Résumé Ce document décrit l écriture dans le langage VBA des éléments vus en algorithmique. Table des matières 1 Pourquoi

Plus en détail

Algorithmique et Programmation, IMA

Algorithmique et Programmation, IMA Algorithmique et Programmation, IMA Cours 2 : C Premier Niveau / Algorithmique Université Lille 1 - Polytech Lille Notations, identificateurs Variables et Types de base Expressions Constantes Instructions

Plus en détail

1/24. I passer d un problème exprimé en français à la réalisation d un. I expressions arithmétiques. I structures de contrôle (tests, boucles)

1/24. I passer d un problème exprimé en français à la réalisation d un. I expressions arithmétiques. I structures de contrôle (tests, boucles) 1/4 Objectif de ce cours /4 Objectifs de ce cours Introduction au langage C - Cours Girardot/Roelens Septembre 013 Du problème au programme I passer d un problème exprimé en français à la réalisation d

Plus en détail

Introduction à la théorie des graphes. Solutions des exercices

Introduction à la théorie des graphes. Solutions des exercices CAHIERS DE LA CRM Introduction à la théorie des graphes Solutions des exercices Didier Müller CAHIER N O 6 COMMISSION ROMANDE DE MATHÉMATIQUE 1 Graphes non orientés Exercice 1 On obtient le graphe biparti

Plus en détail

Programmation C++ (débutant)/instructions for, while et do...while

Programmation C++ (débutant)/instructions for, while et do...while Programmation C++ (débutant)/instructions for, while et do...while 1 Programmation C++ (débutant)/instructions for, while et do...while Le cours du chapitre 4 : le for, while et do...while La notion de

Plus en détail

Licence Bio Informatique Année 2004-2005. Premiers pas. Exercice 1 Hello World parce qu il faut bien commencer par quelque chose...

Licence Bio Informatique Année 2004-2005. Premiers pas. Exercice 1 Hello World parce qu il faut bien commencer par quelque chose... Université Paris 7 Programmation Objet Licence Bio Informatique Année 2004-2005 TD n 1 - Correction Premiers pas Exercice 1 Hello World parce qu il faut bien commencer par quelque chose... 1. Enregistrez

Plus en détail

Algorithmes de Transmission et de Recherche de l Information dans les Réseaux de Communication. Philippe Robert INRIA Paris-Rocquencourt

Algorithmes de Transmission et de Recherche de l Information dans les Réseaux de Communication. Philippe Robert INRIA Paris-Rocquencourt Algorithmes de Transmission et de Recherche de l Information dans les Réseaux de Communication Philippe Robert INRIA Paris-Rocquencourt Le 2 juin 2010 Présentation Directeur de recherche à l INRIA Institut

Plus en détail

Arithmétique binaire. Chapitre. 5.1 Notions. 5.1.1 Bit. 5.1.2 Mot

Arithmétique binaire. Chapitre. 5.1 Notions. 5.1.1 Bit. 5.1.2 Mot Chapitre 5 Arithmétique binaire L es codes sont manipulés au quotidien sans qu on s en rende compte, et leur compréhension est quasi instinctive. Le seul fait de lire fait appel au codage alphabétique,

Plus en détail

Exo7. Matrice d une application linéaire. Corrections d Arnaud Bodin.

Exo7. Matrice d une application linéaire. Corrections d Arnaud Bodin. Exo7 Matrice d une application linéaire Corrections d Arnaud odin. Exercice Soit R muni de la base canonique = ( i, j). Soit f : R R la projection sur l axe des abscisses R i parallèlement à R( i + j).

Plus en détail

Exprimer ce coefficient de proportionnalité sous forme de pourcentage : 3,5 %

Exprimer ce coefficient de proportionnalité sous forme de pourcentage : 3,5 % 23 CALCUL DE L INTÉRÊT Tau d intérêt Paul et Rémi ont reçu pour Noël, respectivement, 20 et 80. Ils placent cet argent dans une banque, au même tau. Au bout d une année, ce placement leur rapportera une

Plus en détail

Algorithmes de recherche

Algorithmes de recherche Algorithmes de recherche 1 Résolution de problèmes par recherche On représente un problème par un espace d'états (arbre/graphe). Chaque état est une conguration possible du problème. Résoudre le problème

Plus en détail

Les arbres binaires de recherche

Les arbres binaires de recherche Institut Galilée Année 2010-2011 Algorithmique et arbres L2 TD 6 Les arbres binaires de recherche Type en C des arbres binaires (également utilisé pour les ABR) : typedef struct noeud_s { struct noeud_s

Plus en détail

Algorithmique, Structures de données et langage C

Algorithmique, Structures de données et langage C UNIVERSITE PAUL SABATIER TOULOUSE III Algorithmique, Structures de données et langage C L3 IUP AISEM/ICM Janvier 2005 J.M. ENJALBERT Chapitre 1 Rappels et compléments de C 1.1 Structures Une structure

Plus en détail

6. Hachage. Accès aux données d'une table avec un temps constant Utilisation d'une fonction pour le calcul d'adresses

6. Hachage. Accès aux données d'une table avec un temps constant Utilisation d'une fonction pour le calcul d'adresses 6. Hachage Accès aux données d'une table avec un temps constant Utilisation d'une fonction pour le calcul d'adresses PLAN Définition Fonctions de Hachage Méthodes de résolution de collisions Estimation

Plus en détail

Cours d analyse numérique SMI-S4

Cours d analyse numérique SMI-S4 ours d analyse numérique SMI-S4 Introduction L objet de l analyse numérique est de concevoir et d étudier des méthodes de résolution de certains problèmes mathématiques, en général issus de problèmes réels,

Plus en détail

Projet d informatique M1BI : Compression et décompression de texte. 1 Généralités sur la compression/décompression de texte

Projet d informatique M1BI : Compression et décompression de texte. 1 Généralités sur la compression/décompression de texte Projet d informatique M1BI : Compression et décompression de texte Le but de ce projet est de coder un programme réalisant de la compression et décompression de texte. On se proposera de coder deux algorithmes

Plus en détail

Initiation à la Programmation en Logique avec SISCtus Prolog

Initiation à la Programmation en Logique avec SISCtus Prolog Initiation à la Programmation en Logique avec SISCtus Prolog Identificateurs Ils sont représentés par une suite de caractères alphanumériques commençant par une lettre minuscule (les lettres accentuées

Plus en détail

Objectifs. Clustering. Principe. Applications. Applications. Cartes de crédits. Remarques. Biologie, Génomique

Objectifs. Clustering. Principe. Applications. Applications. Cartes de crédits. Remarques. Biologie, Génomique Objectifs Clustering On ne sait pas ce qu on veut trouver : on laisse l algorithme nous proposer un modèle. On pense qu il existe des similarités entre les exemples. Qui se ressemble s assemble p. /55

Plus en détail

Théorie et codage de l information

Théorie et codage de l information Théorie et codage de l information Les codes linéaires - Chapitre 6 - Principe Définition d un code linéaire Soient p un nombre premier et s est un entier positif. Il existe un unique corps de taille q

Plus en détail

Cours 7 : Utilisation de modules sous python

Cours 7 : Utilisation de modules sous python Cours 7 : Utilisation de modules sous python 2013/2014 Utilisation d un module Importer un module Exemple : le module random Importer un module Exemple : le module random Importer un module Un module est

Plus en détail

Rappels sur les suites - Algorithme

Rappels sur les suites - Algorithme DERNIÈRE IMPRESSION LE 14 septembre 2015 à 12:36 Rappels sur les suites - Algorithme Table des matières 1 Suite : généralités 2 1.1 Déition................................. 2 1.2 Exemples de suites............................

Plus en détail

Compter à Babylone. L écriture des nombres

Compter à Babylone. L écriture des nombres Compter à Babylone d après l article de Christine Proust «Le calcul sexagésimal en Mésopotamie : enseignement dans les écoles de scribes» disponible sur http://www.dma.ens.fr/culturemath/ Les mathématiciens

Plus en détail

Exercices du Cours de la programmation linéaire donné par le Dr. Ali DERBALA

Exercices du Cours de la programmation linéaire donné par le Dr. Ali DERBALA 75. Un plombier connaît la disposition de trois tuyaux sous des dalles ( voir figure ci dessous ) et il lui suffit de découvrir une partie de chacun d eux pour pouvoir y poser les robinets. Il cherche

Plus en détail

Quelques Algorithmes simples

Quelques Algorithmes simples Quelques Algorithmes simples Irène Guessarian ig@liafa.jussieu.fr 10 janvier 2012 Je remercie Patrick Cegielski de son aide efficace pour la programmation Java ; la section sur le codage de Huffman a été

Plus en détail

Master d Informatique M1 Université Paris 7 - Denis Diderot Travail de Recherche Encadré Surf Bayesien

Master d Informatique M1 Université Paris 7 - Denis Diderot Travail de Recherche Encadré Surf Bayesien Master d Informatique M1 Université Paris 7 - Denis Diderot Travail de Recherche Encadré Surf Bayesien Denis Cousineau Sous la direction de Roberto di Cosmo Juin 2005 1 Table des matières 1 Présentation

Plus en détail

4. Les structures de données statiques

4. Les structures de données statiques 4. Les structures de données statiques 4.1 Tableaux à une dimension 4.1.1 Introduction Imaginons que dans un programme, nous ayons besoin simultanément de 25 valeurs (par exemple, des notes pour calculer

Plus en détail

Découverte du tableur CellSheet

Découverte du tableur CellSheet Découverte du tableur CellSheet l application pour TI-83 Plus et TI-84 Plus. Réalisé par Guy Juge Professeur de mathématiques et formateur IUFM de l académie de Caen Pour l équipe des formateurs T 3 Teachers

Plus en détail

ARBRES BINAIRES DE RECHERCHE

ARBRES BINAIRES DE RECHERCHE ARBRES BINAIRES DE RECHERCHE Table de symboles Recherche : opération fondamentale données : éléments avec clés Type abstrait d une table de symboles (symbol table) ou dictionnaire Objets : ensembles d

Plus en détail

La classification automatique de données quantitatives

La classification automatique de données quantitatives La classification automatique de données quantitatives 1 Introduction Parmi les méthodes de statistique exploratoire multidimensionnelle, dont l objectif est d extraire d une masse de données des informations

Plus en détail

IMAGES NUMÉRIQUES MATRICIELLES EN SCILAB

IMAGES NUMÉRIQUES MATRICIELLES EN SCILAB IMAGES NUMÉRIQUES MATRICIELLES EN SCILAB Ce document, écrit par des animateurs de l IREM de Besançon, a pour objectif de présenter quelques unes des fonctions du logiciel Scilab, celles qui sont spécifiques

Plus en détail

Chap 4: Analyse syntaxique. Prof. M.D. RAHMANI Compilation SMI- S5 2013/14 1

Chap 4: Analyse syntaxique. Prof. M.D. RAHMANI Compilation SMI- S5 2013/14 1 Chap 4: Analyse syntaxique 1 III- L'analyse syntaxique: 1- Le rôle d'un analyseur syntaxique 2- Grammaires non contextuelles 3- Ecriture d'une grammaire 4- Les méthodes d'analyse 5- L'analyse LL(1) 6-

Plus en détail

Baccalauréat L spécialité, Métropole et Réunion, 19 juin 2009 Corrigé.

Baccalauréat L spécialité, Métropole et Réunion, 19 juin 2009 Corrigé. Baccalauréat L spécialité, Métropole et Réunion, 19 juin 2009 Corrigé. L usage d une calculatrice est autorisé Durée : 3heures Deux annexes sont à rendre avec la copie. Exercice 1 5 points 1_ Soit f la

Plus en détail

L exclusion mutuelle distribuée

L exclusion mutuelle distribuée L exclusion mutuelle distribuée L algorithme de L Amport L algorithme est basé sur 2 concepts : L estampillage des messages La distribution d une file d attente sur l ensemble des sites du système distribué

Plus en détail

TP, première séquence d exercices.

TP, première séquence d exercices. TP, première séquence d exercices. Benoît Valiron benoit.valiron@lipn.univ-paris13.fr 7 novembre 2010 Introduction Vous écrirez les réponses aux questions courtes sur une feuille à rendre à la fin de la

Plus en détail

FctsAffines.nb 1. Mathématiques, 1-ère année Edition 2007-2008. Fonctions affines

FctsAffines.nb 1. Mathématiques, 1-ère année Edition 2007-2008. Fonctions affines FctsAffines.nb 1 Mathématiques, 1-ère année Edition 2007-2008 Fonctions affines Supports de cours de mathématiques de degré secondaire II, lien hpertete vers la page mère http://www.deleze.name/marcel/sec2/inde.html

Plus en détail

INTRODUCTION À LA GESTION DE PROJET AGILE (BACKLOG, TABLEAUX DE BORD, BURNDOWN, PLANIFICATION D ITERATIONS)

INTRODUCTION À LA GESTION DE PROJET AGILE (BACKLOG, TABLEAUX DE BORD, BURNDOWN, PLANIFICATION D ITERATIONS) INTRODUCTION À LA GESTION DE PROJET AGILE (BACKLOG, TABLEAUX DE BORD, BURNDOWN, PLANIFICATION D ITERATIONS) 1 Introduction à la gestion de projet Agile Sommaire AVERTISSEMENT... 2 APERÇU... 3 EXERCICE

Plus en détail

1S Modèles de rédaction Enoncés

1S Modèles de rédaction Enoncés Par l équipe des professeurs de 1S du lycée Parc de Vilgénis 1S Modèles de rédaction Enoncés Produit scalaire & Corrigés Exercice 1 : définition du produit scalaire Soit ABC un triangle tel que AB, AC

Plus en détail

Feuille TD n 1 Exercices d algorithmique éléments de correction

Feuille TD n 1 Exercices d algorithmique éléments de correction Master Sciences, Technologies, Santé Mention Mathématiques, spécialité Enseignement des mathématiques Algorithmique et graphes, thèmes du second degré Feuille TD n 1 Exercices d algorithmique éléments

Plus en détail

Exercice : la frontière des portefeuilles optimaux sans actif certain

Exercice : la frontière des portefeuilles optimaux sans actif certain Exercice : la frontière des portefeuilles optimaux sans actif certain Philippe Bernard Ingénierie Economique & Financière Université Paris-Dauphine Février 0 On considère un univers de titres constitué

Plus en détail

Algorithmique, graphes et programmation dynamique Notes de Cours Rapport de Travaux Pratiques. Laurent Canet

Algorithmique, graphes et programmation dynamique Notes de Cours Rapport de Travaux Pratiques. Laurent Canet Algorithmique, graphes et programmation dynamique Notes de Cours Rapport de Travaux Pratiques Laurent Canet Le 2 juillet 2003 Table des matières I IN202 - Algorithmique 6 1 Système formel de preuve de

Plus en détail