Table des Matières. Satisfaisabilité en logique propositionnelle ES pour les problèmes d optimisation Élagage à l aide d heuristiques Le Labyrinthe

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

Download "Table des Matières. Satisfaisabilité en logique propositionnelle ES pour les problèmes d optimisation Élagage à l aide d heuristiques Le Labyrinthe"

Transcription

1 Table des Matières Essais Successifs (ES) 1 Rappels : Fonctions et Ordres de grandeurs 2 Diviser pour Régner 3 Approches Gloutonnes 4 Programmation Dynamique 5 Essais Successifs (ES) Le problème des n reines Énumération des parties à somme nulle Le schéma général des ES Satisfaisabilité en logique propositionnelle ES pour les problèmes d optimisation Élagage à l aide d heuristiques Le Labyrinthe S. Pinchinat (IRISA, Université de Rennes 1) Méthodes algorithmiques UE ALG année / 198

2 Le problème des n reines Essais Successifs (ES) Le problème des n reines Problème (n Reines) Entrée : Un entier n. Sortie : Une disposition de n reines sur l échiquier n n tel que deux reines quelconques ne soient pas en prise mutuelle, ou la réponse qu il n y a pas de solution. X X X X X X X X X X X X X X X X X X X X X X X X X Échiquer Zone prise par une reine S. Pinchinat (IRISA, Université de Rennes 1) Méthodes algorithmiques UE ALG année / 198

3 Comment chercher? Essais Successifs (ES) Le problème des n reines L approche Brute Force Il y a 64 8 = combinaisons possibles! S. Pinchinat (IRISA, Université de Rennes 1) Méthodes algorithmiques UE ALG année / 198

4 Comment chercher? Essais Successifs (ES) Le problème des n reines L approche Brute Force Il y a 64 8 = combinaisons possibles! MAIS on peut chercher plus vite si la valeur pour la reine suivante est prise parmi les valeurs compatibles avec les choix précédents. S. Pinchinat (IRISA, Université de Rennes 1) Méthodes algorithmiques UE ALG année / 198

5 Comment chercher? Essais Successifs (ES) Le problème des n reines L approche Brute Force Il y a 64 8 = combinaisons possibles! MAIS on peut chercher plus vite si la valeur pour la reine suivante est prise parmi les valeurs compatibles avec les choix précédents. Forcément Une reine par ligne 8 8 = << 64 8 solutions à essayer. Forcément Une reine par colonne 8! = << S. Pinchinat (IRISA, Université de Rennes 1) Méthodes algorithmiques UE ALG année / 198

6 Modélisation du problème des 4 reines Le problème des n reines Une solution est un vecteur X [1..4] où chaque X [i] dénote une colonne de sorte que la reine i est à la case (i, X [i]). On essaie les X [i] successivement, on note Diagfree(i) pour aucune des cases de (1, X [1]) à (i, X [i]) ne sont sur une même diagonale. Algorithm 23 pour 4 reines 1: Sol S. Pinchinat (IRISA, Université de Rennes 1) Méthodes algorithmiques UE ALG année / 198

7 Modélisation du problème des 4 reines Le problème des n reines Une solution est un vecteur X [1..4] où chaque X [i] dénote une colonne de sorte que la reine i est à la case (i, X [i]). On essaie les X [i] successivement, on note Diagfree(i) pour aucune des cases de (1, X [1]) à (i, X [i]) ne sont sur une même diagonale. Algorithm 24 pour 4 reines 1: Sol 2: for X [1] = 1 à 4 do S. Pinchinat (IRISA, Université de Rennes 1) Méthodes algorithmiques UE ALG année / 198

8 Modélisation du problème des 4 reines Le problème des n reines Une solution est un vecteur X [1..4] où chaque X [i] dénote une colonne de sorte que la reine i est à la case (i, X [i]). On essaie les X [i] successivement, on note Diagfree(i) pour aucune des cases de (1, X [1]) à (i, X [i]) ne sont sur une même diagonale. Algorithm 25 pour 4 reines 1: Sol 2: for X [1] = 1 à 4 do 3: for X [2] = 1 à 4 do S. Pinchinat (IRISA, Université de Rennes 1) Méthodes algorithmiques UE ALG année / 198

9 Modélisation du problème des 4 reines Le problème des n reines Une solution est un vecteur X [1..4] où chaque X [i] dénote une colonne de sorte que la reine i est à la case (i, X [i]). On essaie les X [i] successivement, on note Diagfree(i) pour aucune des cases de (1, X [1]) à (i, X [i]) ne sont sur une même diagonale. Algorithm 26 pour 4 reines 1: Sol 2: for X [1] = 1 à 4 do 3: for X [2] = 1 à 4 do 4: if X [2] = X [1] and Diagfree(2) then S. Pinchinat (IRISA, Université de Rennes 1) Méthodes algorithmiques UE ALG année / 198

10 Modélisation du problème des 4 reines Le problème des n reines Une solution est un vecteur X [1..4] où chaque X [i] dénote une colonne de sorte que la reine i est à la case (i, X [i]). On essaie les X [i] successivement, on note Diagfree(i) pour aucune des cases de (1, X [1]) à (i, X [i]) ne sont sur une même diagonale. Algorithm 27 pour 4 reines 1: Sol 2: for X [1] = 1 à 4 do 3: for X [2] = 1 à 4 do 4: if X [2] = X [1] and Diagfree(2) then 5: for X [3] = 1 à 4 do S. Pinchinat (IRISA, Université de Rennes 1) Méthodes algorithmiques UE ALG année / 198

11 Modélisation du problème des 4 reines Le problème des n reines Une solution est un vecteur X [1..4] où chaque X [i] dénote une colonne de sorte que la reine i est à la case (i, X [i]). On essaie les X [i] successivement, on note Diagfree(i) pour aucune des cases de (1, X [1]) à (i, X [i]) ne sont sur une même diagonale. Algorithm 28 pour 4 reines 1: Sol 2: for X [1] = 1 à 4 do 3: for X [2] = 1 à 4 do 4: if X [2] = X [1] and Diagfree(2) then 5: for X [3] = 1 à 4 do 6: if X [3] = X [1] and X [3] = X [2] and Diagfree(3) then S. Pinchinat (IRISA, Université de Rennes 1) Méthodes algorithmiques UE ALG année / 198

12 Modélisation du problème des 4 reines Le problème des n reines Une solution est un vecteur X [1..4] où chaque X [i] dénote une colonne de sorte que la reine i est à la case (i, X [i]). On essaie les X [i] successivement, on note Diagfree(i) pour aucune des cases de (1, X [1]) à (i, X [i]) ne sont sur une même diagonale. Algorithm 29 pour 4 reines 1: Sol 2: for X [1] = 1 à 4 do 3: for X [2] = 1 à 4 do 4: if X [2] = X [1] and Diagfree(2) then 5: for X [3] = 1 à 4 do 6: if X [3] = X [1] and X [3] = X [2] and Diagfree(3) then 7: for X [4] = 1 à 4 do S. Pinchinat (IRISA, Université de Rennes 1) Méthodes algorithmiques UE ALG année / 198

13 Modélisation du problème des 4 reines Le problème des n reines Une solution est un vecteur X [1..4] où chaque X [i] dénote une colonne de sorte que la reine i est à la case (i, X [i]). On essaie les X [i] successivement, on note Diagfree(i) pour aucune des cases de (1, X [1]) à (i, X [i]) ne sont sur une même diagonale. Algorithm 30 pour 4 reines 1: Sol 2: for X [1] = 1 à 4 do 3: for X [2] = 1 à 4 do 4: if X [2] = X [1] and Diagfree(2) then 5: for X [3] = 1 à 4 do 6: if X [3] = X [1] and X [3] = X [2] and Diagfree(3) then 7: for X [4] = 1 à 4 do 8: if X [4] = X [1] and X [4] = X [2] and X [4] = X [3] and Diagfree(4) then S. Pinchinat (IRISA, Université de Rennes 1) Méthodes algorithmiques UE ALG année / 198

14 1: Sol 2: for X [1] = 1 à 4 do 3: for X [2] = 1 à 4 do 4: if X [2] = X [1] and Diagfree(2) then 5: for X [3] = 1 à 4 do 6: if X [3] = X [1] and X [3] = X [2] and Diagfree(3) then 7: for X [4] = 1 à 4 do 8: if X [4] = X [1] and X [4] = X [2] and X [4] = X [3] and Diagfree(4) then 9: Sol Sol {X } X [1..4] est une solution 10: end if 11: end for 12: end if 13: end for 14: end if S. 15: Pinchinat end (IRISA, for Université de Rennes 1) Méthodes algorithmiques UE ALG année / 198 Essais Successifs (ES) Modélisation du problème des 4 reines Le problème des n reines Une solution est un vecteur X [1..4] où chaque X [i] dénote une colonne de sorte que la reine i est à la case (i, X [i]). On essaie les X [i] successivement, on note Diagfree(i) pour aucune des cases de (1, X [1]) à (i, X [i]) ne sont sur une même diagonale. Algorithm 31 pour 4 reines

15 Modélisation du problème des n reines Le problème des n reines Une solution est un vecteur X [1..n] où chaque X [i] dénote une colonne. La reine i est à la case (i, X [i]). Algorithm 32 pour n reines 1: Sol 2: for X [1] = 1 à n do 3: for X [2] = 1 à n do 4: if X [2] = X [1] and Diagfree(2) then 5:... 6: for X [n] = 1 à n do 7: if X [n] = X [1] and... X [n] = X [n 1] and Diagfree(n) then 8: Sol Sol {X } X est une solution 9: end if 10:... 11: end for 12: end if 13: end for 14: end for S. Pinchinat (IRISA, Université de Rennes 1) Méthodes algorithmiques UE ALG année / 198

16 1: Sol 2: for X [1] = 1 à n do 3: for X [2] = 1 à n do 4: if PP 2 (X 1, X 2 ) then 5:... 6: for X [n] = 1 à n do 7: if PP n (X 1,..., X n ) then 8: Sol Sol {X } X est une solution 9: end if 10:... 11: end for 12: end if 13: end for S. Pinchinat (IRISA, Université de Rennes 1) Méthodes algorithmiques UE ALG année / 198 Essais Successifs (ES) Algorithme des n reines prédicats partiels Le problème des n reines On note Pi col (X 1,..., X i ) = 1 k<i (X [i] = X [k]) et P diag i (X ) = 1 k<i P diag i (i, X [i]) diag((k, X [k])) La formule Pcol i (X 1,..., X i ) (resp. (X )) est vraie si parmi les reines déjà posées (jusqu à la reine i) aucune n est sur une même colonne (resp. diagonale). On définit PP i (X 1,..., X i ) = Pi col Algorithm 33 n reines (X 1,..., X i ) P diag i (X 1,..., X i ).

17 Les diagonales : (x, y) / diag((z, t)) Le problème des n reines On remarque que (x, y) et (z, t) sont sur la même diagonale ssi x z = y t ou bien x z = t y On numérote les diagonales comme suit. Pour {1 n,..., n 1}, (x, y) appartient à la ième diagonale positive ssi = y x Pour {2,..., 2n}, (x, y) appartient à la l ieme diagonale négative ssi = y + x. n + 2 n + 1 n n 1 n 2 S. Pinchinat (IRISA, Université de Rennes 1) Méthodes algorithmiques UE ALG année / 198

18 Le prédicat partiel PP i (X 1,..., X i ) Le problème des n reines On gère deux tableaux de booléens dp[1 n..n 1] et dn[2..2n]. dp( ) est vrai ssi la ième diagonale positive est libre. dn( ) est vrai ssi la ième diagonale négative est libre. Alors le prédicat partiel s écrit : PP i (X 1,..., X i ) := P col i (X 1,..., X i ) dp[x [i] i] dn[x [i] + i] avec Pi col (X 1,..., X i ) = 1 k<i (X [i] = X [k]). S. Pinchinat (IRISA, Université de Rennes 1) Méthodes algorithmiques UE ALG année / 198

19 Le problème des n reines Algorithme des n reines Une version récursive Algorithm 34 RechercheSol(i) 1: for X [i] = 1 à n do 2: if PP i (X 1,..., X i ) then 3: dp(x [i] i) ff ; dn(x [i] + i) ff Prendre en compte de cette 4: if i < n then valeur de X [i] 5: RechercheSol(i + 1) 6: else Remarquons que PP n (X 1,..., X n ) ssi X est une solution 7: Sol Sol {X } 8: end if 9: dp[x [i] i] tt ; dn[x [i] + i] tt Défaire les modifs liées à la prise en 10: end if compte de cette valeur de X [i] 11: end for Algorithm 35 pour les n reines 1: Sol ; dp tt ; dn tt ; RechercheSol(1) S. Pinchinat (IRISA, Université de Rennes 1) Méthodes algorithmiques UE ALG année / 198

20 Énumération des parties à somme nulle Énumération des parties à somme nulle Étant donné un ensemble E = {e 1,..., e n } de n (n > 0) éléments de Z, on chercher à énumérer les parties de E dont la somme des éléments est nulle. On conviendra que l ensemble vide est une solution. L ensemble des candidats est P(E). Il faut énumérer une fois et une seule les 2 n candidats et calculer pour chacun la somme des ses éléments. On représente l ensemble E par le tableau E[1..n] où E[i] est l élément e i, pour tout i {1,... n}, et on représente une partie X E par sa fonction caractéristique, soit le vecteur X [1..n] à valeurs dans {0, 1} tel que X [i] = 1 si, et seulement si, e i X. La somme des éléments de la partie X E se calcule selon : n E[i] X [i] i=1 S. Pinchinat (IRISA, Université de Rennes 1) Méthodes algorithmiques UE ALG année / 198

21 Énumération des parties à somme nulle Énumération des parties On commence par concevoir un algorithme qui énumère toutes les parties de E. Algorithm 36 RecherchePartie(i) Require: i {1,... n}, et on connaît déjà les valeurs X [1... i 1] 1: for v = 0 à 1 do on ne prend pas ou on prend l élément e i 2: X [i] v 3: if i = n then X un vecteur complet donc une solution 4: Écrire(X ) 5: else 6: RecherchePartie(i + 1) on doit statuer pour les éléments e i+1 à e n 7: end if 8: end for avec l appel principal RecherchePartie(1). Exercice Mettre au propre les variables pour cet algorithme, soient n, E, et X. Dessiner l arbre des possibilités pour les parties de sorte que l Algorithme 36 corresponde à un parcours en profondeur d abord de cet arbre. S. Pinchinat (IRISA, Université de Rennes 1) Méthodes algorithmiques UE ALG année / 198

22 Énumération des parties à somme nulle Énumération des parties à somme nulle Algorithm 37 RecherchePartieSomNulle(i) Require: i {1,... n} 1: for v = 0 à 1 do 2: X [i] v 3: if i = n et SommeNulle then X un vecteur solution 4: Écrire(X ) 5: else 6: RecherchePartieSomNulle(i + 1) 7: end if 8: end for avec l appel principal RecherchePartieSomNulle(1). Comment calculer le prédicat SommeNulle? On maintient sa valeur courant au cours de l exécution. S. Pinchinat (IRISA, Université de Rennes 1) Méthodes algorithmiques UE ALG année / 198

23 Énumération des parties à somme nulle Énumération des parties à somme nulle L algorithme principal est SomCour 0 ; RecherchePartieSomNulle(1), avec Algorithm 38 RecherchePartieSomNulle(i) Require: i {1,... n} 1: for v = 0 à 1 do 2: X [i] v Prendre en compte ce choix de X [i] 3: SomCour SomCour + v E[i] Prendre en compte ce choix de X [i] 4: if i = n et SomCour = 0 then X est une solution 5: Écrire(X ) 6: else 7: RecherchePartieSomNulle(i + 1) 8: end if 9: SomCour SomCour v E[i] Défaire ce choix de X [i] 10: end for S. Pinchinat (IRISA, Université de Rennes 1) Méthodes algorithmiques UE ALG année / 198

24 La méthode des ES : la forme des problèmes Le schéma général des ES Les solutions se décomposent en vecteurs de la forme (X 1,..., X n ), où X i parcourt un ensemble S i qui est fini. Il y a donc card(s 1 )... card(s n ) candidats a priori. Un critère de validité P(X ) qui permet de déterminer si le candidat X est une solution. Exemple (Les n reines) X i est la colonne de la Reine i (qui par convention est sur la ligne i) S i = {1,..., n} est l ensemble des colonnes où on peut poser la Reine i Le critère de validité P(X 1,..., X n ) garantit que que deux reines quelconques i et j (donc dans les cases (i, X [i]) et (j, X [j])) ne soient en prise mutuelle. Exercice (Parties à somme nulle) Déterminer X, les ensembles S i et le critère de validité P. S. Pinchinat (IRISA, Université de Rennes 1) Méthodes algorithmiques UE ALG année / 198

25 Le schéma général des ES Énumération des parties à somme nulle : Détecter une solution au plus tôt (anecdotique) Avec le prérequis X [i] = 0 pour tout i {1,... n}, on peut même écrire Algorithm 39 RecherchePartieSomNulle(i) Require: i {1,... n} 1: for v = 0 à 1 do 2: X [i] v 3: SomCour SomCour + v E[i] 4: if i = n ou SomCour = 0 then 5: Écrire(X ) X est une solution, car X [j] = 0 pour tout j > i 6: else 7: RecherchePartieSomNulle(i + 1) 8: end if 9: SomCour SomCour v E[i] 10: end for S. Pinchinat (IRISA, Université de Rennes 1) Méthodes algorithmiques UE ALG année / 198

26 Le schéma général des ES Détecter une non solution plus tôt : l élagage Afin d éviter de parcourir certaines parties de l arbre, on peut dans certains cas garantir que la solution partielle courante ne peut aboutir à une solution complète. On élague alors cette branche. Exemple Pour le problèmes des n reines lorsqu on ne choisit pas une position pour la Reine i qui soit en conflit avec les positions des reines déjà posées. Exercice Proposer un critère pour le pb des parties à somme nulle. On introduit donc un prédicat partiel PP i (X, v) qui considèrent les valeurs de X [1... i 1] déjà calculée et une valeur v possible pour X [i], et qui vaut faux dès lors que n importe quel candidat Y [1... n] qui coincide avec les i 1 premiers éléments de X ne peut pas être une solution. S. Pinchinat (IRISA, Université de Rennes 1) Méthodes algorithmiques UE ALG année / 198

27 Les éléments de mise en oeuvre des ES Le schéma général des ES Dans la méthode ES on essaie autant que possible d éviter de construire tous les candidats ( brute-force ) de l ensemble card(s 1 )... card(s n ). On construit les candidats de façon incrémentale : X 1, puis X 2,... puis X i,..., c-à-d. les solutions partielles (X 1,..., X i ). À chaque étape, on utilise des prédicats partiels PP i qui vérifient : si PP i (X 1,..., v) n est pas vérifié, alors tout candidat de la forme (X 1,..., X i 1, v, Y i+1,..., Y n ) ne peut être une solution. Exemple (Parties à somme nulle) Donner un prédicat partiel. Exercice Écrire PP i (X 1,..., X i 1, v). Trouver d autres exemples de PP i (X 1,..., X i 1, v). Qu en est-il du problème des n reines? S. Pinchinat (IRISA, Université de Rennes 1) Méthodes algorithmiques UE ALG année / 198

28 avec l algorithme principal : Faire les initialisations adéquates ; Recherche(1). S. Pinchinat (IRISA, Université de Rennes 1) Méthodes algorithmiques UE ALG année / 198 L algorithme récursif des ES Essais Successifs (ES) Le schéma général des ES Algorithm Recherche(i) 1: for v S i do 2: if PP i (X 1,..., X i 1, v) then 3: X i v 4: Effectuer les modifications sur l énoncé du problème 5: qu entraîne ce choix de X i 6: if P(X 1,..., X i 1, X i ) then le vecteur X est une solution 7: Traiter la solution (X 1,..., X n ) 8: else 9: Recherche(i + 1) 10: end if 11: Défaire les modifications sur l énoncé du problème 12: qu avait entraîné ce choix de X i 13: end if 14: end for

29 Arbre de recherche des ES Essais Successifs (ES) Le schéma général des ES Remarque Attention, ce n est pas parce que PP i est vérifié qu il a des solutions en dessous! S. Pinchinat (IRISA, Université de Rennes 1) Méthodes algorithmiques UE ALG année / 198

30 Satisfaisabilité en logique propositionnelle Un autre exemple : Satisfaisabilité en logique propositionnelle Problème (Sat ) Entrée : Un ensemble de n clauses C 1,..., C n Sortie : Existe-t-il une valuation de leurs variables propositionnelles telles que toutes les clauses soient vraies? Modélisation du problème On suppose que les variables propositionnelles sont ordonnées p 1, p 2,..., p m Une solution partielle est un vecteur (X 1,..., X i ) où 0 i m, où X i {ff, tt} est la valuation de proposition p i. PP i (X 1,..., X i ) est faux pour la valuation partielle ν définie par ν(p i ) = X i, une des clauses C 1,..., C n s évalue à faux. S. Pinchinat (IRISA, Université de Rennes 1) Méthodes algorithmiques UE ALG année / 198

31 Algorithme pour Sat Essais Successifs (ES) Satisfaisabilité en logique propositionnelle Algorithm Recherche(i) 1: for v S i do 2: if PP i (X 1,..., X i 1, v) then 3: X i v 4: Effectuer les modifications sur l énoncé du problème 5: qu entraîne ce choix de X i 6: if P(X 1,..., X i 1, X i ) then le vecteur X est une solution 7: Traiter la solution (X 1,..., X n ) 8: else 9: Recherche(i + 1) 10: end if 11: Défaire les modifications sur l énoncé du problème 12: qu avait entraîné ce choix de X i 13: end if 14: end for Exercice S. Pinchinat (IRISA, Université de Rennes 1) Méthodes algorithmiques UE ALG année / 198

32 Un arbre de recherche pour Sat Satisfaisabilité en logique propositionnelle (w x y z), (w x), (x y), (y z), (z w), (w z) w = 0 (x y z), (x), (x y), (y z) w = 1 (x y), (y z), (z), (z) x = 0 x = 1 z = 0 z = 1 (y z), (y), (y z) (), (y z) (x y), () (x y), (y), () y = 0 (z), (z) y = 1 () z = 0 z = 1 () () Exercice Qu en concluez-vous pour cet l ensemble de clauses? S. Pinchinat (IRISA, Université de Rennes 1) Méthodes algorithmiques UE ALG année / 198

33 ES pour les problèmes d optimisation ES pour les problèmes d optimisation On cherche à trouver la meilleure solution pour un critère de meilleure solution donné par une fonction de coût sur les solutions. Exemples Problème (TSP) Entrée : Un graphe G = (V, E) orienté et une fonction w : E IN Sortie : Un cycle hamiltonien dans G qui minimise la somme des arcs. Problème (Knapsack Problem (kp)) Entrée : n objets, pour chaque objet i deux valeurs w i ( 0 son poids) et p i (son profit/sa valeur), une constante K 0 Sortie : Des valeurs x 1, x 2,..., x n dans {0, 1} telles que Σ n i=1w i.x i K et qui maximise le profit Σ n i=1p i.x i. Dans notre approche, on convient que la fonction de coût doit être minimisée. S. Pinchinat (IRISA, Université de Rennes 1) Méthodes algorithmiques UE ALG année / 198

34 Coloration de sommets d un graphe ES pour les problèmes d optimisation Étant donné un graphe non orienté G = (V, E), trouver le nombre minimum de couleurs pour colorier les sommets du graphe de sorte que deux sommets voisins aient des couleurs différentes. Ce nombre minimum est noté γ(g) est appelé le nombre chromatique du graphe G. Pour un graphe complet, il faut V, et le pb est simple, mais dans le cas général c est un problème difficile. En 1976, l algorithme d Appel et Haken avec 1478 cas critiques (plus de 1200 heures de calcul) permet d établir le théorème de 4 couleurs : Théorème (des 4 couleurs) Si le graphe est planaire (i.e. il peut se dessiner dans le plan sans qu aucun arc n en croise un autre (e.g., les cartes géographies), alors 4 couleurs suffisent. S. Pinchinat (IRISA, Université de Rennes 1) Méthodes algorithmiques UE ALG année / 198

35 ES pour les problèmes d optimisation ES pour colorier les sommets On se donne les variables suivantes (où n = V est le nombre de sommets du graphe) : V = {1,..., n}. C est l ensemble ordonné des couleurs disponibles. nc est le nombre de couleurs déjà utilisées, initialement nc = 0. nvllecouleur est une variable booléenne. nc est le nombre minimal de couleurs parmi les solutions déjà trouvées, initialement nc = n + 1 (c est comme + ). X [1..n] à valeur dans C ; X [i] est la couleur du sommet i Algorithm 42 Colorier(G, C) 1: nc 0 ; nc n + 1 ; colorier(1) ; 2: return MeilleureSol et nc On décrit maintenant colorier(i) où i est un sommet et les sommets 1,..., i 1 sont coloriés. S. Pinchinat (IRISA, Université de Rennes 1) Méthodes algorithmiques UE ALG année / 198

36 ES pour les problèmes d optimisation ES pour colorier les sommets Algorithm 43 colorier(i) Require: i est un sommet et les sommets 1,..., i 1 sont coloriés 1: C {1,..., nc + 1} 2: for k = 1 to i 1 do 3: if k Voisins(i) then C C \ {X [k]} 4: end if 5: end for 6: for c C do 7: if (c nc) [(c = nc + 1) (nc + 1 < nc )] then Prédicat partiel 8: X [i] c 9: if c = nc + 1 then nc nc + 1 ; nvllecouleur vrai Effectuer les modifs 10: else nvllecouleur faux 11: end if 12: if i < n then colorier(i + 1) 13: else nc nc ; MeilleureSol X 14: end if 15: if nvllecouleur then nc nc 1 Défaire les modifs 16: end if 17: end if 18: end for S. Pinchinat (IRISA, Université de Rennes 1) Méthodes algorithmiques UE ALG année / 198

37 ES pour les problèmes d optimisation Coloration des arêtes d un graphe Étant donné un graphe non orienté G, trouver le nombre minimum de couleurs pour colorier les arête du graphe de sorte que deux arêtes adjacentes aient des couleurs différentes. Ce nombre minimum, noté χ (G), est appelé l indice chromatique du graphe G. Un résultat classique est Théorème Soit Δ(G) le degré maximum de G, alors Δ(G) χ (G) Δ(G) + 1. Colorier les arêtes de G en utilisant Δ(G) + 1 couleurs est polynomial, mais colorier les arêtes de G en χ (G) couleurs est un problème difficile. Exercice Écrire l algorithme ES pour calculer l indice chromatique d un graphe. S. Pinchinat (IRISA, Université de Rennes 1) Méthodes algorithmiques UE ALG année / 198

38 Importance des problèmes de coloriage ES pour les problèmes d optimisation Des exemples Planning de sessions d examen Coloriage de cartes géographiques (facile : Théorème des 4 couleurs!) Exclusion mutuelle dans l accès à des ressources communes Attribution de salles pour des séances de cours (mais il y a des meilleures approches que vous connaissez...) S. Pinchinat (IRISA, Université de Rennes 1) Méthodes algorithmiques UE ALG année / 198

39 ES pour les problèmes d optimisation Exclusion mutuelle dans l accès à des ressources communes Exemple On considère 3 fichiers f 1, f 2, f 3 qui doivent être consultés pour modification par 4 utilisateurs potentiels u 1, u 2, u 3, u 4. L accès à chaque fichier est exclusif et dure 1 minute. Un utilisateur ne peut accéder qu un fichier à la fois. On veut minimiser le temps nécessaires pour réaliser ces modifications. Soient les accès suivants à réaliser : pour u 1 : f 1, f 2, f 3 pour u 2 : f 1, f 2, f 3 pour u 3 : f 2, f 3 pour u 4 : f 3 On peut construire le graphe suivant d arêtes coloriables en 4 couleurs, donc pour un temps total de 4 minutes. S. Pinchinat (IRISA, Université de Rennes 1) Méthodes algorithmiques UE ALG année / 198

40 ES pour les problèmes d optimisation L algorithme des ES pour les problèmes d optimisation Soit une fonction d évaluation partielle ep i à valeurs dans IN (ou IR + ) sur la solution partielle (+ monotone, voir plus loin), v la meilleure valeur trouvée jusqu ici. Algorithm RechercheMeilleureSol(i) 1: for v S i do 2: if (PP i (X 1,..., X i 1, v) ep i (X 1,..., X i 1, v) < v ) then 3: X i v 4:... Effectuer les modifs... 5: if P(X 1,..., X i 1, X i ) then 6: Traiter la solution X qui est optimale 7: else 8: RechercheMeilleureSol(i + 1) 9: end if 10:... Défaire les modifs... 11: end if 12: end for Algorithme principal : initialisations dont v + (valeur optimale) ; RechercheMeilleureSol(1) S. Pinchinat (IRISA, Université de Rennes 1) Méthodes algorithmiques UE ALG année / 198

41 Le voyageur de commerce Essais Successifs (ES) ES pour les problèmes d optimisation Problème (TSP) Entrée : Un graphe G = (V, E) orienté et une fonction w : E IN Sortie : Un cycle hamiltonien dans G qui minimise la somme des arcs. S. Pinchinat (IRISA, Université de Rennes 1) Méthodes algorithmiques UE ALG année / 198

42 ES pour les problèmes d optimisation ES pour le problème TSP : les structures de données Le graphe G = (V, E, w) est donné par V = {1,..., n}, les poids de ses arêtes w[1..n, 1..n] (entiers naturels), le voisinage d un sommet vois : V 2 V. On utilise X [1..n + 1] et X [1..n + 1] à valeurs dans V, des cycles dans le graphe. pris V, les sommets de la solution partielle = un chemin dans le graphe. lg, lg IN, la longueur courante de la solution partielle et la longueur d une solution optimale. Algorithm 45 TSP(G) 1: X [1] 1 on part du sommet 1 2: pris {1} 1 est sur le chemin courant 3: lg 0 1 est un chemin de longueur 0 4: lg on n a pas encore trouvé de solution optimale 5: RechercheTournee(2) On peut par exemple prendre = 1 + e E w(e). S. Pinchinat (IRISA, Université de Rennes 1) Méthodes algorithmiques UE ALG année / 198

43 ES pour le problème TSP : l algorithme ES pour les problèmes d optimisation Algorithm 46 RechercheTournee(i) 1: for v vois(x [i 1]) do On essaie de prolonger le chemin courant 2: if (v / pris (i = n + 1 v = 1)) (lg + w[x [i 1], v] < lg ) then 3: (chemin élementaire ou cycle hamiltonien) et tjrs meilleur que la sol. opt. 4: X [i] v 5: pris pris {X [i]} ; lg lg + w[x [i 1], X [i]] Effectuer les modifs 6: if i < n + 1 then On a pu prolonger le chemin avec le sommet X [i] 7: RechercheTournee(i + 1) on continue à avancer 8: else i = n + 1 et X [i] = 1 et X [1..n + 1] est un cycle hamilt. avec lg < lg 9: lg lg ; X X on traite la solution optimale 10: end if 11: lg lg w[x [i 1], X [i]] Défaire les modifs 12: if X [i] = 1 then pris pris \ {X [i]} 13: end if 14: end if 15: end for S. Pinchinat (IRISA, Université de Rennes 1) Méthodes algorithmiques UE ALG année / 198

44 Exécution de l algorithme ES pour TSP ES pour les problèmes d optimisation S. Pinchinat (IRISA, Université de Rennes 1) Méthodes algorithmiques UE ALG année / 198

45 Résumé de l approche ES jusqu ici ES pour les problèmes d optimisation On a vu un schéma générale des ES pour des problèmes d existence de solution mais aussi de calcul de solution optimale. Pour le calcul de solution(s), la clé est de concevoir un prédicat partiel PP i (X ) permettant de couper une branche de l arbre de recherche dès que la solution partielle ne peut conduire à une solution (complète). Pour le calcul de solution(s) optimale(s) (où on cherche à minimiser la valeur d une solution), on conserve le prédicat partiel enrichi d une fonction d évaluation partielle ep i (X ) (qui est monotone, c-à-d. dont la valeur augmente au fur et à mesure que la solution se complète) : on ne développe pas une branche si elle correspond à une solution partielle dont l évaluation (partielle) est plus grande ou égale à une meilleure solution déja trouvée, parce qu elle ne pourra pas conduire à une solution optimale. S. Pinchinat (IRISA, Université de Rennes 1) Méthodes algorithmiques UE ALG année / 198

46 Élagage à l aide d heuristiques Essais Successifs (ES) Élagage à l aide d heuristiques On va maintenant utiliser des heuristiques (= art de trouver, découvrir ). On enrichit les ES en se servant d évaluations par défaut minimum et maximum notées epdmin i (X ) et epdmax i (X ) qui vérifient : pour toute solution partielle X et toute solution complète X qui étend X, epdmin i (X ) val( X ) epdmax i (X ) où val retourne la valeur d une solution complète. Les valeurs epdmin i (X ) et epdmax i (X ) se décomposent en epdmini (X ) = ep i (X ) + h min (X ) epdmax i (X ) = ep i (X ) + h max (X ) où les fonctions h min (X ) et h max (X ) sont des heuristiques. S. Pinchinat (IRISA, Université de Rennes 1) Méthodes algorithmiques UE ALG année / 198

47 Élagage à l aide d heuristiques On a élagué lorsque ep i (X ) = w[x [1], X [2]] w[x [i 1], X [i]] lg Or, on peut établir un minorant de ce que cette solution partielle peut donner en considérant le nombre d arêtes qui manquent pour compléter la solution partielle X et en minorant la valeur de ces arêtes par le poids minimum des arêtes dans le graphe. On fera de même pour obtenir un majorant. S. Pinchinat (IRISA, Université de Rennes 1) Méthodes algorithmiques UE ALG année / 198

48 Élagage à l aide d heuristiques On a élagué lorsque ep i (X ) = w[x [1], X [2]] w[x [i 1], X [i]] lg Or, on peut établir un minorant de ce que cette solution partielle peut donner en considérant le nombre d arêtes qui manquent pour compléter la solution partielle X et en minorant la valeur de ces arêtes par le poids minimum des arêtes dans le graphe. On fera de même pour obtenir un majorant. Soient w min et w max les poids minimum et maximum des arêtes dans le graphe. Pour compléter une solution partielle (=chemin) X = (X 1,..., X i ), il faut encore choisir n i + 1 arêtes : Les choix qui restent rajouteront à ep i (X ) au moins un poids de (n i + 1) w min. On définit h min (X 1,..., X i ) = (n i + 1) w min. Les choix qui restent rajouteront à ep i (X ) au plus un poids de (n i + 1) w max. On définit h max (X 1,..., X i ) = (n i + 1) w max. Alors, pour toute solution complète X qui étend X, on a : ep i (X ) + h min (X ) lg( X ) ep i (X ) + h max (X ) S. Pinchinat (IRISA, Université de Rennes 1) Méthodes algorithmiques UE ALG année / 198

49 Élagage à l aide d heuristiques On a élagué lorsque ep i (X ) = w[x [1], X [2]] w[x [i 1], X [i]] lg Or, on peut établir un minorant de ce que cette solution partielle peut donner en considérant le nombre d arêtes qui manquent pour compléter la solution partielle X et en minorant la valeur de ces arêtes par le poids minimum des arêtes dans le graphe. On fera de même pour obtenir un majorant. Soient w min et w max les poids minimum et maximum des arêtes dans le graphe. Pour compléter une solution partielle (=chemin) X = (X 1,..., X i ), il faut encore choisir n i + 1 arêtes : Les choix qui restent rajouteront à ep i (X ) au moins un poids de (n i + 1) w min. On définit h min (X 1,..., X i ) = (n i + 1) w min. Les choix qui restent rajouteront à ep i (X ) au plus un poids de (n i + 1) w max. On définit h max (X 1,..., X i ) = (n i + 1) w max. Alors, pour toute solution complète X qui étend X, on a : ep i (X ) + h min (X ) lg( X ) ep i (X ) + h max (X ) Remarque On peut clairement affiner en prenant pour h min (X ) (resp. h max (X )) la somme des n i +1 plus petits (resp. grands) poids (vive les petits poids carottes!) dans le graphe. S. Pinchinat (IRISA, Université de Rennes 1) Méthodes algorithmiques UE ALG année / 198

50 Élagage à l aide d heuristiques On a élagué lorsque ep i (X ) = w[x [1], X [2]] w[x [i 1], X [i]] lg Or, on peut établir un minorant de ce que cette solution partielle peut donner en considérant le nombre d arêtes qui manquent pour compléter la solution partielle X et en minorant la valeur de ces arêtes par le poids minimum des arêtes dans le graphe. On fera de même pour obtenir un majorant. Soient w min et w max les poids minimum et maximum des arêtes dans le graphe. Pour compléter une solution partielle (=chemin) X = (X 1,..., X i ), il faut encore choisir n i + 1 arêtes : Les choix qui restent rajouteront à ep i (X ) au moins un poids de (n i + 1) w min. On définit h min (X 1,..., X i ) = (n i + 1) w min. Les choix qui restent rajouteront à ep i (X ) au plus un poids de (n i + 1) w max. On définit h max (X 1,..., X i ) = (n i + 1) w max. Alors, pour toute solution complète X qui étend X, on a : ep i (X ) + h min (X ) lg( X ) ep i (X ) + h max (X ) Remarque On peut clairement affiner en prenant pour h min (X ) (resp. h max (X )) la somme des n i +1 plus petits (resp. grands) poids (vive les petits poids carottes!) dans le graphe. Et on peut encore affiner... mais le calcul des heuristiques doit rester peu coûteux. S. Pinchinat (IRISA, Université de Rennes 1) Méthodes algorithmiques UE ALG année / 198

Exemples de problèmes et d applications. INF6953 Exemples de problèmes 1

Exemples de problèmes et d applications. INF6953 Exemples de problèmes 1 Exemples de problèmes et d applications INF6953 Exemples de problèmes Sommaire Quelques domaines d application Quelques problèmes réels Allocation de fréquences dans les réseaux radio-mobiles Affectation

Plus en détail

Objectifs du cours d aujourd hui. Informatique II : Cours d introduction à l informatique et à la programmation objet. Complexité d un problème (2)

Objectifs du cours d aujourd hui. Informatique II : Cours d introduction à l informatique et à la programmation objet. Complexité d un problème (2) Objectifs du cours d aujourd hui Informatique II : Cours d introduction à l informatique et à la programmation objet Complexité des problèmes Introduire la notion de complexité d un problème Présenter

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

Optimisation Combinatoire (Méthodes approchées) II. Recherche Locale simple (Les bases)

Optimisation Combinatoire (Méthodes approchées) II. Recherche Locale simple (Les bases) Optimisation Combinatoire (Méthodes approchées) II. Recherche Locale simple (Les bases) Heuristique Constructive Itérativement, ajoute de nouvelles composantes à une solution partielle candidate Espace

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

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

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

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

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

Limites finies en un point

Limites finies en un point 8 Limites finies en un point Pour ce chapitre, sauf précision contraire, I désigne une partie non vide de R et f une fonction définie sur I et à valeurs réelles ou complees. Là encore, les fonctions usuelles,

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

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

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

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

Théorie des Graphes Cours 3: Forêts et Arbres II / Modélisation

Théorie des Graphes Cours 3: Forêts et Arbres II / Modélisation IFIPS S7 - informatique Université Paris-Sud 11 1er semestre 2009/2010 Théorie des Graphes Cours 3: Forêts et Arbres II / 1 Forêts et arbres II Théorème 1.1. Les assertions suivantes sont équivalentes

Plus en détail

Recherche dans un tableau

Recherche dans un tableau Chapitre 3 Recherche dans un tableau 3.1 Introduction 3.1.1 Tranche On appelle tranche de tableau, la donnée d'un tableau t et de deux indices a et b. On note cette tranche t.(a..b). Exemple 3.1 : 3 6

Plus en détail

Cours de Master Recherche

Cours de Master Recherche Cours de Master Recherche Spécialité CODE : Résolution de problèmes combinatoires Christine Solnon LIRIS, UMR 5205 CNRS / Université Lyon 1 2007 Rappel du plan du cours 16 heures de cours 1 - Introduction

Plus en détail

La NP-complétude. Johanne Cohen. PRISM/CNRS, Versailles, France.

La NP-complétude. Johanne Cohen. PRISM/CNRS, Versailles, France. La NP-complétude Johanne Cohen PRISM/CNRS, Versailles, France. Références 1. Algorithm Design, Jon Kleinberg, Eva Tardos, Addison-Wesley, 2006. 2. Computers and Intractability : A Guide to the Theory of

Plus en détail

Exercices types Algorithmique et simulation numérique Oral Mathématiques et algorithmique Banque PT

Exercices types Algorithmique et simulation numérique Oral Mathématiques et algorithmique Banque PT Exercices types Algorithmique et simulation numérique Oral Mathématiques et algorithmique Banque PT Ces exercices portent sur les items 2, 3 et 5 du programme d informatique des classes préparatoires,

Plus en détail

Université Paris-Dauphine DUMI2E 1ère année, 2009-2010. Applications

Université Paris-Dauphine DUMI2E 1ère année, 2009-2010. Applications Université Paris-Dauphine DUMI2E 1ère année, 2009-2010 Applications 1 Introduction Une fonction f (plus précisément, une fonction réelle d une variable réelle) est une règle qui associe à tout réel x au

Plus en détail

Programmation Par Contraintes

Programmation Par Contraintes Programmation Par Contraintes Cours 2 - Arc-Consistance et autres amusettes David Savourey CNRS, École Polytechnique Séance 2 inspiré des cours de Philippe Baptiste, Ruslan Sadykov et de la thèse d Hadrien

Plus en détail

Projet L1, S2, 2015: Simulation de fourmis, Soutenance la semaine du 4 mai.

Projet L1, S2, 2015: Simulation de fourmis, Soutenance la semaine du 4 mai. Projet L1, S2, 2015: Simulation de fourmis, Soutenance la semaine du 4 mai. 1 Introduction On considère une grille de 20 lignes 20 colonnes. Une case de la grille peut être vide, ou contenir une et une

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

Rapport de stage de première année de Master Optimisation de cache d instructions

Rapport de stage de première année de Master Optimisation de cache d instructions Rapport de stage de première année de Master Optimisation de cache d instructions Benoit Boissinot Benoit.Boissinot@ens-lyon.fr Université Lyon 1 sous la direction de Fabrice Rastello Fabrice.Rastello@ens-lyon.fr

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

Problèmes de dénombrement.

Problèmes de dénombrement. Problèmes de dénombrement. 1. On se déplace dans le tableau suivant, pour aller de la case D (départ) à la case (arrivée). Les déplacements utilisés sont exclusivement les suivants : ller d une case vers

Plus en détail

Communications collectives et ordonnancement en régime permanent pour plates-formes hétérogènes

Communications collectives et ordonnancement en régime permanent pour plates-formes hétérogènes Loris MARCHAL Laboratoire de l Informatique du Parallélisme Équipe Graal Communications collectives et ordonnancement en régime permanent pour plates-formes hétérogènes Thèse réalisée sous la direction

Plus en détail

Modélisation multi-agents - Agents réactifs

Modélisation multi-agents - Agents réactifs Modélisation multi-agents - Agents réactifs Syma cursus CSI / SCIA Julien Saunier - julien.saunier@ifsttar.fr Sources www-lih.univlehavre.fr/~olivier/enseignement/masterrecherche/cours/ support/algofourmis.pdf

Plus en détail

Optimisation non linéaire Irène Charon, Olivier Hudry École nationale supérieure des télécommunications

Optimisation non linéaire Irène Charon, Olivier Hudry École nationale supérieure des télécommunications Optimisation non linéaire Irène Charon, Olivier Hudry École nationale supérieure des télécommunications A. Optimisation sans contrainte.... Généralités.... Condition nécessaire et condition suffisante

Plus en détail

PROBLEMES D'ORDONNANCEMENT AVEC RESSOURCES

PROBLEMES D'ORDONNANCEMENT AVEC RESSOURCES Leçon 11 PROBLEMES D'ORDONNANCEMENT AVEC RESSOURCES Dans cette leçon, nous retrouvons le problème d ordonnancement déjà vu mais en ajoutant la prise en compte de contraintes portant sur les ressources.

Plus en détail

Corrigé des TD 1 à 5

Corrigé des TD 1 à 5 Corrigé des TD 1 à 5 1 Premier Contact 1.1 Somme des n premiers entiers 1 (* Somme des n premiers entiers *) 2 program somme_entiers; n, i, somme: integer; 8 (* saisie du nombre n *) write( Saisissez un

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

Capacité d un canal Second Théorème de Shannon. Théorie de l information 1/34

Capacité d un canal Second Théorème de Shannon. Théorie de l information 1/34 Capacité d un canal Second Théorème de Shannon Théorie de l information 1/34 Plan du cours 1. Canaux discrets sans mémoire, exemples ; 2. Capacité ; 3. Canaux symétriques ; 4. Codage de canal ; 5. Second

Plus en détail

3. SPÉCIFICATIONS DU LOGICIEL. de l'expression des besoins à la conception. Spécifications fonctionnelles Analyse fonctionnelle et méthodes

3. SPÉCIFICATIONS DU LOGICIEL. de l'expression des besoins à la conception. Spécifications fonctionnelles Analyse fonctionnelle et méthodes PLAN CYCLE DE VIE D'UN LOGICIEL EXPRESSION DES BESOINS SPÉCIFICATIONS DU LOGICIEL CONCEPTION DU LOGICIEL LA PROGRAMMATION TESTS ET MISE AU POINT DOCUMENTATION CONCLUSION C.Crochepeyre Génie Logiciel Diapason

Plus en détail

Prénom : Matricule : Sigle et titre du cours Groupe Trimestre INF1101 Algorithmes et structures de données Tous H2004. Loc Jeudi 29/4/2004

Prénom : Matricule : Sigle et titre du cours Groupe Trimestre INF1101 Algorithmes et structures de données Tous H2004. Loc Jeudi 29/4/2004 Questionnaire d'examen final INF1101 Sigle du cours Nom : Signature : Prénom : Matricule : Sigle et titre du cours Groupe Trimestre INF1101 Algorithmes et structures de données Tous H2004 Professeur(s)

Plus en détail

Fonctions de plusieurs variables

Fonctions de plusieurs variables Module : Analyse 03 Chapitre 00 : Fonctions de plusieurs variables Généralités et Rappels des notions topologiques dans : Qu est- ce que?: Mathématiquement, n étant un entier non nul, on définit comme

Plus en détail

(51) Int Cl.: H04L 29/06 (2006.01) G06F 21/55 (2013.01)

(51) Int Cl.: H04L 29/06 (2006.01) G06F 21/55 (2013.01) (19) TEPZZ 8 8 4_A_T (11) EP 2 838 241 A1 (12) DEMANDE DE BREVET EUROPEEN (43) Date de publication: 18.02.1 Bulletin 1/08 (1) Int Cl.: H04L 29/06 (06.01) G06F 21/ (13.01) (21) Numéro de dépôt: 141781.4

Plus en détail

Excel Avancé. Plan. Outils de résolution. Interactivité dans les feuilles. Outils de simulation. La valeur cible Le solveur

Excel Avancé. Plan. Outils de résolution. Interactivité dans les feuilles. Outils de simulation. La valeur cible Le solveur Excel Avancé Plan Outils de résolution La valeur cible Le solveur Interactivité dans les feuilles Fonctions de recherche (ex: RechercheV) Utilisation de la barre d outils «Formulaires» Outils de simulation

Plus en détail

Baccalauréat S Antilles-Guyane 11 septembre 2014 Corrigé

Baccalauréat S Antilles-Guyane 11 septembre 2014 Corrigé Baccalauréat S ntilles-guyane 11 septembre 14 Corrigé EXERCICE 1 6 points Commun à tous les candidats Une entreprise de jouets en peluche souhaite commercialiser un nouveau produit et à cette fin, effectue

Plus en détail

LE PROBLEME DU PLUS COURT CHEMIN

LE PROBLEME DU PLUS COURT CHEMIN LE PROBLEME DU PLUS COURT CHEMIN Dans cette leçon nous définissons le modèle de plus court chemin, présentons des exemples d'application et proposons un algorithme de résolution dans le cas où les longueurs

Plus en détail

Centre CPGE TSI - Safi 2010/2011. Algorithmique et programmation :

Centre CPGE TSI - Safi 2010/2011. Algorithmique et programmation : Algorithmique et programmation : STRUCTURES DE DONNÉES A. Structure et enregistrement 1) Définition et rôle des structures de données en programmation 1.1) Définition : En informatique, une structure de

Plus en détail

Arbres binaires de recherche

Arbres binaires de recherche 1 arbre des comparaisons 2 recherche dichotomique l'arbre est recalculé à chaque recherche 2 5 3 4 7 9 1 6 1 2 3 4 5 6 7 9 10 conserver la structure d'arbre au lieu de la reconstruire arbre binaire de

Plus en détail

INTRODUCTION À L ANALYSE FACTORIELLE DES CORRESPONDANCES

INTRODUCTION À L ANALYSE FACTORIELLE DES CORRESPONDANCES INTRODUCTION À L ANALYSE FACTORIELLE DES CORRESPONDANCES Dominique LAFFLY Maître de Conférences, Université de Pau Laboratoire Société Environnement Territoire UMR 5603 du CNRS et Université de Pau Domaine

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

Transmission d informations sur le réseau électrique

Transmission d informations sur le réseau électrique Transmission d informations sur le réseau électrique Introduction Remarques Toutes les questions en italique devront être préparées par écrit avant la séance du TP. Les préparations seront ramassées en

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

Résolution de systèmes linéaires par des méthodes directes

Résolution de systèmes linéaires par des méthodes directes Résolution de systèmes linéaires par des méthodes directes J. Erhel Janvier 2014 1 Inverse d une matrice carrée et systèmes linéaires Ce paragraphe a pour objet les matrices carrées et les systèmes linéaires.

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

Annexe 6. Notions d ordonnancement.

Annexe 6. Notions d ordonnancement. Annexe 6. Notions d ordonnancement. APP3 Optimisation Combinatoire: problèmes sur-contraints et ordonnancement. Mines-Nantes, option GIPAD, 2011-2012. Sophie.Demassey@mines-nantes.fr Résumé Ce document

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

Algorithmes d'apprentissage

Algorithmes d'apprentissage Algorithmes d'apprentissage 1 Agents qui apprennent à partir d'exemples La problématique : prise de décision automatisée à partir d'un ensemble d'exemples Diagnostic médical Réponse à une demande de prêt

Plus en détail

Ensimag 1ère année Algorithmique 1 Examen 2ième session 24 juin 2010. Algorithmique 1

Ensimag 1ère année Algorithmique 1 Examen 2ième session 24 juin 2010. Algorithmique 1 Algorithmique 1 Durée : 2h Machines électroniques interdites Tous documents papiers autorisés Il est conseillé de traiter les deux parties dans l ordre du sujet. Veuillez respecter les notations introduites

Plus en détail

STAGE IREM 0- Premiers pas en Python

STAGE IREM 0- Premiers pas en Python Université de Bordeaux 16-18 Février 2014/2015 STAGE IREM 0- Premiers pas en Python IREM de Bordeaux Affectation et expressions Le langage python permet tout d abord de faire des calculs. On peut évaluer

Plus en détail

Cours des Méthodes de Résolution Exactes Heuristiques et Métaheuristiques

Cours des Méthodes de Résolution Exactes Heuristiques et Métaheuristiques Université Mohammed V, Faculté des Sciences de Rabat Laboratoire de Recherche Mathématiques, Informatique et Applications Cours des Méthodes de Résolution Exactes Heuristiques et Métaheuristiques MASTER

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

Info0804. Cours 6. Optimisation combinatoire : Applications et compléments

Info0804. Cours 6. Optimisation combinatoire : Applications et compléments Recherche Opérationnelle Optimisation combinatoire : Applications et compléments Pierre Delisle Université de Reims Champagne-Ardenne Département de Mathématiques et Informatique 17 février 2014 Plan de

Plus en détail

www.h-k.fr/publications/objectif-agregation

www.h-k.fr/publications/objectif-agregation «Sur C, tout est connexe!» www.h-k.fr/publications/objectif-agregation L idée de cette note est de montrer que, contrairement à ce qui se passe sur R, «sur C, tout est connexe». Cet abus de langage se

Plus en détail

Compression Compression par dictionnaires

Compression Compression par dictionnaires Compression Compression par dictionnaires E. Jeandel Emmanuel.Jeandel at lif.univ-mrs.fr E. Jeandel, Lif CompressionCompression par dictionnaires 1/25 Compression par dictionnaire Principe : Avoir une

Plus en détail

MIS 102 Initiation à l Informatique

MIS 102 Initiation à l Informatique MIS 102 Initiation à l Informatique Responsables et cours : Cyril Gavoille Catherine Pannier Matthias Robine Marc Zeitoun Planning : 6 séances de cours 5 séances de TD (2h40) 4 séances de TP (2h40) + environ

Plus en détail

Programmation par contraintes. Laurent Beaudou

Programmation par contraintes. Laurent Beaudou Programmation par contraintes Laurent Beaudou On se trouve où? Un problème, une solution : la solution est-elle une solution du problème? simulation, vérification 2 On se trouve où? Un problème, une solution

Plus en détail

Représentation des Nombres

Représentation des Nombres Chapitre 5 Représentation des Nombres 5. Representation des entiers 5.. Principe des représentations en base b Base L entier écrit 344 correspond a 3 mille + 4 cent + dix + 4. Plus généralement a n a n...

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

Filtrage stochastique non linéaire par la théorie de représentation des martingales

Filtrage stochastique non linéaire par la théorie de représentation des martingales Filtrage stochastique non linéaire par la théorie de représentation des martingales Adriana Climescu-Haulica Laboratoire de Modélisation et Calcul Institut d Informatique et Mathématiques Appliquées de

Plus en détail

Correction du Baccalauréat S Amérique du Nord mai 2007

Correction du Baccalauréat S Amérique du Nord mai 2007 Correction du Baccalauréat S Amérique du Nord mai 7 EXERCICE points. Le plan (P) a une pour équation cartésienne : x+y z+ =. Les coordonnées de H vérifient cette équation donc H appartient à (P) et A n

Plus en détail

Programmation linéaire et Optimisation. Didier Smets

Programmation linéaire et Optimisation. Didier Smets Programmation linéaire et Optimisation Didier Smets Chapitre 1 Un problème d optimisation linéaire en dimension 2 On considère le cas d un fabricant d automobiles qui propose deux modèles à la vente, des

Plus en détail

Probabilités. Rappel : trois exemples. Exemple 2 : On dispose d un dé truqué. On sait que : p(1) = p(2) =1/6 ; p(3) = 1/3 p(4) = p(5) =1/12

Probabilités. Rappel : trois exemples. Exemple 2 : On dispose d un dé truqué. On sait que : p(1) = p(2) =1/6 ; p(3) = 1/3 p(4) = p(5) =1/12 Probabilités. I - Rappel : trois exemples. Exemple 1 : Dans une classe de 25 élèves, il y a 16 filles. Tous les élèves sont blonds ou bruns. Parmi les filles, 6 sont blondes. Parmi les garçons, 3 sont

Plus en détail

Laboratoire d Automatique et Productique Université de Batna, Algérie

Laboratoire d Automatique et Productique Université de Batna, Algérie Anale. Seria Informatică. Vol. IX fasc. 2 Annals. Computer Science Series. 9 th Tome st Fasc. 2 La sélection de paramètres d un système industriel par les colonies de fourmis Ouahab Kadri, L. Hayet Mouss,

Plus en détail

Ordonnancement temps réel

Ordonnancement temps réel Ordonnancement temps réel Laurent.Pautet@enst.fr Version 1.5 Problématique de l ordonnancement temps réel En fonctionnement normal, respecter les contraintes temporelles spécifiées par toutes les tâches

Plus en détail

CHAPITRE 5. Stratégies Mixtes

CHAPITRE 5. Stratégies Mixtes CHAPITRE 5 Stratégies Mixtes Un des problèmes inhérents au concept d équilibre de Nash en stratégies pures est que pour certains jeux, de tels équilibres n existent pas. P.ex.le jeu de Pierre, Papier,

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 à l étude des Corps Finis

Introduction à l étude des Corps Finis Introduction à l étude des Corps Finis Robert Rolland (Résumé) 1 Introduction La structure de corps fini intervient dans divers domaines des mathématiques, en particulier dans la théorie de Galois sur

Plus en détail

ÉPREUVE COMMUNE DE TIPE 2008 - Partie D

ÉPREUVE COMMUNE DE TIPE 2008 - Partie D ÉPREUVE COMMUNE DE TIPE 2008 - Partie D TITRE : Les Fonctions de Hachage Temps de préparation :.. 2 h 15 minutes Temps de présentation devant le jury :.10 minutes Entretien avec le jury :..10 minutes GUIDE

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

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

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

3 Approximation de solutions d équations

3 Approximation de solutions d équations 3 Approximation de solutions d équations Une équation scalaire a la forme générale f(x) =0où f est une fonction de IR dans IR. Un système de n équations à n inconnues peut aussi se mettre sous une telle

Plus en détail

SNT4U16 - Initiation à la programmation 2014-2015. TD - Dynamique de POP III - Fichiers sources

SNT4U16 - Initiation à la programmation 2014-2015. TD - Dynamique de POP III - Fichiers sources SNT4U16 - Initiation à la programmation Licence SVT 2 ème année 2014-2015 TD - Dynamique de POP III - Fichiers sources contacts : mathias.gauduchon@univ-amu.fr, melika.baklouti@univ-amu.fr, xavier.giraud@univ-amu.fr,

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

Méthodes de quadrature. Polytech Paris-UPMC. - p. 1/48

Méthodes de quadrature. Polytech Paris-UPMC. - p. 1/48 Méthodes de Polytech Paris-UPMC - p. 1/48 Polynôme d interpolation de Preuve et polynôme de Calcul de l erreur d interpolation Étude de la formule d erreur Autres méthodes - p. 2/48 Polynôme d interpolation

Plus en détail

LES TYPES DE DONNÉES DU LANGAGE PASCAL

LES TYPES DE DONNÉES DU LANGAGE PASCAL LES TYPES DE DONNÉES DU LANGAGE PASCAL 75 LES TYPES DE DONNÉES DU LANGAGE PASCAL CHAPITRE 4 OBJECTIFS PRÉSENTER LES NOTIONS D ÉTIQUETTE, DE CONS- TANTE ET DE IABLE DANS LE CONTEXTE DU LAN- GAGE PASCAL.

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

Exercices - Polynômes : corrigé. Opérations sur les polynômes

Exercices - Polynômes : corrigé. Opérations sur les polynômes Opérations sur les polynômes Exercice 1 - Carré - L1/Math Sup - Si P = Q est le carré d un polynôme, alors Q est nécessairement de degré, et son coefficient dominant est égal à 1. On peut donc écrire Q(X)

Plus en détail

Gestion mémoire et Représentation intermédiaire

Gestion mémoire et Représentation intermédiaire Gestion mémoire et Représentation intermédiaire Pablo de Oliveira March 23, 2015 I Gestion Memoire Variables locales Les variables locales sont stockées: Soit dans un registre,

Plus en détail

Java Licence Professionnelle CISII, 2009-10

Java Licence Professionnelle CISII, 2009-10 Java Licence Professionnelle CISII, 2009-10 Cours 4 : Programmation structurée (c) http://www.loria.fr/~tabbone/cours.html 1 Principe - Les méthodes sont structurées en blocs par les structures de la programmation

Plus en détail

BACCALAUREAT GENERAL MATHÉMATIQUES

BACCALAUREAT GENERAL MATHÉMATIQUES BACCALAUREAT GENERAL FEVRIER 2014 MATHÉMATIQUES SERIE : ES Durée de l épreuve : 3 heures Coefficient : 5 (ES), 4 (L) 7(spe ES) Les calculatrices électroniques de poche sont autorisées, conformement à la

Plus en détail

Exercices Alternatifs. Quelqu un aurait-il vu passer un polynôme?

Exercices Alternatifs. Quelqu un aurait-il vu passer un polynôme? Exercices Alternatifs Quelqu un aurait-il vu passer un polynôme? c 2004 Frédéric Le Roux, François Béguin (copyleft LDL : Licence pour Documents Libres). Sources et figures: polynome-lagrange/. Version

Plus en détail

Exercices Alternatifs. Quelqu un aurait-il vu passer un polynôme?

Exercices Alternatifs. Quelqu un aurait-il vu passer un polynôme? Exercices Alternatifs Quelqu un aurait-il vu passer un polynôme? c 2004 Frédéric Le Roux, François Béguin (copyleft LDL : Licence pour Documents Libres). Sources et figures: polynome-lagrange/. Version

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

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

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

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

Calcul Formel et Numérique, Partie I

Calcul Formel et Numérique, Partie I Calcul Formel et Numérique N.Vandenberghe nvdb@irphe.univ-mrs.fr Table des matières 1 Introduction à Matlab 2 1.1 Quelques généralités.......................... 2 2 Où trouver des informations 2 3 Opérations

Plus en détail

Application 1- VBA : Test de comportements d'investissements

Application 1- VBA : Test de comportements d'investissements Application 1- VBA : Test de comportements d'investissements Notions mobilisées Chapitres 1 à 5 du cours - Exemple de récupération de cours en ligne 1ère approche des objets (feuilles et classeurs). Corps

Plus en détail

Probabilités sur un univers fini

Probabilités sur un univers fini [http://mp.cpgedupuydelome.fr] édité le 10 août 2015 Enoncés 1 Proailités sur un univers fini Evènements et langage ensemliste A quelle condition sur (a,, c, d) ]0, 1[ 4 existe-t-il une proailité P sur

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

MABioVis. Bio-informatique et la

MABioVis. Bio-informatique et la MABioVis Modèles et Algorithmes pour la Bio-informatique et la Visualisation Visite ENS Cachan 5 janvier 2011 MABioVis G GUY MELANÇON (PR UFR Maths Info / EPI GRAVITE) (là, maintenant) - MABioVis DAVID

Plus en détail

Deux disques dans un carré

Deux disques dans un carré Deux disques dans un carré Table des matières 1 Fiche résumé 2 2 Fiche élève Seconde - version 1 3 2.1 Le problème............................................... 3 2.2 Construction de la figure avec geogebra...............................

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

Baccalauréat ES/L Amérique du Sud 21 novembre 2013

Baccalauréat ES/L Amérique du Sud 21 novembre 2013 Baccalauréat ES/L Amérique du Sud 21 novembre 2013 A. P. M. E. P. EXERCICE 1 Commun à tous les candidats 5 points Une entreprise informatique produit et vend des clés USB. La vente de ces clés est réalisée

Plus en détail