MATHÉMATIQUES DISCRÈTES Chapitres 6-7 François Meunier DMI
Relations n-aire Une relation n-aire R sur des ensembles A 1,…,A n, R:A 1 ×…×A n où R:A 1,…,A n, est un sous-ensemble R A 1 × … × A n. Les ensembles A i sont les domaines de R. Le degré de R est n (nombre d’ensembles A). R est fonctionnelle sur le domaine A i si elle contient au plus un n-tuple (…, a i,…) pour chaque valeur a i dans le domaine A i.
Exemple Posons R une relation sur NxNxN consistant de triplets (a,b,c) où a, b, c des entiers avec a < b < c. Alors (1, 2, 3) est un élément de R (2, 4, 3) n’est pas dans R Posons R une relation avec 5-tuples (A, N, S, D, T). A: Airline, N: flight number, S: starting point, D: destination, T: departure time Degré de la relation est 5 Domaine: ensembles des cie aériennes, des numéros de vol, des villes, des villes, des temps
BDs Relationnelles Une BD relationnelle est une relations R n- aire. Un domaine A i est une clé primaire de la BD si la relation R est fonctionnelle dans A i. Des combinaisons de domaines sont identifiées uniquement par n-tuples : clé composée Une clé composée de la BD est un ensemble de domaines {A i, A j, …} telle que R contient au plus 1 n-tuple (…,a i,…,a j,…) pour chaque valeur composée (a i, a j,…) A i ×A j ×…
Opérateurs de sélection (Select) Avec A un domaine n-aire A=A 1 ×…×A n, et avec C:A→{T,F} une condition (prédicat) sur les éléments (n-tuples) des A. Alors, l’opérateur de sélection s C est un opérateur qui projette n’importe quelles relations n-aire R sur A vers la relation n- aire comprennant les n-tuples de R qui satisfont C. I.e., R A, s C (R) = {a R | s C (a) = T}
Avec Rooms (salles de conférence) une relation avec les attributs {Place, Seats, BoardType, Computer} A ={(P, S, B, C)} R={(Fan171, 80, Chalk, Yes), (Lws210, 25, No, Yes), (Nek138, 50, Chalk, No), (Agr212, 200, No, Yes), …} R 1 select =( R, BoardType, Chalk) R 1 ={(Fan171,80, Chalk, Yes), (Nek138, 50, Chalk, No), …} R 2 select =(A, Computer, Yes) = select (select(R1), Computer, Yes) R 2 = {(Fan171,80, Chalk, Yes),…} Opération de Sélection: Exemple
Opérateur de Projection Avec A = A 1 ×…×A n n’importe quels domaines n-aire, et avec {i k }=(i 1,…,i m ) une séquence des indices entre 1 et n, Où 1 ≤ i k ≤ n pour tout 1 ≤ k ≤ m. Alors l’ opérateur de projection sur n- tuples est défini par:
Exemple: Projection Avec Rooms une relation avec les attributs {Place, Seats, BoardType, Computer} A ={(P, S, B, C)} R={(Fan171, 80, Chalk, Yes), (Lws210, 25, No, Yes), (Nek138, 50, Chalk, No), (Agr212, 200, No, Yes), …} R 1 = project (R, {P, S}) donne une relation limitée aux attributs place et number of seats. R 1 ={(Fan171, 80), (Lws210, 25), (Nek138, 50), (Agr212, 200), …}
Opérateur de jointure (join) Réunir 2 relations pour former une ralation combinée. Si le tuple (A,B) est dans R 1, et le tuple (B,C) est dans R 2, alors le tuple (A,B,C) est dans la jointure J(R 1,R 2 ). A, B, et C peuvent être des séquences d’éléments (plusieurs champs), pas juste de simples éléments.
Exemple: jointure (join) Avec R 1 une table de cours, avec la relation Professeurs et Cours. Avec R 2 une table de locaux associés aux cours, avec la relation des Cours aux Locaux, Périodes. Alors J(R 1,R 2 ) est une cédule de cours, (professeur, cours, local, période).
Exemple: jointure (join) Prof. Cours FM SIF1033 FM PRO1027 FM SIF1053 FM PIF1005 Cours Local Période SIF R 4 PRO R 2 SIF R 1 PIF R 1 R1 R2
Résultat du Join (J(R1, R2))? Prof. Cours Local Période FM SIF R 4 FM PRO R 2 FM SIF R 1 FM PIF R 1
Représentation des Relations Représenter des relations n-aires: Liste explicite de tuples. Avec une fonction sur le domaine donnant {V,F}. Ou un algorithme qui calcule cette fonction. Représentation des relations binaires: Forme matricielle (0-1). Graphe Orienté.
Matrices (0-1) Pour représenter une relation binaire R:A×B par une matrice |A|×|B| 0-1 M R = [m ij ], avec m ij = 1 ssi (a i,b j ) R. Ex: Supposons Joe travail avec Susan et Mary, Fred travail avec Mary, et Mark avec Sally. Alors la matrice 0-1 représente la relation travail:Homme×Femme
Relation Réflexive, Symétrique Termes: Réflexive, non-refléxive, irréflexive, symétrique, asymétrique, et antisymétrique. Ces caractéristiques sont facilement reconnaissables par inspection d’une matrice (0-1). Réflexive: 1’s sur la diagonale Irréflexive: 0’s sur la diagonale Symétrique: 1-1 de chaque côté de la diagonale Antisymétrique: m[i.j] = 0/1 m[j,i] = 1/0 i j any- thing anything
Graphes Orientés Un GO G=(V G,E G ) est un ensemble V G de sommets (noeuds) avec un ensemble E G V G ×V G de liens (arcs). Notez qu’une relation R:A×B peut être représentée par un GO G R =(V G =A B, E G =R). Matrice: M R : Graph rep. G R : Joe Fred Mark Susan Mary Sally Noeuds: V G (points noirs) Liens: E G (flèches blues)
GO Réflexif, Symétrique Facile de reconnaître les propriétés réflexive/irréflexive/ symétrie/antisymétrie par l’inspection d’un GO. Réflexive: Loupe/noeud Irréflexive: pas de loupe Symétrique: Tous les liens bidirectionnels Antisymétrique: Pas de lien bidirectionnnel Aussi: asymétrique & non-antisymétriqueAussi: non-refléxive & non-irréflexive
Exemple M = Réflexive? Symétrique? Antisymétrique?
GO Réflexive, Symétrique, Transitif a b d c a b d c a b d c a b d c réflexivesymétriquetransitive R={(a,b),(b,c),(c,d),(d,a)}
Fermeture des Relations Pour chaque propriété X, la fermeture de X d’un ensemble A est définie par le plus petit super- ensemble de A ayant cette propriété. La fermeture réflexive de la relation R sur A est obtenue en ajoutant (a,a) à R pour chaque a A. I.e., R I A La fermeture symétrique de R est obtenue en ajoutant (b,a) à R pour chaque (a,b) dans R. I.e., R R −1 La fermeture transitive ou relation de connectivité de R est obtenue en ajoutant à répétition (a,c) à R pour chaque (a,b),(b,c) dans R. I.e.,
Relations d’Equivalence Une relation d’équivalence sur un ensemble A est une relation binaire sur A qui est réflexive, symétrique, et transitive. Ex:, = l’égalité est une relation d’équivalence. Pour n’importe quelles fonctions f:A→B, la relation “a la même valeur de f”, ou = f :≡ {(a 1,a 2 ) | f(a 1 )=f(a 2 )} est une relation d’équivalence, Ex:, avec m=“mère de” alors = m = “a la même mère” est une relation d’équivalence
Exemples: Relation d’équivalence “Les chaînes a et b sont de mêmes longueurs.” “Les entiers a et b ont la même valeur absolue.” “Les nombres réels a et b ont la même partie fractionnaire.” (i.e., a − b Z) “Les entiers a et b ont la même valeur modulo m.” (pour m>1)
Ordonnancement partiel Une relation R sur A est en ordre partiel ssi elle est réflexive, antisymétrique, et transitive. Le symbole ≼ est souvent utilisé pour représenter ces relations. Une ensemble A avec un ordre partiel ≼ sur A est un ensemble ordonné partiellement et est dénoté (A, ≼ ). Exemples: ≤, ≥ sur des réels, , sur des ensembles. 3 ≤ 3 : Réflexif 3 ≤ 4 mais 4 ≤ 3 : Antisymétrique 3 ≤ 4 et 4 ≤ 5 alors 3 ≤ 5 : Transitif
Ordonnancement total Autre exemple: la relation est un diviseur | sur Z +. Notez qu ’ il n ’ est pas toujours nécessaire que soit a ≼ b ou b ≼ a. 3 | 9 mais pas 5 | 7 et 7 | 5 3 et 9 sont comparables mais pas 5 et 7 Donc la relation “ est un diviseur ” est un ordonnancement “ partial ”. Si nous voulons un ordonnancement total alors n ’ importe quelles paires d ’ éléments de l ’ ensemble (A, ≼ ) doivent être comparables. (Z, ≤ ) est un ensemble totalement ordonné.
Utilités de la théorie des Graphes en TI Systèmes de navigation DBs efficientes Un bot pour chercher de l’informations sur le WWW Représenter les modèles computationnels
Graphes –Notions Intuitives Un graphe est un ensemble de sommets (ou noeuds) représentés par des cercles (points) et connectés par des liens (lignes).. Mathématiquement, les graphes sont des relations binaires sur l’ensemble des sommets (sauf pour les multigraphes). En structure des données nous introduisons la notion d’arbre en premier et généralisons aux graphes ensuite. Dans ce cours nous introduisons d’abord les graphes et ensuite les arbres.
Graphes Simples Différentes applications requièrent differents types de graphes. Ex: Supposons un LAN Bidirectionnel (non directionnel) Pas de loupe (pas de communication avec soi) Une seule connection entre hôtes
Graphes Simples Sommets étiquetés avec le # de chaque hôte Chaque lien représente une connection entre deux hôtes {1,2} {3,4} {2,4}{1,3} {2,3} {1,4}
Graphes Simples DEF: Un graphe simple G = (V,E ) consiste en un ensemble V de sommets (noeuds) et un ensemble E (possiblement vide) de liens où chaque lien est un sous-ensemble de V avec une cardinalité de 2 (paire non ordonnée).
Graphes Simples Avec un ensemble V de n éléments, combien de liens sont possibles? Le nombre de paires dans V = C (n,2) = n · (n -1) / 2 Combien de graphes peuvent être créés avec un ensemble de sommets V ? Le nombre de sous-ensembles de sommets dans V. Avec n · (n -1) / 2 liens possibles, donc le nombre de graphes sur V est 2 n(n -1)/2
Multigraphes Si les hôtes sont connectés via internet plutôt que directement, donc plusieurs routes peuvent être choisies pour chaque connection. Dépendant du traffic, une route pourrait être meilleure qu’une autre. Donc plusieurs liens multiples possibles, mais toujours sans loupe.
Multigraphes L’étiquetage des liens permet de distinguer les liens sur le même sommet. L’étiquetage est en fait une fonction: e 1 {1,2}, e 2 {1,2}, e 3 {1,3}, e 4 {2,3}, e 5 {2,3}, e 6 {1,2} e1e1 e3e3 e2e2 e4e4 e5e5 e6e6
Multigraphes DEF: Un multi-graphe G = (V,E,f ) consiste en un ensemble V de sommets (ou noeuds), un ensemble E de liens et une fonction f avec comme domaine E et comme codomaine l’ensemble de paires dans V.
Pseudographes Si les loupes sont permises nous aurons alors un pseudographe: Les liens peuvent être associés à un sommet individuel (loupe) e 1 {1,2}, e 2 {1,2}, e 3 {1,3}, e 4 {2,3}, e 5 {2}, e 6 {2}, e 7 {4} e1e1 e3e3 e2e2 e4e4 e5e5 e6e6 e7e7
Multigraphes DEF: Un pseudographe G = (V,E,f ) consiste en un ensemble V de sommets (noeuds), un ensemble E de liens et une fonction f avec comme domaine E et comme codomaine l’ensemble des paires et des singletons dans V.
Graphes non orientés(Terminologie) Les sommets sont adjacents si ils sont les terminaisons du même lien e1e1 e3e3 e2e2 e4e4 e5e5 e6e6
Graphes non orientés (Terminologie) 1 est adjacent de 2 et 3 2 est adjacent de 1 et 3 3 est adjacent de 1 et 2 4 n’est pas adjacent à aucun sommet e1e1 e3e3 e2e2 e4e4 e5e5 e6e6
Graphes non orientés (Terminologie) Un sommet est incident à un lien (et un lien est incident à un sommet) si il est la terminaison du lien e1e1 e3e3 e2e2 e4e4 e5e5 e6e6
Graphes non orientés (Terminologie) e 1, e 2, e 4, e 5, e 6 sont incidents à 2 2 est incident à e 1, e 2, e 4, e 5, e 6 3 est incident à e 3, e 4, e 5 4 n’est pas incident avec n’importe quels liens e1e1 e3e3 e2e2 e4e4 e5e5 e6e6
Graphes orientés Les GO ont déjà été utilisés pour représenter des ralations:
Graphes orientés Chaque lien est orienté donc correspond à une paire ordonnée (ou tuple). L’ensemble des liens E est la représentation de la relation sur V (1,2) (1,1) (2,2) (2,4) (1,3) (2,3) (3,4) (3,3) (4,4)
Graphes orientés DEF: Un graphe orienté G = (V,E ) consiste en un ensemble V de sommets et un ensemble E de liens evec E V V. Un lien (a,b), a b avec a la source du lien et b la cible du lien.
Graphes orientés Pour un ensemble V avec n éléments, combien de GO peuvent être créés? Le même que le nombre de relations sur V, ce nombre de sous-ensembles de V V est 2 n·n.
Multigraphes orientés Si nous pouvons avoir des liens multiples dans un GO 1 2 3
Multigraphes orientés L’ensemble E (domaine) est projeté sur l’ensemble V V (codomaine). e 1 (1,2), e 2 (1,2), e 3 (2,2), e 4 (2,3), e 5 (2,3), e 6 (3,3), e 7 (3,3) e1e1 e3e3 e2e2 e4e4 e5e5 e7e7 e6e6
Degré Le degré d’un sommet est le nombre de liens joignants (IN/OUT) ce sommet : 12 3 e1e1 e3e3 e2e2 e4e4 e5e5 e6e6
Degré 12 3 e1e1 e3e3 e2e2 e4e4 e5e5 e6e6 agrandi
Degré Alors deg(2) = 7 = (lien simple) (loupe) 12 3 e1e1 e3e3 e2e2 e4e4 e5e5 e6e6 agrandie
Degré (liens orientés) Le degré-in d’un sommet (deg - ) compte les liens entrants (IN). Le degré-out (deg + ) compte les liens sortants (OUT)
Degré (liens orientés) deg - (1) = 0 (IN) deg - (2) = 3 deg - (3) = 4 deg + (1) = 2 (OUT) deg + (2) = 3 deg + (3) =
Théorême Poignée de mains Deux façons de déduire le nombre de liens total: 1. Compter l’ensemble des liens: 7 2. Compter en sommant le degré de chaque sommet et diviser par 2 (double comptage des liens): ( deg(1)+deg(2)+deg(3)+deg(4) )/2 = ( )/2 = 14/2 = e1e1 e3e3 e2e2 e4e4 e5e5 e6e6 e7e7
Théorême Poignée de mains Graphe non orienté Graphe orienté
Théorême Poignée de mains Si nous avons une équipe de 5 personnes, chaque personne peut-elle être en équipe avec seulement 3 autres personnes? Imaginons un graphe avec 5 noeuds (personnes) et des liens non orientés entre membres de l’équipe ( graphe simple, si les liens sont symétriques et irréflexifs).
Théorême Poignée de mains Nombre de membres de l’équipe de chaque personne est en fait le degré de chaque noeud (personne). |E | = (somme des degrés)/2 ou 2|E | = (somme des degrés) = (5·3) = 15. Impossible puisque 15 n’est pas pair.
Théorême Poignée de mains Lemme: Le nombre de sommets de degré impair doit être pair dans un graphe non orienté. Preuve : Sinon nous aurions 2|E | = Somme de nombres pairs + un nombre impair de nombres impairs pair = pair + impair – impossible.
Formes des graphes Graphes Complets - K n Un graphe simple est complet si chaque paire de sommets distincts partage un lien. La notation K n dénote un graphe complet de n sommets. K 1 K 2 K 3 K 4 K 5
Formes des graphes Cycles - C n Un cycle C n est un graphe cyclique avec V = {0,1,2,…,n-1} où un sommet i est connecté à i +1 mod n et à i -1 mod n. Ces graphes cycliques ressemblent à des polygones: C 1 C 2 C 3 C 4 C 5
Matrice d’adjacence Rappel: représentation des ralations sur un ensemble avec une matrice de booléens : R GO(R) M R
Matrice d’adjacence Sachant que les GO sont des relations sur leurs ensembles de sommets, peuvent être représentés par une matrice d’adjacence : Pour un GO G = (V,E ) définie par une matrice A G par: Rangées, Colonnes: 1 par sommet dans V Valeur à la i ième rangée et j ième colonne est 1 si i ième sommet est lié au j ième sommet (i j ) 0 autrement
Matrice d’Adjacence (Multigraphes orientés: MO) Facile de généraliser aux MO en insérant le nombre de liens entre sommets, au lieu des 0 et 1 babituels: Pour un MO G = (V,E ) défini la matrice A G par: Rangées, Colonnes: 1/sommet dans V Valeur à la i ième rangée et la j ième colonne est Le nombre de liens avec le i ième sommet comme début et le j ième sommet comme fin
Matrice d’Adjacence (Multigraphes orientés: MO)
Matrice d’adjacence (Générale) Un graphe non orienté peut être vu comme un GO en remplaçant chaque lien non orienté par 2 liens orientés opposés, sauf pour les loupes ou nous ajoutons qu’un seul lien orienté. Ex:
Matrice d’adjacence (Générale) La matrice est symétrique
Matrice d’adjacence (Générale) Pour un graphe non orienté G = (V,E ) défini par une matrice A G avec: Rangées, Colonnes: 1/élément de V Valeur à la i ième rangée et la j ième colonne est le nombre de liens incidents avec les sommets i et j. Équivalent à convertir en premier en un GO.
Isomorphisme Diverses notions mathématiques font référence au concept d’équivalence, en opposition au concept d’égalité: Équivalence d’ensembles est la bijectivité: Ex {,, } {12, 23, 43} Équivalence des graphes est l’ isomorphisme: Ex
Isomorphisme Intuitivement, 2 graphes sont isomorphes si nous pouvons plier, étirer et repositionner les sommets du premier graphe, produisant le second graphe. Etymologiquement, isomorphique veut dire “même forme”. Ex: En détordant: nous obtenons:
Isomorphisme (Graphes non orientés) DEF: Posons G 1 = (V 1, E 1 ) et G 2 = (V 2, E 2 ) sont des pseudographes. Avec f :V 1 V 2 une fonction: 1) f est bijective 2) pour tous sommets u,v dans V 1, le nombre de liens entre u et v dans G 1 est le même que le nombre de liens entre f (u) et f (v ) dans G 2. Alors f est un isomorphisme et G 1 est isomorphique à G 2.
Isomorphisme (Graphes orientés) DEF: Posons G 1 = (V 1, E 1 ) et G 2 = (V 2, E 2 ) sont des multigraphes orientés. Alors f :V 1 V 2 une fonction: 1) f est bijective 2) pour tous sommets u,v dans V 1, le nombre de liens de u à v dans G 1 est le même que le nombre de liens entre f (u) et f (v ) dans G 2. Alors f est un isomorphisme et G 1 est isomorphique à G 2.
Isomorphisme -Exemple Ex: Prouvons que est isomorphique à. Étiquetons d’abord les sommets:
Isomorphisme -Exemple Avec f (1) = 1 et parcourons l’étoile dans le sens horaire
Isomorphisme -Exemple Avec f (1) = 1 et parcourons l’étoile dans le sens horaire. Le prochain sommet rencontré est le 3, pas le 2 fixons donc f (2) =
Isomorphisme -Exemple Avec f (1) = 1 et parcourons l’étoile dans le sens horaire. Le prochain sommet rencontré est le 3, pas le 2 fixons donc f (2) = 3. Ensuite, le prochain sommet est 5, fixons f (3) =
Isomorphisme -Exemple Avec f (1) = 1 et parcourons l’étoile dans le sens horaire. Le prochain sommet rencontré est le 3, pas le 2 fixé donc f (2) = 3. Ensuite, le prochain sommet est 5, fixons f (3) = 5. Ensuite, f (4) =
Isomorphisme -Exemple Avec f (1) = 1 et parcourons l’étoile dans le sens horaire. Le prochain sommet rencontré est le 3, pas le 2 fixé donc f (2) = 3. Ensuite, le prochain sommet est 5, fixons f (3) = 5. Ensuite, f (4) = 2. f (5) =
Isomorphisme -Exemple Avec f (1) = 1 et parcourons l’étoile dans le sens horaire. Le prochain sommet rencontré est le 3, pas le 2 fixé donc f (2) = 3. Ensuite, le prochain sommet est 5, fixons f (3) = 5. Ensuite, f (4) = 2. f (5) = 4. f (1) =1 f est un morphisme
Isomorphisme -Exemple Avec f (1) = 1 et parcourons l’étoile dans le sens horaire. Le prochain sommet rencontré est le 3, pas le 2 fixé donc f (2) = 3. Ensuite, le prochain sommet est 5, fixons f (3) = 5. Ensuite, f (4) = 2. f (5) = 4. f (1) =1 f est un morphisme. f étant bijective donc un isomorphisme
Chemin le plus court
Chemin le plus court: Algorithme de Dijkstra
u un sommet dans S avec L(u) minimal S = S U u
Chemin le plus court: Algorithme de Dijkstra
Algorithme du commis voyageur