1/27 Graphes et Réseaux Biologiques, Concepts et Algorithmes Graphes et Réseaux Biologiques, Concepts et Algorithmes L. Tichit 18 novembre 2014
2/27 Graphes et Réseaux Biologiques, Concepts et Algorithmes Transparents Christine 1-2
3/27 Graphes et Réseaux Biologiques, Concepts et Algorithmes Définitions
4/27 Graphes et Réseaux Biologiques, Concepts et Algorithmes Graphe Un graphe est constitué d un ensemble V de sommets et un ensemble E d arêtes, chaque arête étant elle-même représentée par une paire de sommets. Définition Un graphe G = (V, E) est le couple constitué : d un ensemble V non vide et fini dont les éléments sont appelés sommets. d un ensemble E V V dont les éléments sont des paires de sommets et sont appelés arêtes.
5/27 Graphes et Réseaux Biologiques, Concepts et Algorithmes Taille, Degré Si e = {x, y} est une arête de G, on dit que les sommets x et y, extrémités de l arête e, sont adjacents (ou voisins) dans le graphe G, et que l arête e est incidente aux sommets x et y.
5/27 Graphes et Réseaux Biologiques, Concepts et Algorithmes Taille, Degré Si e = {x, y} est une arête de G, on dit que les sommets x et y, extrémités de l arête e, sont adjacents (ou voisins) dans le graphe G, et que l arête e est incidente aux sommets x et y. La taille (ou l ordre) d un graphe G est égale au nombre de sommets composant ce graphe, et est notée G, V ou n.
5/27 Graphes et Réseaux Biologiques, Concepts et Algorithmes Taille, Degré Si e = {x, y} est une arête de G, on dit que les sommets x et y, extrémités de l arête e, sont adjacents (ou voisins) dans le graphe G, et que l arête e est incidente aux sommets x et y. La taille (ou l ordre) d un graphe G est égale au nombre de sommets composant ce graphe, et est notée G, V ou n. Le nombre d arêtes est noté E ou m.
/27 Taille, Degré Si e = {x, y} est une arête de G, on dit que les sommets x et y, extrémités de l arête e, sont adjacents (ou voisins) dans le graphe G, et que l arête e est incidente aux sommets x et y. La taille (ou l ordre) d un graphe G est égale au nombre de sommets composant ce graphe, et est notée G, V ou n. Le nombre d arêtes est noté E ou m. On appelle degré d un sommet x d un graphe, le nombre de voisins du sommet x. Le degré de x est noté deg(x) ou k x. On note deg(g) le degré maximal du graphe G, c est-à-dire le nombre maximal de voisins des sommets de G. Définition deg(g) = max x V {k x}
6/27 Graphes et Réseaux Biologiques, Concepts et Algorithmes Graphe complet Un graphe complet est tel que tous ses sommets sont adjacents deux à deux.
6/27 Graphes et Réseaux Biologiques, Concepts et Algorithmes Graphe complet Un graphe complet est tel que tous ses sommets sont adjacents deux à deux. Un graphe complet à i sommets est, par convention, appelé Ki. Figure: Un graphe complet (K6)
/27 Graphe complet Dessinez Ki, i {1,..., 5}
7/27 Graphes et Réseaux Biologiques, Concepts et Algorithmes Graphe complet Dessinez Ki, i {1,..., 5} i {1,..., 7}, calculez E Ki
7/27 Graphes et Réseaux Biologiques, Concepts et Algorithmes Graphe complet Dessinez Ki, i {1,..., 5} i {1,..., 7}, calculez E Ki Pour un graphe complet, en déduire E en fonction de V
7/27 Graphes et Réseaux Biologiques, Concepts et Algorithmes Graphe complet Dessinez Ki, i {1,..., 5} i {1,..., 7}, calculez E Ki Pour un graphe complet, en déduire E en fonction de V Définition Pour tout graphe complet : E = V.( V 1) 2
8/27 Graphes et Réseaux Biologiques, Concepts et Algorithmes Sous-graphe, Clique Un sous-graphe H = (V 2, E 2 ) de G = (V, E) est un graphe pour lequel V 2 V et E 2 V 2 V 2 E.
8/27 Graphes et Réseaux Biologiques, Concepts et Algorithmes Sous-graphe, Clique Un sous-graphe H = (V 2, E 2 ) de G = (V, E) est un graphe pour lequel V 2 V et E 2 V 2 V 2 E. Une clique est un sous-graphe formant un graphe complet.
9/27 Graphes et Réseaux Biologiques, Concepts et Algorithmes Densité La densité D d un graphe G à n sommets mesure son taux d arêtes. Définition D(G) = E E Kn
9/27 Graphes et Réseaux Biologiques, Concepts et Algorithmes Densité La densité D d un graphe G à n sommets mesure son taux d arêtes. Définition D(G) = E E Kn D G = 0 E = 0 D G = 1 G = Kn
10/27 Densité Reformulez la densité en fonction de V et E.
10/27 Densité Reformulez la densité en fonction de V et E. Définition D(G) = 2 E V.( V 1)
11/27 Chaîne Une chaîne est une séquence d arêtes L = (e 1, e 2,..., e q ) telle que chaque arête e i de la séquence (avec 2 i q 1) ait une extrémité commune avec l arête e i 1 (e i 1 e i ) et l autre extrémité commune avec l arête e i+1 (e i+1 e i ). Figure: Une chaîne
12/27 Cycle Un cycle est une chaîne pour laquelle le premier et le dernier sommet sont identiques. Figure: Un cycle
12/27 Cycle Un cycle est une chaîne pour laquelle le premier et le dernier sommet sont identiques. Figure: Un cycle Par extension : Une chaîne d un graphe G est un sous-graphe de G qui est lui-même une chaîne. Un cycle d un graphe G est un sous-graphe de G qui est lui-même un cycle.
13/27 Distance entre sommets, Excentricité La distance entre deux sommets d un graphe est la longueur d une plus courte chaîne entre ces deux sommets.
13/27 Distance entre sommets, Excentricité La distance entre deux sommets d un graphe est la longueur d une plus courte chaîne entre ces deux sommets. L excentricité d un sommet est le maximum des distances entre lui et chacun des autres. Définition exc(w) = max dist(w, v) v V
14/27 Distance entre sommets, Diamètre La distance entre deux sommets d un graphe est la longueur d une plus courte chaîne entre ces deux sommets.
14/27 Distance entre sommets, Diamètre La distance entre deux sommets d un graphe est la longueur d une plus courte chaîne entre ces deux sommets. Le diamètre d un graphe est l excentricité maximale de ses sommets = maximum des distances entre toute paire de sommets. Définition diametre(g) = max v V exc(v)
15/27 Distance entre sommets, Diamètre Calculez les diamètres des 4 graphes suivants (à faire au tableau).
15/27 Distance entre sommets, Diamètre Calculez les diamètres des 4 graphes suivants (à faire au tableau). Figure: Diamètre de différents graphes
15/27 Distance entre sommets, Diamètre Calculez les diamètres des 4 graphes suivants (à faire au tableau). Figure: Diamètre de différents graphes Au passage, énumérez les cliques des graphes précédents.
6/27 Rayon, Centre Le rayon est l excentricité minimale de ses sommets. Définition rayon(g) = min v V exc(v)
6/27 Rayon, Centre Le rayon est l excentricité minimale de ses sommets. Définition rayon(g) = min v V exc(v) Le centre d un graphe est formé de l ensemble de ses sommets d excentricité minimale. Le centre doit être placé de telle sorte que le maximum des distances de chaque sommet au centre soit minimal.
6/27 Rayon, Centre Le rayon est l excentricité minimale de ses sommets. Définition rayon(g) = min v V exc(v) Le centre d un graphe est formé de l ensemble de ses sommets d excentricité minimale. Le centre doit être placé de telle sorte que le maximum des distances de chaque sommet au centre soit minimal. Rayon et Centre des graphes précédent?
Connexité Un graphe G est dit connexe si et seulement si pour toute paire i, j V V il existe toujours une chaîne reliant i et j. 17/27 Figure: Un graphe connexe
18/27 Composante connexe Définition Une composante connexe d un graphe G est un sous-graphe de G connexe maximal. Autrement dit, c est un ensemble de sommets du graphe G de taille maximale, tel qu il existe une chaîne entre chacun de ses sommets. Figure: Un graphe constitué de deux composantes connexes
19/27 Graphes étiquetés et Topologie Soit Σ un alphabet fini fixé. Un graphe étiqueté sur Σ est un graphe pour lequel une étiquette l v Σ (parfois appelée label) est affectée à chaque sommet v (et/ou arête). La topologie d un graphe représente sa forme : deux graphes étiquetés différents peuvent avoir la même topologie. Deux graphes de même topologie sont appelés isomorphes.
20/27 Structures de données
21/27 Soit le Graphe G (orienté) suivant : Figure: Exemple de graphe pondéré (orienté)
22/27 Matrice d adjacence Matrice carrée, de taille n n, avec n = V. Chaque cellule M i,j contient un booléen ou une valeur numérique (arêtes pondérées).
22/27 Matrice d adjacence Matrice carrée, de taille n n, avec n = V. Chaque cellule M i,j contient un booléen ou une valeur numérique (arêtes pondérées). Figure: Matrice d adjacence
23/27 Liste d adjacence Tableau de taille n, chaque cellule M i contient un ensemble (liste, vecteur,...) de taille deg(g i ). Chaque élément de l ensemble identifie un sommet adjacent à i.
23/27 Liste d adjacence Tableau de taille n, chaque cellule M i contient un ensemble (liste, vecteur,...) de taille deg(g i ). Chaque élément de l ensemble identifie un sommet adjacent à i. Figure: Liste d adjacence
24/27 Matrice d incidence Matrice de taille n m, avec m = E et n = V. Décrit le graphe en indiquant quels liens arrivent sur quels sommets. Nécessite d indexer les arêtes
24/27 Matrice d incidence Matrice de taille n m, avec m = E et n = V. Décrit le graphe en indiquant quels liens arrivent sur quels sommets. Nécessite d indexer les arêtes Représentez la matrice d incidence du graphe ci-dessus.
25/27 Liste d incidence Même principe Les structures d incidence sont moins efficaces que les structures d adjacence : Complexité de certaines opérations Davantage de place mémoire perdue
26/27 Algorithmique
7/27 Connexité Idée : on choisit un sommet, puis on parcourt récursivement tous les voisins.
7/27 Connexité Idée : on choisit un sommet, puis on parcourt récursivement tous les voisins. Stop quand on a parcouru une composante connexe.
7/27 Connexité Idée : on choisit un sommet, puis on parcourt récursivement tous les voisins. Stop quand on a parcouru une composante connexe. On continue s il reste des sommets non traités.
28/27 Parcours en largeur : BFS Breadth-First Search : on utilise une file (First-In, First-Out). Figure: Breadth-First Search
29/27 Parcours en profondeur : DFS Depth-First Search : on utilise une pile (Last-In, First-Out). Figure: Depth-First Search
30/27 Complexité Déterminer l efficacité d un algorithme en temps d exécution et espace mémoire
30/27 Complexité Déterminer l efficacité d un algorithme en temps d exécution et espace mémoire Déterminer l efficacité d un algorithme dans le pire des cas en moyenne dans le meilleur cas
30/27 Complexité Déterminer l efficacité d un algorithme en temps d exécution et espace mémoire Déterminer l efficacité d un algorithme dans le pire des cas en moyenne dans le meilleur cas Outil théorique Indépendant de la programmation
31/27 Complexité Comparer des algorithmes, indépendamment de leur implémentation : choix avant implémentation.
31/27 Complexité Comparer des algorithmes, indépendamment de leur implémentation : choix avant implémentation. Déterminer comment l algorithme évoluera en fonction de la taille des données à traiter : vérification de la faisabilité de l implémentation.
32/27 Quelques courbes Comportement asymptotique d une fonction f (n) (quand la taille des données n tend vers l infini). Figure: Classes de complexité
33/27 Notation O(f (n)) Une fonction fun(n) a une complexité en O(f (n)) il existe une fonction C.f (n) (où C est une constante) qui borne fun(n) quand n tend vers l infini.
33/27 Notation O(f (n)) Une fonction fun(n) a une complexité en O(f (n)) il existe une fonction C.f (n) (où C est une constante) qui borne fun(n) quand n tend vers l infini. Exemple : une fonction f (n) qui effectue n 2 + 20n + 235 opérations a une complexité en O(n 2 ).
34/27 Graphes d interactions protéines-protéines
35/27 Hypothèse Objectif : recherche de protéines impliquées dans les mêmes voies metaboliques. Supposition : les proteines partageant beaucoup d interactions participent à la même voie métabolique.
36/27 Transparents Christine 3-4
37/27 Edge-betweenness L algorithme de Girvan Newman. Nombre de plus courts chemins passant par une arête (calculé entre toutes les paires de sommets). Hypothèse biologique de centralité : les processus biologiques sont connectés par des interactions de haute betweenness. Peut également être utilisé pour déconnecter le graphe.
38/27 Diamètre, Edge-betweenness Plus court chemin L algorithme de Dijkstra est la référence. Il se base sur des graphes dont les arêtes sont pondérées. Principe : parcours en largeur en maintenant une liste de priorité. Figure: Algorithme de Dijkstra
9/27 Plus court chemin : algorithme de Dijkstra Entrées : G = (V, E) un graphe avec une pondération p des arêtes v deb un sommet de V Initialiser chaque sommet comme étant non marqué. Affecter la valeur + à tous les labels L L(v deb ) = 0 Tant Qu il existe un sommet non marqué Choisir le sommet a non marqué de plus petit label L Marquer a Pour chaque sommet b non marqué voisin de a L(b) = min(l(b), L(a) + p(a, b)) Fin Pour Fin Tant Que
40/27 Algorithme de Dijkstra : complexité Complexité en O(m + n log(n))
40/27 Algorithme de Dijkstra : complexité Complexité en O(m + n log(n)) Idée 1 : avg deg(g) 2.n = m
40/27 Algorithme de Dijkstra : complexité Complexité en O(m + n log(n)) avg deg(g) Idée 1 : 2.n = m Idée 2 : stocker les sommets dans un tas (structure arborescente équilibrée)
41/27 Transparents Christine 5-8
42/27 Kernel, K-Core Quelles sont les protéines centrales (beaucoup d interacteurs, évoluent peu)? Principe : on pèle l interactome. Supprimer récursivement des sommets, en commençant par ceux n ayant qu un seul voisin.
43/27 Kernel, K-Core Figure: K-Cores
44/27 Transparents Christine 9-13
45/27 Transparents Christine 14-18
Bibliographie 45/27 C. Berge. Graphes et hypergraphes. Dunod Editeurs, Paris. Deuxième édition, 1973. C. Berge. Hypergraphs. Elsevier Science Publishers, 1989. C. Berge. Graphs. North Hollande, 1991. O. Cogis and C. Robert. Au-delà des ponts de Königsberg Théorie des Graphes. Vuibert, Paris, 2003.