720 likes | 918 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 ! • 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é ! • 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 : • 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 ! • 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 ! • 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 : • 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 : • 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 : • 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 : • 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 ! • 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 Il nous faut 3 registres ! Le registre bleu sert à x et à t ! u t Cours de graphes 9 - Intranet
Le coloriage des sommets----------------------------------------------------------------- • Coloriage de chemins dans un graphe : • Nous recevons un graphe et devons colorier un certain nombre de chemins qui sont donnés. • Deux chemins doivent avoir une couleur différente dès qu’ils partagent une arête. • Nous devons minimiser le nombre de couleurs ! • C’est un problème de coloriage des sommets du graphe suivant : • Chaque chemin est représenté par un sommet ! • Deux sommets sont reliés par une arête si les chemins qu’ils représentent partagent des arêtes ! Cours de graphes 9 - Intranet
Applications-----------------------------------------------------------------Applications----------------------------------------------------------------- C O U P L A G E S V E R T E X C O V E R E T A U T R E S Cours de graphes 9 - Intranet
Couplages, vertex cover et autres----------------------------------------------------------------- • Le couplage consiste à : • former le plus grand nombre de couples de sommets, • les arêtes représentant des adéquations entre les sommets. • Les applications sont bien-sûr nombreuses ! • Quelques exemples : • Couples de personne–tâche , candidat–poste , . . . • Couples de binômes en respectant les affinités. Cours de graphes 9 - Intranet
Couplages, vertex cover et autres----------------------------------------------------------------- • Le Vertex Cover consiste • à savoir si nous pouvons trouver un sous-ensemble de k sommets au plus tel que chaque arête touche un de ces sommets ? • ou à trouver le plus petit entier k pour lequel un tel ensemble existe ! • Y a–t–il des applications réelles pour ce tel problème ? • Pour un graphe de n sommets, le Vertex Cover avec la constante k est équivalent à savoir si Clique admet une solution de taille n–k ? Cours de graphes 9 - Intranet
Couplages, vertex cover et autres----------------------------------------------------------------- • Le problème Independent Set ( STABLE en français ) : • Pouvons-nous trouver dans un graphe au moins k sommets qui ne sont pas voisins deux à deux ? ? ? • Quelle est la plus grande valeur k pour laquelle nous pouvons trouver un stable ? ? ? • Un graphe avec n sommets admet un stable de taille k si et seulement si son graphe complémentaire admet une clique de taille n–k ! ! ! • Comme il n’existe aucune arête entre deux sommets du stable, dans le graphe complémentaire toutes les arêtes vont exister, et donc former une clique ! Cours de graphes 9 - Intranet
Couplages, vertex cover et autres----------------------------------------------------------------- • Vertex Cover , Clique et Independent Set sont en fait le même problème, vu sous des facettes différentes ! • Une application pour Independent Set : • Soient des sommets qui représentent tous les emplacements potentiels de succursales dans une ville. • Soient les arêtes qui représentent une concurrence trop forte ( et donc un mauvais investissement ) due à une trop grande proximité entre deux sites. • Maximiser le stable revient à trouver la meilleure saturation de la ville avec des succursales, sans risquer une trop grande concurrence entre elles. Cours de graphes 9 - Intranet
Couplages, vertex cover et autres----------------------------------------------------------------- • Un exemple ayant 24 sommets : Ces problèmes sont NP-complets ! Le stable maximal est de taille 9 ! Cours de graphes 9 - Intranet
Applications-----------------------------------------------------------------Applications----------------------------------------------------------------- D I G R E S S I O N : A L G O R I T H M E S D ‘ A P P R O X I M A T I O N Cours de graphes 9 - Intranet
Algorithmes d’approximation----------------------------------------------------------------- • Pour des raison pratiques, • nous renonçons à la solution optimale, • pour avoir une solution en temps polynômial ! Ceci concerne les problèmes de décision NP-complets et leurs versions d'optimisation ! Cours de graphes 9 - Intranet
Algorithmes d’approximation----------------------------------------------------------------- • Pour des raison pratiques, • nous renonçons à la solution optimale, • pour avoir une solution en temps polynômial ! • Ceci peut se faire à l’aide d’heuristiques quelconques, qui n’offrent aucune garantie de qualité ! Ou alors à l'aide de programmes de complexité polynômiale et de qualité garantie ! Cours de graphes 9 - Intranet
Algorithmes d’approximation----------------------------------------------------------------- • Une heuristique quelconque est un programme qui • utilise un temps polynômial plus ou moins grand, • pour appliquer des arguments plus ou moins sophistiqués, • qui donnent une solution plus ou moins bonne, • sur une partie plus ou moins grande des instances du problème ! Tout reste vague . . . Cours de graphes 9 - Intranet
Algorithmes d’approximation----------------------------------------------------------------- • Un algorithme d’approximation à un facteur r près est un programme qui • utilise un temps polynômial connu, • pour donner une solution optimale au facteur r près • et ce quelle que soit l’instance donnée du problème ! • Si la meilleure solution ( inconnue ) vaut opt , alors nous sommes assurés d’obtenir une solution sol telle que opt <= sol <= r * opt Cours de graphes 9 - Intranet
Algorithmes d’approximation----------------------------------------------------------------- • Un algorithme d’approximation à un facteur r près est un programme qui • utilise un temps polynômial connu, • pour donner une solution optimale au facteur r près • et ce quelle que soit l’instance donnée du problème ! • Si la meilleure solution ( inconnue ) vaut opt , alors nous sommes assurés d’obtenir une solution sol telle que Au pire : sol = r * opt Cours de graphes 9 - Intranet
Algorithmes d’approximation----------------------------------------------------------------- • Pour le « Voyageur de Commerce euclidien » ( inégalité triangulaire ) nous avons construit une solution à un facteur 2 près ! • Il s’agissait de • trouver un arbre de recouvrement minimal, • en doubler les arêtes pour en faire un circuit • et d’éviter de passer plusieurs fois par un sommet ( ce qui ne rallonge pas les distances ) . • La complexité est en O ( | E | * log ( | E | ) ) . Cours de graphes 9 - Intranet
A tailles égales, ils sont plus difficiles que le TSP ! Algorithmes d’approximation----------------------------------------------------------------- • Théorème : • Pour le problème « Independent Set » il n’existe pas d’algorithme polynômial qui donne unesolution optimale à un facteur r près, quel que soit r , à moins que P ne soit égale à NP ! • Il y a des instances de Independent Set , tout comme de Vertex Cover et Clique , qui ne peuvent pas être approchées en temps polynômial à un facteur 2 ou 5 ou 1000 près ! ! ! Ils sont vraiment difficiles ! Cours de graphes 9 - Intranet
Algorithmes d’approximation----------------------------------------------------------------- • Pour Independent Set , la complexité dépend du degré D ( G ) du graphe. Et, nous avons les résultats : • Pour D ( G ) = 3 , nous ne pouvons pas approximer en temps polynômial à un facteur r = 1,0005 près. • Pour D ( G ) = 4 , nous ne pouvons pas approximer en temps polynômial à un facteur r = 1,0018 près. • Pour D ( G ) = 5 , nous ne pouvons pas approximer en temps polynômial à un facteur r = 1,003 près. • Pour e petit, nous ne pouvons pas approximer en temps polynômial à un facteur r = D ( G ) ^e près. Cours de graphes 9 - Intranet
Algorithmes d’approximation----------------------------------------------------------------- • Pour Independent Set , la complexité dépend du degré • D ( G ) du graphe. Et nous avons les résultats : • Nous pouvons approximer en temps polynômial à un facteur r = ( D ( G ) + 3 ) / 5 près. • Nous pouvons approximer en temps polynômial à r = ( D ( G ) * log log D ( G ) ) / log D ( G ) près. • Pour D ( G ) grand, la seconde formule est meilleure. En général, le degré n'est pas borné ! Cours de graphes 9 - Intranet
Applications-----------------------------------------------------------------Applications----------------------------------------------------------------- V A R I A N T E S D E P R O B L E M E S D E F L O T Cours de graphes 9 - Intranet
Variantes de problèmes de flot----------------------------------------------------------------- • Le problème de flot tel que nous l’avons regardé est en fait la variante la plus simple de toute une famille de problèmes de flot ! • L’extension la plus simple consiste à introduire plusieurs sources et plusieurs puits ! • Elle ne change rien à la problématique, car il suffit de rajouter une « super-source » et un « super-puits » pour se ramaner à la situation de départ. • C’est différent lorsque chaque source produit une couleur différente, destinée au puits correspondant. Cours de graphes 9 - Intranet
Variantes de problèmes de flot----------------------------------------------------------------- • Multi-commodity Flow Problem ! • Nous avons n sources et n puits. Chaque source produit une couleur différente, destinée au puits qui lui correspond. La demande est d . • Respect des capacités : • Conservation, • pas de mélange : • Respect des demandes : i S f ( u , v ) <= c ( u , v ) i i S f ( u , v ) = 0 si u = s , p / i i i v S f ( s , v ) = S f ( v , p ) =d i i i i i v v Cours de graphes 9 - Intranet
Variantes de problèmes de flot----------------------------------------------------------------- • Complexité du Multi-commodity Flow Problem : • Si les flots sont des entiers, le problème de décision sous-jacent est NP–complet déjà pour deux sources et puits. • Le problème est par contre polynômial si les flots sont des réels ! ! ! • Analogie : • La programmation linéaire en nombres entiers est NP–complète ! • La programmation linéaire dans un univers continu est polynômiale ! Cours de graphes 9 - Intranet
Variantes de problèmes de flot----------------------------------------------------------------- • Minimum Cost Flow Problem ! • C’est un problème de flot mono-source et puits. • A chaque arc ( u , v ) nous associons un coût a ( u , v ) ! • L’objectif est de minimiser le coût total d’un flot de valeur d donné : S f ( s , v ) =d v Minimiser : S a ( u , v ) * f ( u , v ) u , v Cours de graphes 9 - Intranet
Variantes de problèmes de flot----------------------------------------------------------------- • Minimum Cost Max Flow Problem ! • C’est un problème de flot mono-source et puits. • A chaque arc ( u , v ) nous associons un coût a ( u , v ) ! • L’objectif est de minimiser le coût total du meilleur flot qui peut être atteint : Maximiser : S f ( s , v ) v tout en minimisant : S a ( u , v ) * f ( u , v ) u , v Cours de graphes 9 - Intranet
Variantes de problèmes de flot----------------------------------------------------------------- • Résolution du Minimum Cost Max Flow Problem : • Le problème est simple, car il suffit d’adapter le principe de Ford & Fulkerson. • Nous allons chercher le chemin augmentant dont le coût total est le plus faible. Le poids de ce chemin correspond au coût unitaire du flot ! • C’est l’algorithme de Dijkstra ! • La complexité est la même que pour la version sans les coûts, car nous avons la même complexité pour la vague et Dijkstra ! ! ! Cours de graphes 9 - Intranet
Variantes de problèmes de flot----------------------------------------------------------------- • Circulation Problem, le problème le plus général ! ! ! • Le puits est relié à la source et ils doivent aussi conserver le flot, d’où le nom de circulation ! • En plus de la capacité maximale c ( u , v ) , nous associons à l’arc ( u , v ) une capacité minimale notée l ( u , v ) ! • Pour un flot d donné, il s’agit de trouver une circulation : f ( p , s ) = d l ( u , v ) <=f ( u , v ) <= c ( u , v ) S f ( u , v ) = 0 v Cours de graphes 9 - Intranet
Variantes de problèmes de flot----------------------------------------------------------------- • Tout est polynômial sauf le multi-commodity en nombres entiers ! • Nous pouvons limiter le nombre de sources à unité. • En supprimant les bornes inférieures l ( u , v ) , nous revenons à un classique problème de flot ! • En annulant les coûts, nous obtenons un simple problème de flot sans coûts ! • En portant la capacité de l’arc ( p , s ) à infini, nous obtenons un problème de maximisation ! Cours de graphes 9 - Intranet
Variantes de problèmes de flot----------------------------------------------------------------- • Le problème d’affectation ! • Il s’agit de trouver un couplage maximal, de poids minimal dans un graphe bi-parti valué ! • Nous avons, par exemple, des personnes et des tâches, ainsi que des coûts de personne–tâche ! • Il s’agit de trouver une bijection entre les personnes et les tâches qui minimise la somme des coûts ! • Si le couplage maximal et de poids minimal est NP–complet sur un graphe pondéré quelconque, il est cependant polynômial sur un graphe bi-parti ! Cours de graphes 9 - Intranet
Variantes de problèmes de flot----------------------------------------------------------------- • Le problème d’affectation est un cas particulier du « problème de transport » ! • Dans le problème de transport, nous avons un nombre m de mines et un nombre u d’usines, ainsi que des coûts de transport connus d’une mine vers une usine ! • Chaque mine ne livre qu’une seule usine et chaque usine ne se fournit qu’auprès d’une mine. • Il s’agit de trouver la correspondance qui minimise la somme des coûts ! Cours de graphes 9 - Intranet
Variantes de problèmes de flot----------------------------------------------------------------- • Le « problème de transport » est un cas particulier du « problème de flot avec coûts » ! • En effet, il suffit de rajouter une « super-mine » en amont des mines et une « super-usine » en aval des usines et de bien choisir les capacités et coûts ! • Nous pouvons en fait trouver un petit nombre de problèmes qui englobe une bonne partie des problèmes que l’on peut rencontrer usuellement ! De telles réductions sont classiques ! ! ! Cours de graphes 9 - Intranet
Applications-----------------------------------------------------------------Applications----------------------------------------------------------------- C H E M I N S D ‘ E U L E R E T D E H A M I L T O N Cours de graphes 9 - Intranet
Chemins d’Euler et de Hamilton----------------------------------------------------------------- • Il peut y avoir des applications surprenantes pour les chemins d’Euler ! • Ainsi, des problèmes d’alignements locaux de séquences de DNA ont pu être ramenées à des problèmes de chemins d’Euler, en utilisant des graphes de De Bruijn ! • Le fait de savoir si un anneau peut être plongé dans un graphe est un problème de cycle de Hamilton ! • Tous problèmes de circuits de type « Voyageur de Commerce » sont des questions de cycles de Hamilton ! Cours de graphes 9 - Intranet
Chemins d’Euler et de Hamilton----------------------------------------------------------------- • Pour un graphe G donné, nous définissons le graphe de représentation R ( G ) suivant : • Chaque arête de G devient un sommet de R ( G ). • Deux sommets de R ( G ) sont reliés s’ils correspondent à des arêtes adjacentes dans G . Les sommets de R ( G ) ! ! ! G Les arrêtes de R ( G ) ! ! ! Cours de graphes 9 - Intranet
Chemins d’Euler et de Hamilton----------------------------------------------------------------- • Si le graphe G admet un chemin d’Euler, alors le graphe R ( G ) aussi ! • Si le graphe G admet un chemin d’Euler, alors le graphe R ( G ) admet un chemin de Hamilton ! • Si le graphe G admet un chemin de Hamilton, alors le graphe R ( G ) aussi ! • Les réciproques ne sont pas vraies ! G Cours de graphes 9 - Intranet
Chemins d’Euler et de Hamilton----------------------------------------------------------------- • Les cycles de Hamilton servent souvent à démontrer que d’autres problèmes sont NP–complets ! • Savoir si un graphe possède un arbre de recouvrement de degré 2 au plus est NP–complet ! En effet, cet arbre est égal au chemin de Hamilton ! • Savoir si un graphe possède un arbre de recouvrement de degré 3 au plus est NP–complet ! En effet, un graphe G admet un chemin de Hamilton si et seulement si le graphe G’ suivant admet un arbre de recouvrement de degré 3 au plus. Ensuite, nous rajoutons les arêtes ( u , u’ ) . . . u u u’ G : G’ : Nous gardons les arêtes et dupliquons les sommets ! v v v’ Cours de graphes 9 - Intranet
Applications-----------------------------------------------------------------Applications----------------------------------------------------------------- A R B R E S D E R E C O U V R E M E N T ( M I N I M A U X ) Cours de graphes 9 - Intranet