850 likes | 992 Views
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 .
E N D
MATHÉMATIQUES DISCRÈTESChapitres 6-7 François Meunier DMI
Relations n-aire • Une relation n-aire R sur des ensembles A1,…,An,R:A1×…×An où R:A1,…,An, est un sous-ensemble R A1× … × An. • Les ensembles Ai sont les domaines de R. • Le degré de R est n (nombre d’ensembles A). • R est fonctionnelle sur le domaine Aisi elle contient au plus un n-tuple (…, ai ,…) pour chaque valeur ai dans le domaine Ai.
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 Ai est une clé primaire de la BD si la relation R est fonctionnelle dans Ai. • 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 {Ai, Aj, …} telle que R contient au plus 1 n-tuple (…,ai,…,aj,…) pour chaque valeur composée (ai, aj,…)Ai×Aj×…
Opérateurs de sélection (Select) • Avec A un domaine n-aire A=A1×…×An, et avec C:A→{T,F} une condition (prédicat) sur les éléments (n-tuples) des A. • Alors, l’opérateur de sélectionsC 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., RA,sC(R) = {aR | sC(a) = T}
Opération de Sélection: Exemple • 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), …} R1select =( R, BoardType, Chalk) R1={(Fan171,80, Chalk, Yes), (Nek138, 50, Chalk, No), …} R2select =(A, Computer, Yes) = select (select(R1), Computer, Yes) R2 = {(Fan171,80, Chalk, Yes),…}
Opérateur de Projection • Avec A = A1×…×An n’importe quels domaines n-aire, et avec {ik}=(i1,…,im) une séquence des indices entre 1 et n, • Où 1 ≤ ik ≤ n pour tout 1 ≤ k ≤ m. • Alors l’ opérateur deprojection sur n-tuplesestdé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), …} R1 = project (R, {P, S}) donne une relation limitée aux attributs place et number of seats. R1 ={(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 R1, et le tuple (B,C) est dans R2, alors le tuple (A,B,C) est dans la jointure J(R1,R2). • A, B, et C peuvent être des séquences d’éléments (plusieurs champs), pas juste de simples éléments.
Exemple: jointure (join) • Avec R1 une table de cours, avec la relation Professeurs et Cours. • Avec R2 une table de locaux associés aux cours, avec la relation des Cours aux Locaux, Périodes. • Alors J(R1,R2) est une cédule de cours, (professeur, cours, local, période).
Prof. Cours FM SIF1033 FM PRO1027 FM SIF1053 FM PIF1005 Cours Local Période SIF1033 2083R 4 PRO1027 1091R 2 SIF1033 1068R 1 PIF1055 1026R 1 Exemple: jointure (join) R2 R1
Résultat du Join (J(R1, R2))? Prof. Cours Local Période FM SIF1033 2083R 4 FM PRO1027 1091R 2 FM SIF1053 1068R 1 FM PIF1005 1026R 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 MR = [mij], avec mij = 1 ssi (ai,bj)R. • Ex: Supposons Joe travail avec Susan et Mary, Fred travail avec Mary, et Mark avec Sally. • Alors la matrice 0-1représentela relationtravail: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). any-thing any-thing anything any-thing any-thing Réflexive:1’s sur la diagonale Irréflexive:0’s sur la diagonale Symétrique:1-1 de chaque côté de ladiagonale Antisymétrique: m[i.j] = 0/1m[j,i] = 1/0 ij
Graphes Orientés • Un GO G=(VG,EG) est un ensemble VGde sommets (noeuds) avec un ensemble EGVG×VG de liens (arcs). Notez qu’une relation R:A×B peut être représentée par un GO GR=(VG=AB, EG=R). Liens: EG(flèches blues) Graph rep. GR: Matrice: MR: Joe Susan Fred Mary Mark Sally Noeuds: VG(points noirs)
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 liensbidirectionnels Antisymétrique:Pas de lienbidirectionnnel Aussi: asymétrique & non-antisymétrique Aussi: non-refléxive & non-irréflexive
Exemple • 1 0 • 0 1 1 • 0 1 1 M = Réflexive? Symétrique? Antisymétrique?
GO Réflexive, Symétrique, Transitif a a b a a b b b réflexive symétrique transitive c c d c d d d c 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 fermetureréflexive de la relation R sur A est obtenue en ajoutant (a,a) à R pour chaque aA. I.e.,R IA • 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é deR 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 :≡ {(a1,a2) | f(a1)=f(a2)} 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 {1,2} • Sommets étiquetés avec le # de chaque hôte • Chaque lien représente une connection entre deux hôtes 1 2 {2,3} {1,3} {2,4} {3,4} 3 4 {1,4}
Graphes Simples • DEF: Un graphe simpleG = (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 2n(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 e1 e2 • L’étiquetage des liens permet de distinguer les liens sur le même sommet. L’étiquetage est en fait une fonction: e1 {1,2}, e2 {1,2}, e3 {1,3}, e4 {2,3}, e5 {2,3}, e6 {1,2} 1 2 e4 e5 e3 e6 3 4
Multigraphes • DEF: Un multi-grapheG = (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) e1 {1,2}, e2 {1,2}, e3 {1,3}, e4 {2,3}, e5 {2}, e6 {2}, e7 {4} e6 e1 e2 1 2 e5 e3 e4 e7 3 4
Multigraphes • DEF: Un pseudographeG = (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.
Graphesnon orientés(Terminologie) • Les sommets sont adjacents si ils sont les terminaisons du même lien. e1 e2 1 2 e4 e5 e3 e6 3 4
Graphesnon orientés (Terminologie) e1 • 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 e2 1 2 e4 e5 e3 e6 3 4
Graphesnon orientés (Terminologie) • Un sommet est incident à un lien (et un lien est incident à un sommet) si il est la terminaison du lien. e1 e2 1 2 e4 e5 e3 e6 3 4
Graphesnon orientés (Terminologie) e1 • e1, e2, e4, e5 , e6 sont incidents à 2 2 est incident à e1, e2, e4, e5, e6 3 est incident à e3, e4, e5 4 n’est pas incident avec n’importe quels liens e2 1 2 e4 e5 e3 e6 3 4
Graphes orientés • Les GO ont déjà été utilisés pour représenter des ralations: 2 1 3 4
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. (2,2) 2 (2,3) (1,2) (1,3) (1,1) (3,3) 1 3 (2,4) (3,4) 4 (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 sourcedu 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 2n·n.
Multigraphes orientés • Si nous pouvons avoir des liens multiples dans un GO 2 1 3
Multigraphes orientés • L’ensemble E (domaine) est projeté sur l’ensemble V V (codomaine). e1(1,2), e2(1,2), e3(2,2), e4 (2,3), e5 (2,3), e6 (3,3), e7 (3,3) e3 2 e4 e1 e6 e5 e2 1 3 e7
Degré • Le degré d’un sommet est le nombre de liens joignants (IN/OUT) ce sommet : e6 e1 e2 1 2 e5 e4 e3 3
Degré e6 e1 agrandi e2 1 2 e5 e4 e3 3
Degré • Alors deg(2) = 7 = 1 +1+1+2+2 (lien simple) (loupe) e6 e1 agrandie e2 1 2 e5 e4 e3 3
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). 2 1 3
Degré (liens orientés) deg-(1) = 0 (IN) deg-(2) = 3 deg-(3) = 4 deg+(1) = 2 (OUT) deg+(2) = 3 deg+(3) = 2 2 1 3