Rappel de théorie des graphes et introduction aux différents probłèmes/modèles de flots

Documents pareils
Chapitre 5 : Flot maximal dans un graphe

Programmation linéaire

Souad EL Bernoussi. Groupe d Analyse Numérique et Optimisation Rabat http ://

La NP-complétude. Johanne Cohen. PRISM/CNRS, Versailles, France.

Théorie des Graphes Cours 3: Forêts et Arbres II / Modélisation

Exemples de problèmes et d applications. INF6953 Exemples de problèmes 1

Annexe 6. Notions d ordonnancement.

Communications collectives et ordonnancement en régime permanent pour plates-formes hétérogènes

ALGORITHMIQUE II NOTION DE COMPLEXITE. SMI AlgoII

Cours de Recherche Opérationnelle IUT d Orsay. Nicolas M. THIÉRY. address: Nicolas.Thiery@u-psud.fr URL:

Resolution limit in community detection

Programmation Linéaire - Cours 1

La programmation linéaire : une introduction. Qu est-ce qu un programme linéaire? Terminologie. Écriture mathématique

MIS 102 Initiation à l Informatique

Exercices - Polynômes : corrigé. Opérations sur les polynômes

Eléments de Théorie des Graphes et Programmation Linéaire

Résolution d équations non linéaires

Fonctions de plusieurs variables

Programmation linéaire

Continuité et dérivabilité d une fonction

L utilisation d un réseau de neurones pour optimiser la gestion d un firewall

INFO-F Algorithmique 3 et Recherche Opérationnelle

Limites finies en un point

Analyse empirique et modélisation de la dynamique de la topologie de l Internet

Quelques algorithmes simples dont l analyse n est pas si simple

Chp. 4. Minimisation d une fonction d une variable

Une nouvelle approche de détection de communautés dans les réseaux sociaux

Chapitre 6. Fonction réelle d une variable réelle

Nouvelles propositions pour la résolution exacte du sac à dos multi-objectif unidimensionnel en variables binaires

Plus courts chemins, programmation dynamique

Algorithmes de recherche

Pourquoi l apprentissage?

Introduction à la théorie des graphes. Solutions des exercices

Conception de réseaux de télécommunications : optimisation et expérimentations

Comparaison de fonctions Développements limités. Chapitre 10

Organisation du parcours M2 IR Les unités d enseignements (UE) affichées dans la partie tronc commun sont toutes obligatoires, ainsi que le stage et

Chapitre 3. Quelques fonctions usuelles. 1 Fonctions logarithme et exponentielle. 1.1 La fonction logarithme

Baccalauréat ES/L Amérique du Sud 21 novembre 2013


Lagrange, où λ 1 est pour la contrainte sur µ p ).

INF 232: Langages et Automates. Travaux Dirigés. Université Joseph Fourier, Université Grenoble 1 Licence Sciences et Technologies

Cours de Master Recherche

Big Data et Graphes : Quelques pistes de recherche

Ordonnancement. N: nains de jardin. X: peinture extérieure. E: électricité T: toit. M: murs. F: fondations CHAPTER 1

I. Polynômes de Tchebychev

Algorithmes d'apprentissage

chapitre 4 Nombres de Catalan

Eléments de spécification des systèmes temps réel Pierre-Yves Duval (cppm)

Eteindre. les. lumières MATH EN JEAN Mme BACHOC. Elèves de seconde, première et terminale scientifiques :

Baccalauréat ES Antilles Guyane 12 septembre 2014 Corrigé

Economie de l Incertain et des Incitations

Evaluation des performances de programmes parallèles haut niveau à base de squelettes

Baccalauréat ES Polynésie (spécialité) 10 septembre 2014 Corrigé

De même, le périmètre P d un cercle de rayon 1 vaut P = 2π (par définition de π). Mais, on peut démontrer (difficilement!) que

L exclusion mutuelle distribuée

INFO-F-425 Modèles mathématiques et algorithmes pour l ordonnancement. Bernard Fortz

Théorie et Codage de l Information (IF01) exercices Paul Honeine Université de technologie de Troyes France

Techniques d ordonnancement pour les SoC

Cours d analyse numérique SMI-S4

CONCOURS D ENTREE A L ECOLE DE 2007 CONCOURS EXTERNE. Cinquième épreuve d admissibilité STATISTIQUE. (durée : cinq heures)

Polynômes à plusieurs variables. Résultant

Automatique (AU3): Précision. Département GEII, IUT de Brest contact:

Conception d'un réseau de transport d'électricité

Optimisation for Cloud Computing and Big Data

Rappels sur les suites - Algorithme

Chapitre 7. Récurrences

Image d un intervalle par une fonction continue

Compter à Babylone. L écriture des nombres

Le théorème de Perron-Frobenius, les chaines de Markov et un célèbre moteur de recherche

Optimisation non linéaire Irène Charon, Olivier Hudry École nationale supérieure des télécommunications

Exercices du Cours de la programmation linéaire donné par le Dr. Ali DERBALA

Objectifs du cours d aujourd hui. Informatique II : Cours d introduction à l informatique et à la programmation objet. Complexité d un problème (2)

(51) Int Cl.: H04L 29/06 ( ) G06F 21/55 ( )

Grandes lignes ASTRÉE. Logiciels critiques. Outils de certification classiques. Inspection manuelle. Definition. Test

Probabilités sur un univers fini

TCP/IP, NAT/PAT et Firewall

CHAPITRE 5. Stratégies Mixtes

Big Data et Graphes : Quelques pistes de recherche

Algorithmique et Programmation

Baccalauréat ES Pondichéry 7 avril 2014 Corrigé

Résolution de systèmes linéaires par des méthodes directes

RECHERCHE OPERATIONNELLE

Problème 1 : applications du plan affine

OPTIMISATION À UNE VARIABLE

Cours Optimisation Partie Optimisation Combinatoire. Année scolaire Gérard Verfaillie ONERA/DCSD/CD, Toulouse

Capacité d un canal Second Théorème de Shannon. Théorie de l information 1/34

Faculté des sciences Département de mathématiques. Théorie des graphes

Programmation linéaire

3 Approximation de solutions d équations

Cours des Méthodes de Résolution Exactes Heuristiques et Métaheuristiques

Parallélisme et Répartition

CHAPITRE V SYSTEMES DIFFERENTIELS LINEAIRES A COEFFICIENTS CONSTANTS DU PREMIER ORDRE. EQUATIONS DIFFERENTIELLES.

Contexte. Pour cela, elles doivent être très compliquées, c est-à-dire elles doivent être très différentes des fonctions simples,

FIMA, 7 juillet 2005

Programmation linéaire et Optimisation. Didier Smets

Ebauche Rapport finale

aux différences est appelé équation aux différences d ordre n en forme normale.

Nouvelles propositions pour la résolution exacte du problème de sac à dos bi-objectif unidimensionnel en variables binaires

Proposition. Si G est un groupe simple d ordre 60 alors G est isomorphe à A 5.

Sujet 4: Programmation stochastique propriétés de fonction de recours

Transcription:

Rappel de théorie des graphes et introduction aux différents probłèmes/modèles de flots MSE3211A: Flot et Routage (d après Ahuja, R.K., T.L. Magnanti and J.B. Orlin, Prentice Hall, 1993, et d après les notes des cours de L.A. Wolsey et F. Vanderbeck ) Last update: January 12, 2011 Gautier Stauffer, MAB, Bur. A33:358, Email gautier.stauffer@math.u-bordeaux1.fr

GRAPHES: définitions Un graphe non-orienté G est défini par un ensemble de noeuds (ou sommets) N et un ensemble d arêtes (edges) E (i.e. paire de noeuds): i.e. G = (N, E) Un graphe orienté (digraphe) G est défini par un ensemble de noeuds N et un ensemble d arcs A (i.e. paire de noeuds orientée): i.e. G = (N, A) Pour l arc (i, j), le noeud i est la queue (tail) et le noeud j est la tête (head). Un noeud est incident à une arête (un arc) si ce noeud forme une des extrémités de cette arête (cet arc) et vice-versa. 2 noeuds sont adjacents s ils sont liés par une arête (un arc). 2 arêtes (arcs) sont parallèles si elles (ils) correspondent à la même paire de noeuds.

GRAPHES: définitions Une boucle est une arête (arc) du type (i, i) pour i N Un graphe (digraphe) est simple s il n a ni arêtes (arcs) parallèles, ni boucles. Un graphe simple est complet si toute paire de noeuds définit une arête. Un sous-graphe H d un graphe G est défini par un sous-ensemble de noeuds N(H) N(G) et un sous-ensemble d arêtes E(H) E(G) (d arcs A(H) A(G)) incidentes à ces noeuds. Un sous-graphe H est induit par N(H) si E(H) = E(G(N(H))).

GRAPHES: définitions Un sous-graphe H forme un recouvrement (spanning) des noeuds du graphe G si N(H) = N(G). Un parcours (walk) P dans un graphe (resp. digraphe) est un sous-graphe formé par une séquence de noeuds i 1, i 2,...,i n et les arêtes associées: (i k, i k+1 ) ou (i k+1, i k ) E(P) (resp. A(P)) pour k = 1,...,n. Un parcours orienté (directed walk) P dans un digraphe est un sous-graphe formé par une séquence de noeuds i 0, i 1,...,i n et les arcs associés: (i k 1, i k ) A(P) pour k = 1,...,n Un chemin est un parcours simple, c-à-d un parcours dans lequel aucun noeud n est répété: tous les noeuds de la séquence i 0, i 1,...,i n sont distincts. Un chemin orienté...

GRAPHES: définitions Un cycle est un chemin i 0, i 1,..., i n augmenté d une arête (i n, i 0 ). Un cycle orienté... Un graphe est dit acyclique s il ne contient pas de cycle orienté. Deux noeuds d un graphe sont connectés s il existe au moins un chemin entre ces 2 noeuds. Un graphe est connexe s il existe au moins un chemin entre chaque paire de noeuds. S il existe un parcours entre deux noeuds, alors il existe un chemin entre ces deux noeuds. Un graphe est strictement connexe s il existe au moins un chemin orienté entre chaque paire de noeuds.

GRAPHES: définitions Une coupe dans un graphe est définie par une partition de l ensemble des noeuds: N = S (N \ S). Les arêtes (arcs) de cette coupe, qu on note [S, N \ S], sont celles qui ont leurs extrémités dans S et N \ S respectivement. NOTATION: δ(s) = ensemble des arêtes (arcs) ayant une extrémité (resp. leur origine) dans S Un arbre T est un (sous-)graphe connexe ne présentant pas de cycles PROPRIÉTÉS: E(T) = N(T) 1 un chemin unique entre chaque paire de noeuds. admet au moins deux noeuds de degrés 1.

GRAPHES: définitions Une forêt est un (sous-)graphe ne présentant pas de cycles (il existe au plus un chemin entre chaque paire de noeuds.) Une forêt est une collection d arbres. Un arbre est dit enraciné (rooted) au noeud i N(T) si le noeud i a été désigné comme le noeud racine de l arbre T. Un graphe G(N, A) est biparti si N = N 1 N 2 avec N 1 N 2 = et A (N 1 N 2 ) (N 2 N 1 ). (PROPRIÉTÉ: chaque cycle est pair)

RÉSEAUX (Network): définitions Un réseau est un graphe augmenté de valeurs numériques associées aux noeuds et aux arêtes (arcs): 2 2 5 3 4 1 6 3 1 2 1 2 b i i N demande si b i < 0, offre (production) si b i > 0 c i j (i, j) A coût unitaire pour traverser (i, j) ( C) u i j (i, j) A flot maximum sur (i, j) ( U) l i j (i, j) A flot minimum sur (i, j) ( L) 4 7 6

Algorithmes et Complexité Un algorithme est une procédure pas à pas pour résoudre un problème. Pour comparer la performance de nos algorithmes, on s interessera essentiellement au temps de calcul i.e. le nombre d opérations élémentaires Notation grand O : pour éviter de rentrer dans les détails de certaines opérations, on dira qu on algorithme est en O(f(n)) si c, n 0 tell que le temps pris par l algorithme dans le pire des cas est plus petit ou égal à c f(n) pour tout n n 0. Un algorithme est polynomial si le temps d exécution peut être borné par une fonction polynomiale en la taille du problème e.g. trouver la plus petite arête dans un graphe peut se faire en O(m) où m est le nombre d arêtes. Pour les graphes, un algorithme est polynomial si polynomial en n, m, log C, log U, log L.

MODÈLES DE FLOT DANS DES RÉSEAUX RÉSEAU NOEUDS ARCS FLOT Électrique stations de géné. lignes élec. électricité Téléphone sta. de contrôle câble communications Web serveurs câbles bits Usine machines tapis roulant produits Routier carrefours rue véhicules, biens PROBLÈMES DE BASE Problème du plus court chemin: Trouver la meilleure façon de traverser un réseau (moins coûteuse, plus rapide, plus sûre) OPTIMISATION. Problème de flot maximum: Envoyer autant de flot que possible au travers d un réseau, en respectant les capacités des arcs RÉALISABILITÉ. Problème de flot de coût minimum: envoyer des flots au travers un réseau pour satisfaire les demandes aux noeuds de destination à partir des approvisionnements des noeuds sources en respectant les capacités des arcs et en minimisant les coûts associés RÉALISABILITÉ et OPTIMISATION.

PROBLÈME DU PLUS COURT CHEMIN Dans un réseau orienté avec des arcs de longueur connue, trouver un chemin de longueur minimale entre deux noeuds donnés: la source s et le puits t. APPLICATIONS route de longueur minimale dans un réseau routier; routage le plus sûr dans un réseau télécom. DONNÉES un graphe orienté G = (N, A) connexe; le noeud source s et le puits t N; un coût c i j pour chaque arc (i, j) A. 1 4 6 2 3 2 5 1 2 1 2 4 3 7 6

PROBLÈME DU PLUS COURT CHEMIN VARIANTES Plus court chemin de s vers tous les autres noeuds. Plus court chemin entre chaque paire de noeuds. 1 4 6 2 3 2 5 1 2 1 2 4 3 7 6

FORMULATION VARIABLES: x i j = CONTRAINTES: { 1 si on choisit l arc (i, j) 0 sinon x i j x j i = j N j N +1 i = s 0 i s, t 1 i = t x i j {0, 1} pour tout (i, j) (1) OBJECTIF: min (i,j) A c i j x i j HYPOTHÈSE :PAS DE CYCLE DE COÛT NÉGATIF PROPRIÉTÉ La relaxation linéaire a une solution entière.

CYCLES DE COÛT NÉGATIF Le problème qu ils posent 2 1 5 Cas particuliers arcs à coût positif graphe sans cycle graphe en couches ordre topologique Cas général Détecter la présence d un cycle de coût négatif (facile). Si, il est difficile de trouver un plus court chemin. (reduction au problème du plus long chemin)

PROBLÈME DE FLOT MAXIMUM Dans un réseau orienté avec des capacités sur les arcs, envoyer autant de flot que possible entre un noeud source s et un noeud puits t, sans excéder les capacités. APPLICATIONS maximiser le flux (flot par unité de temps) dans un pipeline ; trafic maximum dans un réseau routier, de télécom. DONNÉES Un graphe orienté G = (N, A) avec les noeuds s & t; Une capacité 0 u i j U entier, pour chaque arc (i, j). 2 10 7 v s 1 t v 6 10 3

PROBLÈME DE FLOT MAXIMUM FORMULATION max v s.a. x i j x j i = j N j N v pour i = s 0 pour i s, t v pour i = t 0 x i j u i j pour tout (i, j) A NB: La programmation linéaire résoud le programme linéaire en nombres entiers (losrque les capacites sont entières)

PROBLÈME DE FLOT À COÛT MINIMUM Établir un flot de coût minimal qui satisfasse à toutes les demandes aux noeuds puits à partir des approvisionnements aux noeuds sources, tout en respectant les capacités des arcs. DONNÉES: un réseaux, c-à-d un graphe orienté G = (N, A) augmenté de b i > 0 aux noeuds source émissions b i = 0 aux noeuds de transit i N b i < 0 aux noeuds de demande coût c i j pour tout arc (i, j) A. capacité (borne supérieure) u i j pour tout (i, j) A. flot minimal (borne inférieure) l i j pour tout (i, j) A.

PROBLÈME DE FLOT À COÛT MINIMUM FORMULATION (LP résoud le IP): Variables de décision: x i j = flot au travers de l arc (i, j) Contraintes: x i j x j i = b i i N j:(i,j) A j:(j,i) A l i j x i j u i j (i, j) A Objectif: min c i j x i j (i,j) A

CAS PARTICULIERS Problème du plus court chemin: l i j = 0, u i j = (i, j) A; b s = b t = 1, b i = 0 autres noeuds. Problème de flot maximum: c i j = 0 (i, j) A b i = 0 i c t s = 1, u t s =.

CAS PARTICULIERS Problème de transport: l ensemble des noeuds se partitionne en un ensemble de fournisseurs, N 1, et un ensemble de clients, N 2 : b i > 0 i N 1 b j < 0 j N 2 et tout arc va d un fournisseur à un client: (i, j) A : i N 1, j N 2 (le graphe est BIPARTI). Exemples: transport de matières premières, de produits finis vers les entrepôts, des entrepôts vers les magasins; transport de personnes.

CAS PARTICULIERS Problème d affectation: le graphe est biparti (comme pour les problèmes de transport) et de plus: b i = 1 i N 1, b j = 1 j N 2 u i j = 1 (i, j) A, N 1 = N 2 Exemples: Affectation de travailleurs aux tâches Affectation de tâches aux machines. Problème de circulation: tous les noeuds sont des noeuds de transit: pas de production, pas de demandes: b i = 0 i Le flot est induit par les bornes inférieures. l i j > 0 pour certains arcs (i, j) Exemple: l affectation du personnel naviguant dans une compagnie aérienne.

GÉNÉRALISATION: Problèmes de flot à coûts convexes: considèrent une fonction coût plus générale que la fonction linéaire Coût c i j x i j (i,j) A Si on fait l hypothèse de coût définit comme une fonction convexe du flot dans l arc Coût (i,j) A c(x i j) où c(x) : est une fonction convexe, on garde beaucoup des bonnes propriétés qui rendent les problèmes de flot relativement facile. Beaucoup d application peuvent être modéliser comme un problème de flot avec coûts convexe. Exemples: Coût représentant la perte de puissance électrique due à la résistance, congestion dans un réseaux urbain.

GÉNÉRALISATION: Problèmes de flot généralisé: Le flot à la sortie d un arc n est pas nécessairement le même que le flot à l entrée: l arc peut consommer ou produire du flot. i x i j µ i j x i j j arc à perte: 0 < µ i j < 1 arc à gain: 1 < µ i j < Exemples: pertes dans réseau électrique ou réseau d eau, transport de biens périssables, flot financier.

GÉNÉRALISATION: Problèmes multi-flot: Plusieurs flots de types différents se partagent la capacité d un réseau. Ces flots se distinguent soit par le fait qu ils représentent des entités différentes (p.e. produits distincts dans un atelier de fabrication) soit simplement par leur origine et /ou destination Problème: partitionner la capacités des arcs entres les flots Exemples: transport de biens distincts, réseau urbain, traffic télécom, sacs de courrier

FLOT SUR ARCS FLOT SUR CHEMINS/CYCLES Etant donné un réseau R = (G, l, u, b), un flot est une solution réalisable pour le système suivant : x i j x j i = b i i N j:(i,j) A j:(j,i) A l i j x i j u i j (i, j) A où x i,j représente le flot au travers de l arc (i, j) 4 units 6 2 4 4 4 +7 1 2 0 2 6-7 2 4 2 units +7 1 6-7 3 3 5 3 3 3 5 3 units

Algorithme de DÉCOMPOSITION DES FLOTS Il est trivial de passer d une représentation sur les chemin et cycles à une représentation sur les arcs. Dans l autre direction, on peut utiliser l algorithme suivant : Supposons qu il existe i 0 un noeud avec un déficit de flot. Il doit alors y avoir un arc (i 1, i 0 ) portant un flot strictement positif. si i 1 est un noeud avec exces de flot, on s arrête sinon le bilan au noeud nous indique qu il y a un arc (i 2, i 1 ) qui porte du flot on repète jusqu à ce qu on trouve un noeud en exces ou qu on revisite un sommet (au plus n fois) Si on a trouvé un chemin P de i k à i 0, on fait passer autant de flot que possible sur ce chemin: f(p) = min{b(i 0 ), b(i k ), min{x ij : (i, j) P}} et on mémorise P et le f(p). si on a trouvé un cycle W, on fait passer autant de flot que possible sur ce cycle : f(w) = min{x ij : (i, j) W }}. On soustrait de x le flot sur P ou sur W : x ij := x ij f(p) pour tout (i, j) P ou x ij := x ij f(w) pour tout (i, j) et on réitère. Une fois tous les noeuds avec un exces/deficit = 0, on applique le même raisonnement sur les arcs portant du flot. Si un tel arc (i 1, i 0 ) existe, ce flot doit arriver en i 1 et on itère comme précédemment pour détecter un cycle W. On soustrait de x le flot sur W et on répète la procédure tant qu il existe des arcs porteurs de flot.

THÉORÈME DE DÉCOMPOSITION D UN FLOT Considérons un digraphe G(N, A) avec N = n et A = m. Theorem Tout flot qui est défini en terme de flot sur des chemins et le long de cycles a une représentation unique en terme de flot sur des arcs. Inversement, tout flot qui est défini en terme de flot sur des arcs peut être représenté comme un flot sur des chemins et le long de cycles (bien que cette représentation ne soit pas unique) avec les propriétés suivantes: (i) Tout chemin portant un flot positif va d un noeud source à un noeud puits. (ii) Il y a au plus m + n chemins et cycles portant un flot positif; et au plus m d entre eux sont des cycles. Un flot de circulation peut être représenté comme des flots le long de, au plus, m cycles.