Modélisation par le concept de graphe
Graphe (orienté) G (N, A) N : Ensemble de noeuds (sommets), noté 1, ... n, Cardinal (N) = n A : Ensemble de couples issus de N x N - arc - (i, j) : i noeud initial, j noeud final 2 1 3 4 5
Définitions p-Graphe : Un graphe est un p-graphe ssi pour tout couple (i,j) il n'existe pas plus de p arcs reliant i à j Fonction d'incidence : : A -> N x N G (N, A, ,, ) Etiquettage des noeuds et des arcs -> Type abstrait -> fonctions de manipulation : successeurs (+), prédécesseurs ( -), ...
Exemple + (1) = {2, 4} boucle (arc (2, 2)) - (2) = {1, 2, 4} 3 4 5 + (1) = {2, 4} boucle (arc (2, 2)) - (2) = {1, 2, 4} 2-graphe (2 arcs (5, 4))
Définitions (2) Demi-degré d'un noeud i : Extérieur + Intérieur Extérieur : nombre d'arcs ayant i comme extrémité intiale (cardinal de +(i)) Intérieur : ayant i comme extrémité finale Cocycle d'un ensemble A' d'arcs inclus dans A : + (A') + - (A') + : Ensemble des arcs ayant leur extrémité initiale dans A' et finale dans A \ A' - : Ensemble des arcs ayant leur extrémité finale dans A \ A' et initiale dans A'
Chaîne / Cycle (-> non orienté) Chaine : Sequence d'arètes telle que chaque arête de la séquence (sauf la 1ere et dernieer) ait une extrémité commune avec l'arête précédente et l'autre extrémité commune avec l'arête suivante Elémentaire : on ne passe pas deux fois par le même sommet Cycle : chaine dont les extrémités coïncident Cycle élémentaire : chaine élémentaire + minimal (pas d'autre cycle)
Chemin (dans un contexte orienté) Chaine dont tous les arcs sont orientés dans le même sens simple : ne comporte pas deux fois le même arc élémentaire : ne rencontre pas deux fois le même sommet élémentaire => simple mais pas l'inverse circuit : chemin dont les extrémités coïncident circuit élémentaire : sommets ont un degré égal à 2 Réseau de transport : opérateur de base (sous contrainte)
Exemple Chaîne : (a1, a5, a6, a3, a2) Cycle : (a1, a5, a6, a4) (-> non élémentaire) a3 a4 a5 3 Cycle : (a1, a5, a6, a4) 4 5 (-> élémentaire) a6 Chemin : (a1, a5, a7, a3) a1 2 1 a2 (-> non élémentaire) a3 a4 a5 3 Circuit : (a5, a7, a3) 4 a6 5 a7
Il existe une chaine joignant tout sommet i à tout sommet j Connexité Il existe une chaine joignant tout sommet i à tout sommet j -> Composante connexe -> nombre de connexité = 1 <=> graphe connexe Fortement connexe (orienté) : il existe un chemin de i à j et de j à i Application transport : -> notion d'arbre (réseau hydrolique) -> forte connexité (réseau de transport urbain, téléphone, ...)
Graphe planaire Admet une représentation sur un plan Sommet : Point Aretes : courbes -> Deux courbes ne se rencontrent pas en dehors de leurs extrémités 1 2 2 3 4 1 5 4 5 3 -> Gestion des représentations schématiques
(i, j) <=> Il existe un chemin de i à j dans G FERMETURE TRANSITIVE CONSTRUIRE UN NOUVEAU GRAPHE G* A PARTIR DE G : (i, j) <=> Il existe un chemin de i à j dans G 2 1 G* 3 2 4 1 5 3 G 4 5
Représentations informatique Matrices : Matrice adjacence : 1-graphe, (booléenne ou valuée) Matrice d'incidence sommets-arcs (-1 -ext-, 0, 1 -orig-) ligne sommet, colonne : arc Listes : (matrices creuses) Listes des sommets successeurs / prédécesseurs Listes des arcs (cocycles)
Représentations informatique (2) Matrice : -> Que des problèmes - Espace mémoire important - Temps passé à faire des tests (complexité des algorithmes) - Pas de flexibilité - Pas de multi-graphe Listes -> Type abstrait avec primitives de manipulations - Flexibilité (insertion / suppression) - Emplacement mémoire raisonnable
Exemples Matrice d'adjacence non valuée / non orientée // valuée / orientée Matrice d'incidence sommets / arcs Liste des successeurs / prédécesseurs / voisins / sommets / arcs / arêtes Liste des cocycles orientés / non orientés => Problème passage d'une représentation à une autre
Exemple (2) Fonction de coût 5 2 1 2 2 1 7 2 3 3 4 4 5 5 2 3 1 2 1 4 3 6 Numérotation des arcs
Booléenne 1-graphe, Non orienté 2 arcs => Matrice symétrique 1 2 3 4 5
Valuation => Fonction de coût Arc inexistant : 0 ou infini => problème de représentation 1 2 3 4 5 7
Sommets-arcs p-graphe, pas de boucle Colonne : arc, ligne : sommet, origine : + destination : - 1 2 3 4 5 6 +1 -1
Successeurs Tableau : Nœud : tableau [1.. N+1] d’indirections sur les successeurs ([1.. M+1]) Principe : idem pour les voisins (non orienté) mais symétrique => 2M + 1 ou pour les prédécesseurs 1 2 3 4 5 6 1 3 4 4 5 7 2 4 3 2 3 4 X 1 2 3 4 5 6 7
Successeurs (version liste chaînée) 1 2 3 4 5 2 3 2 3 4 4
Orienté Valué Idem successeurs + valuation (liste chaînée : multi-graphe) 1 2 3 4 5 6 1 3 4 4 5 7 2 4 3 2 3 4 X 5 2 2 7 2 3 1 2 3 4 5 6 7
Cocycle Idem liste des successeurs mais avec les arcs => p-graphes avec boucles 1 2 3 4 5 6 1 3 4 4 5 7 1 2 4 3 5 6 X 2 4 3 2 3 4 X 1 2 3 4 5 6 7
Passages Matrice d'incidence O(MN) O (MN) Matrice d'adjacence 2 O(N ) Liste des arcs / arêtes Liste des successeurs O(M) O(M) O(M) Liste des cocycles Liste des prédécesseurs
Problèmatique Base de données Fonction d'étiquettage (noeud, arc) -> Le graphe ne tient pas en MC -> Opérateurs de manipulation - chemin - Modélisation du graphe (1 ou plusieurs niveaux d'abstraction) -> Passage des informations aux différents niveaux
Problèmes conventionnels Chemin eulérien : chemin qui emprunte une fois et une seule chaque arc Chemin hamiltonien : chemin qui emprunte une fois et une seule chaque sommet Stable : Sous-ensemble, S, de sommets d'un graphe tels que deux sommets de S ne sont pas adjacents () Clique : Sous graphe complet
Problèmes conventionnels (2) Domaine de la recherche opérationnelle (parcours / contraintes) Opérateurs de manipulation : Attention aux pb NP-Complet Bases de données déductives / documentaires Bases de données spatiales (transports)