2.01k likes | 2.33k Views
Cours de graphes. Quelques applications. Les grandes lignes du cours -----------------------------------------------------------------. Définitions de base Connexité Les plus courts chemins : Floyd-Warshall, Dijkstra et Bellmann-Ford Arbres, graphes particuliers
E N D
Cours de graphes Quelques applications. Cours de graphes 9 - Intranet
Les grandes lignes du cours----------------------------------------------------------------- • Définitions de base • Connexité • Les plus courts chemins : Floyd-Warshall, • Dijkstra et Bellmann-Ford • Arbres, graphes particuliers • Arbres de recouvrement ( minimaux ) • Problèmes de flots • Coloriage de graphes, graphes planaires • Couplages, chemins d’Euler et de Hamilton • Problèmes NP-complets, réductions • Applications Cours de graphes 9 - Intranet
Applications-----------------------------------------------------------------Applications----------------------------------------------------------------- L E C O L O R I A G E D E S A R E T E S Cours de graphes 9 - Intranet
Le coloriage des arêtes----------------------------------------------------------------- • Minimiser les couleurs est un problème NP–complet ! • Nous connaissons une solution polynômiale qui est optimale à une couleur près ! Cours de graphes 9 - Intranet
Le coloriage des arêtes----------------------------------------------------------------- • Minimiser les couleurs est un problème NP–complet ! • Nous connaissons une solution polynômiale qui est optimale à une couleur près ! Nous nous contentons de la solution approchée ! ! ! Cours de graphes 9 - Intranet
Le coloriage des arêtes----------------------------------------------------------------- • Minimiser les couleurs est un problème NP–complet ! • Nous connaissons une solution polynômiale qui est optimale à une couleur près ! • L’algorithme de Vizing est donc fondamental ! ! ! • Identifier une problématique comme étant un problème de coloriage des arêtes d’un graphe fournit donc tout de suite une solution ! Nous nous contentons de la solution approchée ! ! ! Cours de graphes 9 - Intranet
Le coloriage des arêtes----------------------------------------------------------------- • Dans les problèmes de coloriage des arêtes : • les sommets sont typiquement des ressources, • les arêtes des contraintes de disponibilité ! Cours de graphes 9 - Intranet
Le coloriage des arêtes----------------------------------------------------------------- • Dans les problèmes de coloriage des arêtes : • les sommets sont typiquement des ressources, • les arêtes des contraintes de disponibilité ! • Le coloriage ordonnance les contraintes pour qu’elles soient compatibles au niveau des ressources ! Cours de graphes 9 - Intranet
Le coloriage des arêtes----------------------------------------------------------------- • Dans les problèmes de coloriage des arêtes : • les sommets sont typiquement des ressources, • les arêtes des contraintes de disponibilité ! • Le coloriage ordonnance les contraintes pour qu’elles soient compatibles au niveau des ressources ! • Ce sont souvent des problèmes d’emploi du temps : • Horaires d’oraux entre profs et élèves. • Horaires d’affectation d’une salle de TP à des cours. Cours de graphes 9 - Intranet
Le coloriage des arêtes----------------------------------------------------------------- • Souvent, nous avons des variantes plus compliquées du problème, comme par exemple : Certaines couleurs sont interdites pour certains sommets ! Cours de graphes 9 - Intranet
Le coloriage des arêtes----------------------------------------------------------------- • Souvent, nous avons des variantes plus compliquées du problème, comme par exemple : • Ceci veut dire que toutes les ressources ne sont pas toujours disponibles ! Certaines couleurs sont interdites pour certains sommets ! Cours de graphes 9 - Intranet
Le coloriage des arêtes----------------------------------------------------------------- • Souvent, nous avons des variantes plus compliquées du problème, comme par exemple : • Ceci veut dire que toutes les ressources ne sont pas toujours disponibles ! • Exemple : • des années d’études, • des salles, • des enseignants, avec leurs contraintes d’edt. Certaines couleurs sont interdites pour certains sommets ! Cours de graphes 9 - Intranet
Applications-----------------------------------------------------------------Applications----------------------------------------------------------------- L E C O L O R I A G E D E S S O M M E T S Cours de graphes 9 - Intranet
Le coloriage des sommets----------------------------------------------------------------- • Nous devons colorier les sommets de façon à ce que deux voisins quelconques n’aient pas la même couleur. • Nous essayons de minimiser le nombre de couleurs ! Cours de graphes 9 - Intranet
Le coloriage des sommets----------------------------------------------------------------- • Nous devons colorier les sommets de façon à ce que deux voisins quelconques n’aient pas la même couleur. • Nous essayons de minimiser le nombre de couleurs ! • C’est un problème NP–complet et le nombre minimal de couleurs ne peut pas en général être encadré de manière précise ! Cours de graphes 9 - Intranet
Le coloriage des sommets----------------------------------------------------------------- • Nous devons colorier les sommets de façon à ce que deux voisins quelconques n’aient pas la même couleur. • Nous essayons de minimiser le nombre de couleurs ! • C’est un problème NP–complet et le nombre minimal de couleurs ne peut pas en général être encadré de manière précise ! • Le coloriage des sommets est plus difficile que celui des arêtes . . . et a aussi plus d’applications ! ! ! Cours de graphes 9 - Intranet
Le coloriage des sommets----------------------------------------------------------------- • Nous devons colorier les sommets de façon à ce que deux voisins quelconques n’aient pas la même couleur. • Nous essayons de minimiser le nombre de couleurs ! • C’est un problème NP–complet et le nombre minimal de couleurs ne peut pas en général être encadré de manière précise ! • Le coloriage des sommets est plus difficile que celui des arêtes . . . et a aussi plus d’applications ! ! ! • Souvent, on utilise des algorithmes polynômiaux qui donnent des solutions que l’on espère « pas trop mauvaises » ! ! ! Cours de graphes 9 - Intranet
Le coloriage des sommets----------------------------------------------------------------- • Dans les problèmes de coloriage des sommets : • les sommets sont typiquement des entités, • les arêtes des incompatibilités entre entités ! Cours de graphes 9 - Intranet
Le coloriage des sommets----------------------------------------------------------------- • Dans les problèmes de coloriage des sommets : • les sommets sont typiquement des entités, • les arêtes des incompatibilités entre entités ! • Le coloriage minimise une ressource critique, comme des nombres de salles, de fréquences, . . . ! Cours de graphes 9 - Intranet
Le coloriage des sommets----------------------------------------------------------------- • Dans les problèmes de coloriage des sommets : • les sommets sont typiquement des entités, • les arêtes des incompatibilités entre entités ! • Le coloriage minimise une ressource critique, comme des nombres de salles, de fréquences, . . . ! • Ce sont souvent des problèmes de : • Distribution d’une ressource en pénurie. • Minimisation d’une ressource chère. Cours de graphes 9 - Intranet
Le coloriage des sommets----------------------------------------------------------------- • Attribution de fréquences : Cours de graphes 9 - Intranet
Le coloriage des sommets----------------------------------------------------------------- • Attribution de fréquences : • les émetteurs sont les sommets, • les arêtes représentent le fait que deux émetteurs ont une intersection non vide de couverture ! Cours de graphes 9 - Intranet
Le coloriage des sommets----------------------------------------------------------------- • Attribution de fréquences : • les émetteurs sont les sommets, • les arêtes représentent le fait que deux émetteurs ont une intersection non vide de couverture ! • Le coloriage des sommets minimise le nombre de fréquences nécessaires pour couvrir tout le territoire ! Cours de graphes 9 - Intranet
Le coloriage des sommets----------------------------------------------------------------- • Attribution de fréquences : • les émetteurs sont les sommets, • les arêtes représentent le fait que deux émetteurs ont une intersection non vide de couverture ! • Le coloriage des sommets minimise le nombre de fréquences nécessaires pour couvrir tout le territoire ! • Dans la pratique : • Les fréquences réelles sont partitionnées en paquets de fréquences. • Chaque paquet correspond à une couleur. Cours de graphes 9 - Intranet
Le coloriage des sommets----------------------------------------------------------------- • Emploi du temps : Cours de graphes 9 - Intranet
Le coloriage des sommets----------------------------------------------------------------- • Emploi du temps : • les cours sont les sommets, • les arêtes représentent l’incompatibilité entre cours du fait qu’il sont par exemple donnés par le même enseignant, se font dans la même salle . . . Cours de graphes 9 - Intranet
Le coloriage des sommets----------------------------------------------------------------- • Emploi du temps : • les cours sont les sommets, • les arêtes représentent l’incompatibilité entre cours du fait qu’il sont par exemple donnés par le même enseignant, se font dans la même salle . . . • Le coloriage des sommets minimise le nombre de créneaux horaires nécessaires pour donner les cours ! Cours de graphes 9 - Intranet
Le coloriage des sommets----------------------------------------------------------------- • Emploi du temps : • les cours sont les sommets, • les arêtes représentent l’incompatibilité entre cours du fait qu’il sont par exemple donnés par le même enseignant, se font dans la même salle . . . • Le coloriage des sommets minimise le nombre de créneaux horaires nécessaires pour donner les cours ! • Les questions d’emplois du temps peuvent être traduits en différents problèmes de coloriage ! Cours de graphes 9 - Intranet
Le coloriage des sommets----------------------------------------------------------------- • Emploi du temps : • les cours sont les sommets, • les arêtes représentent l’incompatibilité entre cours du fait qu’il sont par exemple donnés par le même enseignant, se font dans la même salle . . . • Le coloriage des sommets minimise le nombre de créneaux horaires nécessaires pour donner les cours ! • Les questions d’emplois du temps peuvent être traduits en différents problèmes de coloriage ! • Nous pouvons d’ailleurs envisager de colorier aussi bien les sommets que les arêtes ! Cours de graphes 9 - Intranet
Le coloriage des sommets----------------------------------------------------------------- • Variantes de coloriage : Cours de graphes 9 - Intranet
Le coloriage des sommets----------------------------------------------------------------- • Variantes de coloriage : • Il y a le coloriage des sommets ! • Il y a le coloriage des arêtes ! Cours de graphes 9 - Intranet
Le coloriage des sommets----------------------------------------------------------------- • Variantes de coloriage : • Il y a le coloriage des sommets ! • Il y a le coloriage des arêtes ! • Il y a le coloriage conjoint des sommets et arêtes ! Cours de graphes 9 - Intranet
Le coloriage des sommets----------------------------------------------------------------- • Variantes de coloriage : • Il y a le coloriage des sommets ! • Il y a le coloriage des arêtes ! • Il y a le coloriage conjoint des sommets et arêtes ! • Comme le coloriage des sommets attribue une paire de couleurs à chaque arête, nous pouvons exiger que : Cours de graphes 9 - Intranet
Le coloriage des sommets----------------------------------------------------------------- • Variantes de coloriage : • Il y a le coloriage des sommets ! • Il y a le coloriage des arêtes ! • Il y a le coloriage conjoint des sommets et arêtes ! • Comme le coloriage des sommets attribue une paire de couleurs à chaque arête, nous pouvons exiger que : • ce coloriage soit « harmonieux » au sens où il attribue à chaque arête une paire de couleurs différente, • ce coloriage soit « complet » au sens où chaque paire de couleurs est utilisée au moins une fois. Cours de graphes 9 - Intranet
Le coloriage des sommets----------------------------------------------------------------- • Allocation de registres : Cours de graphes 9 - Intranet
Le coloriage des sommets----------------------------------------------------------------- • Allocation de registres : • les variables d’un programme sont les sommets, • les arêtes représentent l’incompatibilité entre variables au sens où elles ne peuvent pas utiliser un même registre. Cours de graphes 9 - Intranet
Le coloriage des sommets----------------------------------------------------------------- • Allocation de registres : • les variables d’un programme sont les sommets, • les arêtes représentent l’incompatibilité entre variables au sens où elles ne peuvent pas utiliser un même registre. • Le coloriage des sommets minimise le nombre de registres nécessaires pour gérer toutes les variables ! Cours de graphes 9 - Intranet
Le coloriage des sommets----------------------------------------------------------------- • Allocation de registres : • les variables d’un programme sont les sommets, • les arêtes représentent l’incompatibilité entre variables au sens où elles ne peuvent pas utiliser un même registre. • Le coloriage des sommets minimise le nombre de registres nécessaires pour gérer toutes les variables ! • La gestion d’une valeur dans un registre est beaucoup plus rapide que la gestion en mémoire centrale ! Cours de graphes 9 - Intranet
Le coloriage des sommets----------------------------------------------------------------- • Allocation de registres : • les variables d’un programme sont les sommets, • les arêtes représentent l’incompatibilité entre variables au sens où elles ne peuvent pas utiliser un même registre. • Le coloriage des sommets minimise le nombre de registres nécessaires pour gérer toutes les variables ! • La gestion d’une valeur dans un registre est beaucoup plus rapide que la gestion en mémoire centrale ! • Si nous n’avons pas assez de registres il faut faire un choix entre les variables ! C’est un autre problème . . . Cours de graphes 9 - Intranet
Le coloriage des sommets----------------------------------------------------------------- • Deux variables sont compatibles si l’une cesse de servir avant que l’autre ne commence ! Cours de graphes 9 - Intranet
Le coloriage des sommets----------------------------------------------------------------- • Deux variables sont compatibles si l’une cesse de servir avant que l’autre ne commence ! • Deux variables sont incompatibles si l’une a des usages avant et après un usage de l’autre variable ! Cours de graphes 9 - Intranet
Le coloriage des sommets----------------------------------------------------------------- • Deux variables sont compatibles si l’une cesse de servir avant que l’autre ne commence ! • Deux variables sont incompatibles si l’une a des usages avant et après un usage de l’autre variable ! • Des variables peuvent utiliser un même registre si et seulement si elles sont compatibles ! Cours de graphes 9 - Intranet
Le coloriage des sommets----------------------------------------------------------------- • Deux variables sont compatibles si l’une cesse de servir avant que l’autre ne commence ! • Deux variables sont incompatibles si l’une a des usages avant et après un usage de l’autre variable ! • Des variables peuvent utiliser un même registre si et seulement si elles sont compatibles ! • Exemple : { x := 5 ; y := 7 ; u := 2 * x ; t := 3 ; t := t + u + y ; } Cours de graphes 9 - Intranet
Le coloriage des sommets----------------------------------------------------------------- • Deux variables sont compatibles si l’une cesse de servir avant que l’autre ne commence ! • Deux variables sont incompatibles si l’une a des usages avant et après un usage de l’autre variable ! • Des variables peuvent utiliser un même registre si et seulement si elles sont compatibles ! • Exemple : { x := 5 ; y := 7 ; u := 2 * x ; t := 3 ; t := t + u + y ; } x et y sont incompatibles ! Cours de graphes 9 - Intranet
Le coloriage des sommets----------------------------------------------------------------- • Deux variables sont compatibles si l’une cesse de servir avant que l’autre ne commence ! • Deux variables sont incompatibles si l’une a des usages avant et après un usage de l’autre variable ! • Des variables peuvent utiliser un même registre si et seulement si elles sont compatibles ! • Exemple : { x := 5 ; y := 7 ; u := 2 * x ; t := 3 ; t := t + u + y ; } x et y sont incompatibles ! x est compatible avec u et t ! Cours de graphes 9 - Intranet
Le coloriage des sommets----------------------------------------------------------------- • Deux variables sont compatibles si l’une cesse de servir avant que l’autre ne commence ! • Deux variables sont incompatibles si l’une a des usages avant et après un usage de l’autre variable ! • Des variables peuvent utiliser un même registre si et seulement si elles sont compatibles ! • Exemple : { x := 5 ; y := 7 ; u := 2 * x ; t := 3 ; t := t + u + y ; } x et y sont incompatibles ! x est compatible avec u et t ! y est incompatible avec u et t ! Cours de graphes 9 - Intranet
Le coloriage des sommets----------------------------------------------------------------- • Deux variables sont compatibles si l’une cesse de servir avant que l’autre ne commence ! • Deux variables sont incompatibles si l’une a des usages avant et après un usage de l’autre variable ! • Des variables peuvent utiliser un même registre si et seulement si elles sont compatibles ! • Exemple : { x := 5 ; y := 7 ; u := 2 * x ; t := 3 ; t := t + u + y ; } x et y sont incompatibles ! x est compatible avec u et t ! y est incompatible avec u et t ! u et t sont incompatibles ! Cours de graphes 9 - Intranet
Le coloriage des sommets----------------------------------------------------------------- • Deux variables sont compatibles si l’une cesse de servir avant que l’autre ne commence ! • Deux variables sont incompatibles si l’une a des usages avant et après un usage de l’autre variable ! • Des variables peuvent utiliser un même registre si et seulement si elles sont compatibles ! • Exemple : { x := 5 ; y := 7 ; u := 2 * x ; t := 3 ; t := t + u + y ; } x y u t Cours de graphes 9 - Intranet
Le coloriage des sommets----------------------------------------------------------------- • Deux variables sont compatibles si l’une cesse de servir avant que l’autre ne commence ! • Deux variables sont incompatibles si l’une a des usages avant et après un usage de l’autre variable ! • Des variables peuvent utiliser un même registre si et seulement si elles sont compatibles ! • Exemple : { x := 5 ; y := 7 ; u := 2 * x ; t := 3 ; t := t + u + y ; } x y Il nous faut 3 registres ! u t Cours de graphes 9 - Intranet
Le coloriage des sommets----------------------------------------------------------------- • Deux variables sont compatibles si l’une cesse de servir avant que l’autre ne commence ! • Deux variables sont incompatibles si l’une a des usages avant et après un usage de l’autre variable ! • Des variables peuvent utiliser un même registre si et seulement si elles sont compatibles ! • Exemple : { x := 5 ; y := 7 ; u := 2 * x ; t := 3 ; t := t + u + y ; } x y Il nous faut 3 registres ! Le registre bleu sert à x et à t ! u t Cours de graphes 9 - Intranet