Construction de graphes contraints

Documents pareils
Jean-Philippe Préaux

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

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

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

Modèles à Événements Discrets. Réseaux de Petri Stochastiques

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

Exercices types Algorithmique et simulation numérique Oral Mathématiques et algorithmique Banque PT

Correction du baccalauréat ES/L Métropole 20 juin 2014

Chapitre 5 : Flot maximal dans un graphe

Baccalauréat ES Antilles Guyane 12 septembre 2014 Corrigé

Big Data et Graphes : Quelques pistes de recherche

Programmation linéaire

Parallélisme et Répartition

Big Data et Graphes : Quelques pistes de recherche

COURS SYRRES RÉSEAUX SOCIAUX INTRODUCTION. Jean-Loup Guillaume

Bac Blanc Terminale ES - Février 2011 Épreuve de Mathématiques (durée 3 heures)

Raisonnement probabiliste

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

Modélisation du comportement habituel de la personne en smarthome

Sauvegarde collaborative entre pairs Ludovic Courtès LAAS-CNRS

Probabilités. I Petits rappels sur le vocabulaire des ensembles 2 I.1 Définitions... 2 I.2 Propriétés... 2

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

INF 162 Probabilités pour l informatique

Probabilités Loi binomiale Exercices corrigés

Apprentissage par renforcement (1a/3)

MegaStore Manager ... Simulation de gestion d un hypermarché. Manuel du Participant

NOTIONS DE PROBABILITÉS

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

L exclusion mutuelle distribuée

Analyse stochastique de la CRM à ordre partiel dans le cadre des essais cliniques de phase I

Sciences de Gestion Spécialité : SYSTÈMES D INFORMATION DE GESTION

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


Apprentissage incrémental par sélection de données dans un flux pour une application de sécurité routière

ACTUARIAT 1, ACT 2121, AUTOMNE 2013 #12

Gestion des Clés Publiques (PKI)

Chaînes de Markov au lycée

Fluctuation d une fréquence selon les échantillons - Probabilités

Cours (7) de statistiques à distance, élaboré par Zarrouk Fayçal, ISSEP Ksar-Said, LES STATISTIQUES INFERENTIELLES

TABLE DES MATIÈRES. PRINCIPES D EXPÉRIMENTATION Planification des expériences et analyse de leurs résultats. Pierre Dagnelie

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

Mesures et incertitudes

Cours de Master Recherche

Baccalauréat ES Amérique du Nord 4 juin 2008

Décision Markovienne appliquée à un jeu de stop ou encore : Pickomino (Heckmeck Am Bratwurmeck)

Baccalauréat ES/L Métropole La Réunion 13 septembre 2013 Corrigé

Programmation linéaire et Optimisation. Didier Smets

Intelligence Artificielle Planification

Plus courts chemins, programmation dynamique

Texte Agrégation limitée par diffusion interne

Probabilités. Rappel : trois exemples. Exemple 2 : On dispose d un dé truqué. On sait que : p(1) = p(2) =1/6 ; p(3) = 1/3 p(4) = p(5) =1/12

Trépier avec règle, ressort à boudin, chronomètre, 5 masses de 50 g.

Optimisation Combinatoire (Méthodes approchées) II. Recherche Locale simple (Les bases)

FIMA, 7 juillet 2005

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

Probabilités. Une urne contient 3 billes vertes et 5 billes rouges toutes indiscernables au toucher.

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

LES GENERATEURS DE NOMBRES ALEATOIRES

Christophe CANDILLIER Cours de DataMining mars 2004 Page 1

Probabilités conditionnelles Loi binomiale

Reconstruction de bâtiments en 3D à partir de nuages de points LIDAR

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

Atelier Transversal AT11. Activité «Fourmis» Pierre Chauvet.

Chp. 4. Minimisation d une fonction d une variable

Optimisation for Cloud Computing and Big Data

Soit la fonction affine qui, pour représentant le nombre de mois écoulés, renvoie la somme économisée.

Biostatistiques Biologie- Vétérinaire FUNDP Eric Depiereux, Benoît DeHertogh, Grégoire Vincke

Programmation Linéaire - Cours 1

Stratégie de recherche adaptative en programmation par contrainte

Annexe commune aux séries ES, L et S : boîtes et quantiles

108y= 1 où x et y sont des entiers

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

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

Quatrième partie IV. Test. Test 15 février / 71

MIS 102 Initiation à l Informatique

FctsAffines.nb 1. Mathématiques, 1-ère année Edition Fonctions affines

Rallye Mathématiques de liaison 3 ème /2 nde et 3 ème /2 nde pro Epreuve finale Jeudi 21 mai 2015 Durée : 1h45

TSTI 2D CH X : Exemples de lois à densité 1

Définitions. Numéro à préciser. (Durée : )

Ebauche Rapport finale

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

Cours de Probabilités et de Statistique

Probabilités et Statistiques. Feuille 2 : variables aléatoires discrètes

Exercices Alternatifs. Une fonction continue mais dérivable nulle part

Exercices Alternatifs. Une fonction continue mais dérivable nulle part

ACTUARIAT 1, ACT 2121, AUTOMNE 2013 #6

# let rec concat l1 l2 = match l1 with [] -> l2 x::l 1 -> x::(concat l 1 l2);; val concat : a list -> a list -> a list = <fun>

Feuille TD n 1 Exercices d algorithmique éléments de correction

Probabilités. C. Charignon. I Cours 3

PROBLEMES D'ORDONNANCEMENT AVEC RESSOURCES

Qu est-ce qu une probabilité?

L écoute active est une attitude destinée à augmenter la qualité de l écoute. Elle permet à l interlocuteur de se sentir entendu et compris.

Pi, poker et informatique ; une «épuisante» alliance pour des projets en mathématiques

Lois de probabilité. Anita Burgun

Simulation de variables aléatoires

Spécifications de raccordement au service de Téléphonie sur IP (ToIP) de RENATER

Thème 17: Optimisation

Objets Combinatoires élementaires

Cryptographie et fonctions à sens unique

Peut-on imiter le hasard?

Transcription:

Construction de graphes contraints Sujet proposé par Gilles Schaeffer Gilles.Schaeffer@lix.polytechnique.fr URL de suivi : http://www.enseignement.polytechnique.fr/profs/informatique/ Gilles.Schaeffer/INF431/projetX12.html 1 Préambule Dans le contexte de la modélisation des réseaux (internet, sociaux, etc) se pose entre autre le problème de construire de bons modèles des réseaux réels : plutôt que de tester ou comparer les nouvelles solutions algorithmiques (algorithmes de routages ou d exploration par exemple) sur un réseau réel, on souhaite commencer par simuler leur exécution sur un grand nombre de graphes tests. Ceci permet d une part de limiter le coût de l expérimentation, et d autre part, de mieux comprendre le lien entre forme du réseau et efficacité des algorithmes. Cependant la question de la ressemblance de ces graphes tests aux réseaux réels qu ils sont sensés modéliser est difficile : pour que les simulations aient un minimum de valeur prédictive, il faudrait construire des graphes qui satisfont un certain nombre de contraintes, sans pour autant être trop particulier. En général la démarche adoptée est de se fixer une classe de graphe (disons les graphes connexes, ou bien les graphes qui peuvent se dessiner dans le plan sans croisement, ou bien les graphes d attachement préférentiel obtenus en ajoutant incrémentalement des arêtes, etc) et de considérer des graphes à n sommets pris au hasard dans cette classe (uniformément, ou suivant une distribution de probabilité bien choisie). Le problème est de trouver des classes intéressantes de graphes pour lesquelles on sache construire efficacement de gros exemples representatifs : ainsi on entend beaucoup parler des graphes petits mondes mais la bonne spécification de cette famille de graphes n est pas encore bien claire... Le but de ce projet est d étudier un tel problème de construction de graphes contraints. Il s agit essentiellement d un projet d algorithmique de graphes, faisant appel à des structures de données et des algorithmes du type de ceux vu en cours (Chapitre 5). 1

2 Détail du sujet 2.1 Contraintes de degrés Nous étudions dans ce projet un type classique de contraintes qui porte sur les degrés des sommets. Rappelons qu un graphe est donné par un ensemble de sommet X et un ensemble d arêtes E P 2 (X), où P 2 (X) désigne l ensemble des paires (non ordonnées) de sommets distincts. Le degré d un sommet est le nombre d arêtes qui lui sont incidentes, ou autrement dit, le nombre de ses voisins. La classe de graphes auxquels on va s intéresser est obtenue en fixant une distribution de degré : pour d 1 d 2... d n 1, on note d 1,..., d n l ensemble des graphes à n sommets ayant pour degré exactement d 1,..., d n. On note de plus d 1,..., d n C le sous-ensemble de ces graphes qui sont connexes. L objectif du projet est de programmer un générateur qui, étant donnés les degrés d 1,..., d n, construit, lorsque c est possible, un graphe de d 1,..., d n C. 2.2 Algorithmes Un algorithme glouton Étant donnés d 1... d n on veut construire un graphe d 1,..., d n s il en existe un. Pour cela on maintient un couple (G, δ) où G est un graphe à n sommets et δ est un tableau qui indique le nombre d arêtes encore attendue sur chaque sommet : 1. au départ G est le graphe à n sommets sans arêtes et δ[i] = d i, pour tout i = 1,..., n ; 2. répéter pour i = 1,..., n : (a) joindre le sommet i de G à chacun des δ[i] sommets suivants par une arête ; (b) mettre à jour δ : faire δ[i + j] := δ[i + j] 1 pour j = 1,..., δ[i], puis δ[i] := 0 ; (c) si l un des δ[j] devient négatif, produire un certificat du fait que d 1,..., d n = 0 ; (d) sinon réordonner les entrées δ[i + 1],..., δ[n] en ordre décroissant 3. le graphe G obtenu lorsque δ = [0,..., 0] appartient à d 1,..., d n. Dans un premier temps vous devriez vous convaincre de la validité de l algorithme : il faut pour cela expliquer en quoi consiste le certificat produit à l étape (c). L algorithme précédent ne garantit pas la connexité du graphe construit : on obtient un graphe de d 1,..., d n mais pas nécessairement de d 1,..., d n C. Échange d arêtes et connexité Pour qu on puisse espérer trouver un graphe connexe il faut que le nombre d arêtes soit suffisant : en effet un graphe connexe à n sommets admet un arbre couvrant de ses n sommets, lequel est fait de n 1 arêtes. Ceci se traduit par la condition i d i 2(n 1) nécessaire pour que d 1,..., d n C soit non vide. Si cette condition est vérifiée et si on dispose d un graphe de d 1,..., d n on peut alors le transformer en un graphe connexe en itérant la transformation locale suivante, appelée flip : soit G un graphe de d 1,..., d n avec c 2 composantes connexes ; 2

si i d i 2(n 1) alors au moins une de ses composantes connexes contient au moins autant d arêtes que de sommets et donc contient un cycle (le montrer par récurrence sur le nombre de composantes connexes) ; soit a = (x, y) une arête de ce cycle ; soit a = (x, y ) une arête prise dans une autre composante connexe du graphe ; remplacer a et a par les arêtes (x, x ) et (y, y ) ; le nouveau graphe ainsi obtenu est toujours dans d 1,..., d n et il a c 1 composantes connexes (le montrer). Remarquons que cet algorithme nécessite de rechercher des cycles et des composantes connexes, ce qui se fait à l aide des parcours vu en cours. 2.3 Énumération et graphes aléatoires Une fois qu on est capable d engendrer au moins un graphe étant donné une suite de degré, on souhaite pouvoir les engendrer tous, ou en engendrer un au hasard. Dans les deux cas on va utiliser le fait que des flips du type définis à la section précédente permettent de passer d un graphe de d 1,..., d n à n importe quel autre. Dans cette partie on ne s occupera pas de la connexité. Pour énumérer tous les graphes de d 1,..., d n (on parle aussi de génération exhaustive), on va explorer à partir d un graphe l ensemble des graphes accessibles par flip de deux arêtes a = (x, y) et a = (x, y ) quelconque. On peut voir ce problème comme celui de l exploration d un (méta)graphe G dont l ensemble des sommets est d 1,..., d n et les arêtes sont données par les flips. On admettra que ce graphe est connexe : le problème d énumération revient alors à programmer un parcours du graphe G suivant votre méthode de parcours favorite. Pour tirer un graphe aléatoire dans d 1,..., d n on effectue une marche aléatoire sur le G : à partir du graphe initial engendré par l algorithme de construction, on effectue une séquence flips aléatoires. Le nombre de flips effectués sera donné comme paramètre à l algorithme : d un côté plus on fait de flips plus l algorithme est lent, d un autre côté il faut faire suffisament de flips pour oublier la configuration initiale dont on est partie. (Le choix du nombre de flips nécessaires est lié à la convergence de la chaine de Markov associée, les étudiants portés pour la chose pourront consulter la litérature d analyse d algorithmes fournie sur la page de suivi.) 3 Extention aux contraintes de degré joints Dans un second temps il est envisageable de raffiner la classe de graphes considérée en fixant non seulement les degrés mais aussi une matrice d adjacence par degrés, qui indique, pour tout i, j, le nombre de couples de sommets (x, y) tels que x et y sont voisins et de degré i et j respectivement. Plus précisément, on se donne une partition de l ensemble V = {1,..., n} des sommets en classes V 1,..., V k, (V i V j = et i V i = V ) et une matrice symétrique D = (d i,j ) 1 i,j k et on cherche un graphe G tel que : le nombre total d arêtes joignant des sommets de V i et de V j soit d i,j pour tout i j. le nomobre total d arêtes entre les sommets de V i soit d i,i les sommets de la classe V i ont tous le même degré d i, qui du coup est donné par la 3

relation V i d i = 2d i,j + j i d i,j On note V, d, D l ensemble des graphes satisfaisant ces conditions et V, d, D C le sousensemble de ces graphes qui sont connexes. L intérêt de cette définition vient de l observation expérimentale que pour de bon choix de matrice D les graphes pris au hasard dans V, d, D C semblent ressembler plus aux graphes de réseaux réels que les graphes contraints seulement par les degrés, ou engendré par d autres modèles classiques de graphes. Ce type d affirmation est néanmoins toujours sujet à polémique : nous nous contenterons d aborder le problème, déjà intéressant et difficile en soi, de construire des graphes de V, d, D C. Pour traiter ce problème on utilisera l algorithme de Amanatidis, Green et Mihail, dont on trouvera une description sur la page de suivi. 4 Travail demandé Il est demandé de programmer au minimum le générateur de graphe connexe tel que décrit à la section 2.2, ainsi qu un programme de test qui calcule des statistiques sur les graphes obtenus. Il est demandé de fournir les résultats de tests sur une série significative d exemples, aussi gros que possible : une approche possible est de récuperer des graphes réels (cartes de portions d internet, graphes de collaborations, ou autre), et de comparer leurs caractéristiques avec celle des graphes de même distribution de degré engendrés par votre algorithme. 4.1 Format d entrée et sortie Générateur La liste des degrés sera lue dans un fichier texte, tandis que les options (nom des fichiers d entrée/sortie, connexité ou non du graphe demandé, version aléatoire ou non,...) seront prises en ligne de commande. Le graph produit en sortie devra pouvoir être stoqué dans un fichier sous différents formats, incluants au minimum la matrice d adjacence et le format graphml, décrit à l adresse http://graphml.graphdraing.org/primer/graphml-primer.html Ce format est très riche mais les trois ou quatre balises principales sont suffisantes pour décrire un graphe. Testeur Le testeur devra être capable de relire un graphe à l un des formats produits par le générateur. En fonction des options prises en ligne de commande il calculera des statistiques sur le graphe, dont au minimum les deux suivantes : Le diamètre du graphe et le profil des sommets : pour chaque sommet le nombre de sommets à distance i pour tout i. Le nombre et la taille des composantes connexes. 4

4.2 Critères d évaluation En plus des critères standards d évaluation du projet rappelés sur la page web des projets, on prendra soin d expliquer les choix d implantation et l organisation des données adoptées pour gérer les graphes. 4.3 Extensions possibles Il est bien entendu possible de programmer une visualistation des graphes produits mais il est plutôt conseillé d utiliser un programme existant pour cela. Une extension plus intéressante serait de traiter le problème évoqué aux sections 2.3 et 3. On trouvera pour cela des pistes de lecture sur la page de suivi. 5