RAPPORT DE STAGE : Création d un programme pour la reconnaissance de ballons récursivement arbitrairement partitionnables



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

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

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

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

BACCALAUREAT GENERAL MATHÉMATIQUES

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

Suites numériques 3. 1 Convergence et limite d une suite

Commun à tous les candidats

TP 2 Réseaux. Adresses IP, routage et sous-réseaux

Université Paris-Dauphine DUMI2E 1ère année, Applications

La mesure de Lebesgue sur la droite réelle

III- Raisonnement par récurrence

Ebauche Rapport finale

Limites finies en un point

Encryptions, compression et partitionnement des données

avec des nombres entiers

LE PROBLEME DU PLUS COURT CHEMIN

VIII- Circuits séquentiels. Mémoires

Intégration et probabilités TD1 Espaces mesurés Corrigé

Image d un intervalle par une fonction continue

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

Travaux pratiques. Compression en codage de Huffman Organisation d un projet de programmation

Gestion des fichiers sur micro-ordinateur

Arithmétique binaire. Chapitre. 5.1 Notions Bit Mot

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

Chapitre 1 : Évolution COURS

Intégration et probabilités TD1 Espaces mesurés

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

Cours d introduction à l informatique. Partie 2 : Comment écrire un algorithme? Qu est-ce qu une variable? Expressions et instructions

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

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

Jade. Projet Intelligence Artificielle «Devine à quoi je pense»

1 de 46. Algorithmique. Trouver et Trier. Florent Hivert. Mél : Florent.Hivert@lri.fr Page personnelle : hivert

Chapitre 2 Le problème de l unicité des solutions

Représentation des Nombres

Introduction à l étude des Corps Finis

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

Baccalauréat ES Antilles Guyane 12 septembre 2014 Corrigé

Le calcul du barème d impôt à Genève

Le modèle de Black et Scholes

Partie théorique (20 points) :

1 Définition et premières propriétés des congruences

Groupe symétrique. Chapitre II. 1 Définitions et généralités

Les indices à surplus constant

Licence Sciences et Technologies Examen janvier 2010

Fonctions de plusieurs variables

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

Théorie de la mesure. S. Nicolay

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

Probabilités conditionnelles Exercices corrigés

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

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

INTRODUCTION A L ELECTRONIQUE NUMERIQUE ECHANTILLONNAGE ET QUANTIFICATION I. ARCHITECTURE DE L ELECRONIQUE NUMERIQUE

Problèmes de Mathématiques Filtres et ultrafiltres

Fonctions de plusieurs variables, intégrales multiples, et intégrales dépendant d un paramètre

Big Data et Graphes : Quelques pistes de recherche

chapitre 4 Nombres de Catalan

# 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>

OPTIMISATION DE LA MAINTENANCE DES EQUIPEMENTS DE MANUTENTION DU TERMINAL A CONTENEURS DE BEJAIA (BMT)

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

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

Dualité dans les espaces de Lebesgue et mesures de Radon finies

Manipulateurs Pleinement Parallèles

UFR de Mathématiques et Informatique Année 2009/2010. Réseaux Locaux TP 04 : ICMP, ARP, IP

Métriques de performance pour les algorithmes et programmes parallèles

Compter à Babylone. L écriture des nombres

M2 IAD UE MODE Notes de cours (3)

Synthèse «Le Plus Grand Produit»

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

Bases de données. Chapitre 1. Introduction

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

V- Manipulations de nombres en binaire

Fiche Pratique. Présentation du problème. Le cas le plus simple. Un cas plus compliqué. MAJ le 15/12/2011

Fibonacci et les paquerettes

Probabilités Loi binomiale Exercices corrigés

Manuel d utilisation 26 juin Tâche à effectuer : écrire un algorithme 2

Probabilités sur un univers fini

Protocoles d authentification

Complément d information concernant la fiche de concordance

LA NOTATION STATISTIQUE DES EMPRUNTEURS OU «SCORING»

Baccalauréat S Antilles-Guyane 11 septembre 2014 Corrigé

Mises en relief. Information supplémentaire relative au sujet traité. Souligne un point important à ne pas négliger.

Peut-on imiter le hasard?

Chapitre 2. Eléments pour comprendre un énoncé

IFT3245. Simulation et modèles

UEO11 COURS/TD 1. nombres entiers et réels codés en mémoire centrale. Caractères alphabétiques et caractères spéciaux.

ANNUITES. Les annuités définissent une suite de versements identiques ou non effectués à intervalles de temps égaux. -annuités non constantes

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

Architecture des Systèmes d Information Architecture des Systèmes d Information

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

Chapitre 01 Généralités

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

Compte rendu de LA37 B, TP numéro 1. Evolution de la température et du degrée d'hydratation

Nombres, mesures et incertitudes en sciences physiques et chimiques. Groupe des Sciences physiques et chimiques de l IGEN

Exercices Alternatifs. Quelqu un aurait-il vu passer un polynôme?

Exercices Alternatifs. Quelqu un aurait-il vu passer un polynôme?

Info0804. Cours 6. Optimisation combinatoire : Applications et compléments

SOCLE COMMUN - La Compétence 3 Les principaux éléments de mathématiques et la culture scientifique et technologique

Probabilités. C. Charignon. I Cours 3

Transcription:

Laboratoire Bordelais de Recherche en Informatique Licence 3 : Informatique RAPPORT DE STAGE : Création d un programme pour la reconnaissance de ballons récursivement arbitrairement partitionnables Auteur : Enguerrand Petit Maître de stage : Olivier Baudon

Avant de commencer, je souhaite remercier les personnes qui m ont accueilli durant ce stage. Tout d abord Olivier Baudon, qui m a permis de faire ce stage dans les meilleures conditions possibles. Je remercie aussi Julien Bensmail qui m a accompagné tout au long de mon stage, qui m a permis de mener le projet à bien, et surtout avec qui j ai pu échanger longuement sur les différents points qui pouvaient nous poser problèmes.

Table des matières Introduction 1 1 Définitions, terminologie et objectifs du stage 3 1.1 Définitions et terminologie...................................... 3 1.1.1 Graphe récursivement arbitrairement partitionnable................... 3 1.1.2 Multipodes.......................................... 4 1.1.3 Chenilles........................................... 4 1.1.4 Ballons............................................ 4 1.1.5 Ballons partiels........................................ 4 1.2 Objectifs et problématiques du stage................................ 5 2 Réalisation du programme 6 2.1 Analyse et conception........................................ 6 2.2 Structures de graphes........................................ 7 2.3 Stockage des résultats........................................ 7 2.4 Exemple sur les structures 1 et 8.................................. 8 2.4.1 Structure 1.......................................... 8 2.4.2 Structure 8.......................................... 9 3 Résultats expérimentaux 12 3.1 Taille du problème.......................................... 12 3.2 Validation des résultats....................................... 12 3.3 Observations expérimentales..................................... 12 3.3.1 Résultats sur les 4-ballons RAP............................... 13 3.3.2 Résultats sur les 5-ballons RAP............................... 13 4 Améliorations possibles du programme 14 Conclusion 14 Bibliographie 16 1

Introduction Lors de ce stage de deux mois, j ai travaillé en collaboration avec Julien Bensmail qui effectue sa thèse au Laboratoire Bordelais de Recherche en Informatique (LaBRI). Le LaBRI regroupe des enseignantschercheurs, des chercheurs et des techniciens. Ce stage s est déroulé en deux temps. Tout d abord j ai dû travailler en parallèle de mes cours en répartissant les heures comme je le souhaitais. Puis, lorsque les cours étaient finis, j ai pu travailler à temps plein sur le projet en dehors du LaBRI mais avec des réunions de travail une à deux fois par semaine pour faire le point sur son avancement. La problèmatique de mon stage était en rapport avec un problème de décomposition de graphes en sousgraphes connexes. Dans ce rapport, nous présentons le travail que j ai effectué. Dans un premier temps nous exposerons quelques définitions nécessaires à la compréhension des objectifs du stage. Dans un second temps nous verrons la réalisation du programme que nous avons créé en réponse aux problèmatiques, ainsi que les résultats que nous avons obtenus grâce à celui-ci. Enfin, pour finir, nous donnerons des améliorations que nous pouvons apporter à notre programme. 2

Chapitre 1 Définitions, terminologie et objectifs du stage Afin de bien comprendre la problématique qui sera introduite à la fin de cette section, il est nécessaire de donner quelques définitions et d introduire plusieurs classes de graphes. Nous ne donnons pas les définitions de bases de la théorie de graphes, mais le lecteur peut les trouver dans [3]. 1.1 Définitions et terminologie 1.1.1 Graphe récursivement arbitrairement partitionnable Un graphe G d ordre n est récursivement arbitrairement partitionnable (RAP) ssi pour tout entier λ [1, n/2 ] on peut trouver un sous-ensemble S λ V (G) de sommets tel que G[S λ ] soit RAP et connexe d ordre λ et G[V (G) S λ ] soit RAP et connexe. Figure 1.1 Exemple de partition d un graphe G est d ordre 5 et est partitionnable pour λ allant de 1 à 2. Les sous-graphes induits sont RAP donc G est RAP. 3

1.1.2 Multipodes Un k-pode ou multipode est un graphe formé de k chaînes disjointes connectées par une extrémité à un sommet distinct appelé racine. Un multipode est noté P(c 1,..., c k ) où les c i sont les tailles des chaînes connectées à la racine. Figure 1.2 Le 6-pode P (1, 1, 1, 2, 2, 3) 1.1.3 Chenilles Une chenille est un arbre constitué d une chaîne principale à laquelle tous ses sommets appartiennent ou sont à distance 1. Ici, nous nous intéressons à une sous-famille de chenilles, à savoir celles qui possèdent exactement un sommet qui n est pas sur sa chaîne principale. Une telle chenille est notée Cat(a, b) (voir figure 1.3). Observons qu une chenille Cat(a, b) peut être vue comme un 3-pode P (1, a 1, b 1) (tripode). Figure 1.3 La chenille Cat(3, 3) Figure 1.4 Valeurs de a et b (a b) pour lesquelles la chenille Cat(a, b) est RAP 1.1.4 Ballons Un k-ballon est un graphe 2-connexe obtenu en reliant deux sommets r 1 et r 2 dits racines grâce à k chaînes disjointes (voir figure 1.5). Le sommet r 1 est la racine du haut du ballon, tandis que r 2 est sa racine du bas. On peut voir un k-ballon comme un k-pode dont on a joint les extrémités des branches. 1.1.5 Ballons partiels Un ballon partiel est un k-ballon qui possède des branches pendantes, c est-à-dire des branches reliées uniquement à sa racine du haut ou du bas. Cette structure est notée P B(b 1,..., b k, b k+1,..., b k+x, b k+x+1,..., b k+x+y ) (un tel ballon a alors k branches normales, x branches reliées uniquement à sa racine du haut et y branches uniquement reliées à sa racine du bas). 4

Figure 1.5 Le 4-ballon B(3, 4, 5, 6) Figure 1.6 Le ballon partiel P B(2, 3, 2, 3 ) 1.2 Objectifs et problématiques du stage L objectif de ce stage était de créer un programme qui s appuie sur l article [1] afin de trouver un maximum de 4-ballons et 5-ballons RAP possible afin de pouvoir répondre à certaines questions. Une des interrogations concernait la taille de la plus petite branche d un 5-ballon RAP. Nous savions déjà que cette branche à un nombre de sommets inférieur à 7, mais la preuve donnée dans l article est non constructive. Nous ne savions donc toujours pas si un 5-ballon RAP avec une plus petite branche aussi longue existait. D autant plus que cette borne semble large puisque nous ne connaissons pas de 5-ballon RAP dont la plus petite branche contient plus de 2 sommets. Nous avons donc cherché s il était possible qu un 5-ballon RAP ait une plus petite branche (b 1 ) avec un nombre de sommets strictement supérieur à 2. D autres informations nous paraissaient intéressantes à étudier, comme par exemple la croissance des branches d un 4-ballon ou 5-ballon RAP, l existence d une borne sur la longueur de leur 2ème plus petite branche (b 2 ), ou l existence d une relation entre les longueurs des branches d un tel ballon. 5

Chapitre 2 Réalisation du programme 2.1 Analyse et conception Afin de déterminer si un ballon d ordre n est RAP, il faut, d après la définition 1.1.1, montrer que pour tout λ dans [1, n/2 ], il existe une façon de partitionner le graphe en deux sous-graphes connexes RAP contenant respectivement λ et n λ sommets. Ainsi, un programme doit vérifier cela pour chaque valeur de λ. Cela est fait grâce à une boucle. Lorsque l on partitionne un ballon en deux parts, les deux sous-graphes induits ont chacun une structure particulière. Le nombre de ces structures est fini. En l occurrence, une part doit engendrer une chaîne, une chenille Cat(a, b), un tripode ou un ballon (partiel ou non) RAP. Pour chaque membre d une de ces familles de graphes, il faut pouvoir décider s il est RAP ou non. Les chaînes et les tripodes sont des graphes pour lesquels nous sommes capable de décider facilement s ils sont RAP ou non (une chaîne étant toujours RAP). Pour les structures plus complexes comme les ballons partiels, aucune caractérisation n est connue. Donc le programme devait également déterminer si un tel graphe est RAP ou non. Pour chaque graphe d une de ces structures nous avons dû décider, pour un λ donné, les différentes stratégies possibles pour choisir les deux parts. Chacune de ces possibilités a été codée en dur dans le programme par le biais d une fonction. Observons que l ordre des chaînes passées en paramètre d une de ces fonctions est important. En l occurrences, les tailles des branches d un ballon doivent être passées dans l ordre croissant (b 1 b 2 b 3...). Si cet ordre n est pas respecté, on risque d avoir besoin d un graphe qui n a pas encore été calculé (et dont on ne sait pas s il est RAP ou non) pour pouvoir déterminer si un autre graphe est RAP ou non, ce qui n est pas concevable. Afin de simplifier les stratégies de partition du graphe, il est parfois judicieux de travailler sur la part contenant n λ sommets. Cela permet de réduire les cas à étudier. Par exemple, sur un 4-ballon B(b 1, b 2, b 3, b 4 ), si b 4 est grand et que λ = b 1 + b 2 + b 3 + 2, observons que n λ = b 4. Dans ce cas, il est alors préférable de prendre la 4ème chaîne comme part de taille b 4 plutôt qu essayer de choisir la part de taille λ. Pour créer ce programme, nous nous sommes imposés plusieurs contraintes. Notre programme ne devait tout d abord pas construire de graphe afin de simplifier l algorithme et d économiser la mémoire de l ordinateur. Il travaille donc seulement uniquement sur les paramètres liés à la structure des graphes traités (par exemple la taille des branches pour un ballon). Afin de valider l étape de validation, nous avons également dû mettre en place un historique : lorsque le programme trouve une partition d un graphe, celle-ci doit être mémorisée dans un fichier prévu à cet effet (voir section [2.3]). Il nous semblait également judicieux de créer un système de reprise pour nos programmes s appuyant sur le système de stockage introduit plus haut. Notre système de reprise teste juste si un fichier existe pour un graphe, ce qui permet d éviter de recalculer si un graphe est RAP alors que le programme l a déjà fait. Celà est particulièrement utile si le programme s est arrêté sans avoir fini de calculer un ballon lors d une 6

exécution antérieure. 2.2 Structures de graphes Nous présentons les différentes structures rencontrées lors de la partition d un ballon (partiel ou non) en deux parts RAP. Pour chacune d entre elles, nous donnons les structures nécessitées pour vérifier qu un candidat est RAP ou non. Numéro Notation Structures nécessaires de la de la pour déterminer structure structure si le graphe est RAP 0-1 1 P B(b 1, b 2, ovx, undy) 1 0 2 P B(b 1, b 2, ovx, ovy) 2 0 3 P B(b 1, b 2, ovx, ovy, undz) 1 2 3 0 4 P B(b 1, b 2, b 3, ovx, undy) 2 3 4 0 5 P B(b 1, b 2, ovx, ovy, ovz) 2 5 0 6 P B(b 1, b 2, b 3, ovx) 1 2 3 6 0 7 P B(b 1, b 2, b 3, ovx, ovy) 2 3 7 0 8 P B(b 1, b 2, b 3, b 4, ovx) 4 6 7 8 4B 0 4B b 4 (b 1, b 2, b 3, b 4 ) 4 6 0 5B b 5 ( b 1, b 2, b 3, b 4, b 5 ) 4B 8 0 2.3 Stockage des résultats Puisque le fait qu un ballon soit RAP peut être basé sur le fait qu un ballon calculé précédemment est RAP, il nous fallait mémoriser les résultats obtenus, qu ils soient positifs ou négatifs. Ainsi pour chaque graphe de chaque structure, nous enregistrons, pour chaque λ, les manières de le décomposer en deux sousgraphes RAP lorsque c est possible. Plus précisément, pour chaque structure, un répertoires est créé et, a chaque graphe de cette dernière est associé un fichier. Le programme se base donc sur l arborescence suivante :.../Pb <n o structure>/ <booléen> PB(b 1... b k ov b k+1... ov b k+x und b k+x+1... und b k+x+y ) où Pb <no structure> est le dossier associé à la structure, et <booléen> PB(b 1... b k ov b k+1... ov b k+x und b k+x+1... und b k+x+y ) est le fichier qui est associé au graphe P B(b 1,..., b k, b k+1,..., b k+x, b k+x+1,..., b k+x+y ). <booléen> est un entier valant 1 ou 0 selon si le graphe est RAP ou non. ov et und sont des abréviations pour over et under, permettant de caractériser si la longueur de la branche pendante associée est reliée à la racine du haut ou du bas. Les n o des structures correspondent a ceux donné dans la table 2.2. Lorsque nous sommes dans le cas d un ballon normal, nous avons une arborescence équivalente, de la forme suivante :.../Bk / <bool> Bk(b 1... b k ) 1. Ce sont les chaînes, les tripodes (chenilles ou non). Rappelons que déterminer si un tel graphe est RAP ou non est facile (voir figure 1.3). 7

Toutes les fonctions pour tester si un fichier existe sont dans test fichier.c. A une structure est associée une fonction se déplaçant dans le répertoire correspondant. Par exemple, la fonction test fichier ST4 se déplace dans le répertoire Pb 4 pour vérifier si un graphe de structure 4 est RAP ou non et revient dans le répertoire d origine. Ces fonctions prennent en paramètre la taille des différentes branches liées au ballon que l on souhaite tester et se chargent de trier les branches dans l ordre croissant. 2.4 Exemple sur les structures 1 et 8 Nous présentons, pour deux structures, les stratégies qui suffit de vérifier pour déterminer, pour un λ donné, si un candidat est partitionnable ou non. 2.4.1 Structure 1 Voici le schéma de la première structure, un graphe B de profil P B(b 1, b 2, x, y). Cas 1 : λ < x Nous prenons λ sommets sur une branche pendante. La part contenant λ sommets est une chaîne et est donc RAP. Celle contenant n λ sommets est un graphe ayant une structure similaire à celle de B, à savoir P B(b 1, b 2, x λ, y). Il suffit donc de tester lequel des fichiers 1 P B(b 1 b 2 ovx λ, und y) ou 0 P B(b 1 b 2 ov x λ, und y) existe pour savoir si pour cette part le graphe est RAP. Figure 2.1 Schéma de la structure 1 Figure 2.2 Cas 1 de partition Cas 2 : λ = b 1 Les λ sommets sont pris sur la branche b 1. Cette décomposition nous donne donc 2 chaînes de tailles λ et n λ sommets. Pour ce λ le graphe est donc partitionnable. Figure 2.3 Cas 2 de partition 8

Cas 3 : λ b 1 Dans ce cas, nous prenons tous les sommets d une branche pendante ainsi que a et b sommets des deux branches afin de former deux tripodes. Il nous suffit alors de vérifier s il est possible de trouver a et b pour obtenir deux tripodes RAP. Pour cela nous faisons varier a dans l intervalle [0; λ (x+1)] et nous posons b = (λ (x + 1)) a. Rappelons que si a = 0, le premier tripode formé est alors une chaîne qui est RAP (idem lorsque b = 0). Figure 2.4 Cas 3 de partition Cas 4 : λ < b 1. Deux solutions de partition sont possibles : Cas 4.1 : Nous prenons λ sommets à partir du premier sommet de la branche de taille b 1. Nous obtenons alors une chaîne et un tripode. Il nous faut alors vérifier si ce dernier est RAP. Cas 4.2 : Les λ sommets sont pris à partir du dernier sommet de la branche de taille b 1 en remontant sur b 1. Nous retrouvons une chaîne et un tripode. La même vérification que précédemment s impose. Figure 2.5 Cas 4.1 de partition Figure 2.6 Cas 4.2 de partition 2.4.2 Structure 8 Voici le schéma d un graphe B de structure 8, à savoir P B(b 1, b 2, b 3, b 4, x). 9 Figure 2.7 Schéma de la structure 8

Cas 1 : λ < x Nous prenons λ sommets à partir du bout de la branche pendante. Cette première part est donc une chaîne. La structure de la seconde part est similaire à celle de B, à savoir P B(b 1, b 2, b 3, b 4, x λ). Nous avons donc besoin de tester lequel des fichiers 1 P B(b 1 b 2 b 3 b 4 ov x λ) ou 0 P B(b 1 b 2 b 3 b 4 ov x λ) existe. Figure 2.8 Cas 1 de partition Cas 2 : λ = x Nous prenons tous les sommets de la branche pendante. Nous obtenons une chaîne et un 4-ballon. Il suffit alors de vérifier que B(b 1, b 2, b 3, b 4 ) est RAP. Cas 3 : λ = b 1 Ici nous prenons les λ sommets de la branche de taille b 1. Nous obtenons alors une chaîne et un graphe appartenant à la structure 6. Pour déterminer si la partition est correcte, il faut chercher dans le répertoire Pb 6 lequel de ces fichiers 1 P B(b 2 b 3 b 4 ov x) ou 0 P B(b 2 b 3 b 4 ov x) existe. Figure 2.9 Cas 2 de partition Figure 2.10 Cas 3 de partition Cas 4 :λ x + b 1 + 1 Nous prenons tous les sommets de la branche pendante de taille x et de la branche de taille b 1, ainsi que des sommets sur la branche de taille b 2. Posons d = λ (x+b 1 +1). Cette décomposition nous donne les deux tripodes T (x, b 1, d) et T (b 2 d, b 3, b 4 ). La partition est correcte si les deux tripodes sont RAP. Figure 2.11 Cas 4 de partition 10

Cas 5 : si λ < b 1, nous distinguons deux possibilités : Cas 5.1 : Nous prenons λ sommets à partir du premier sommet de la branche de taille b 1. Nous obtenons une chaîne de λ sommets et un graphe de structure 4. Afin de déterminer si la partition est correcte, le programme doit tester lequel de ces fichiers 1 P B(b 2 b 3 b 4 ov x und b 1 λ) ou 0 P B(b 2 b 3 b 4 ov x und b 1 λ) existe. Figure 2.12 Cas 5.1 de partition Cas 5.2 : Nous répétons la même stratégie que dans le cas précédent, hormis que les sommets sont pris en partant du dernier sommet de la branche de taille b 1 Figure 2.13 Cas 5.2 de partition 11

Chapitre 3 Résultats expérimentaux 3.1 Taille du problème Nous ne connaissons pas la complexité du problème de déterminer si un graphe est RAP. Néanmoins, nous allons majorer, à titre d exemple, le nombre de 5-ballons que notre programme a traité. Nous avons lancé notre programme avec les valeurs suivantes : b 1 de 1 à 7, b 2 de b 1 à b 1 + 10, b 3 deb 2 à b 2 + 10, b 4 de b1+b2+b3 2 à b1+b2+b3 2 + 10, b 5 de b1+b2+b3+b4 2 à b1+b2+b3+b4 2 + 10. Nous calculons donc 7 10 6 5-ballons. Rappelons que, pour un λ donné, une stratégie de partition s appliquant sur une branche s applique sur toutes les autres. Ainsi notre programme doit être exécuté sur tous les ballons obtenus en permutant les longueurs de leurs branches de toutes les manières possibles (120 permutations). Nous traitons donc au maximum 120 7 10 6 = 840 10 6 5-ballons. Pour chacun d entre eux, nous les partitionnons pour λ allant de 1 à n/2. Sachant que le plus grand ballon traité a 140 sommets, n/2 est inférieur à 70. Une majoration du nombre de tests effectués est donc de 59 10 9 opérations sur les ballons. 3.2 Validation des résultats Afin de vérifier que les différents programmes créés fonctionnent et nous donnent les résultats souhaités, nous avons dû, dans un premier temps, vérifier si les résultats inscrits dans les fichiers étaient cohérents. Si le programme a trouvé qu un graphe n est pas partitionnable pour un λ donné, il nous a fallu vérifier que c était effectivement le cas. Nous avons également analysé les résultats de manière globale vis-à-vis des résultats connus avant le début de ce stage. Nous savions par exemple que, pour la première structure, P b(1, 1, 1, k) est RAP si et seulement si k est pair. Cela nous a permis de déceler d éventuelles erreurs. Etant donné que le programme se base sur des structures préalablement calculées, nous avons dû valider nos différents programmes au fur et à mesure. 3.3 Observations expérimentales Le programme nous a permis de trouver des informations sur les 4-ballons et 5-ballons RAP. Les constatations qui suivent sont à prendre avec précaution puisque notre programme ne travaille que sur un échantillon limité de ballons qui n est pas forcément représentatif de l ensemble des ballons RAP (cf 3.1). 12

3.3.1 Résultats sur les 4-ballons RAP Nous pouvons déjà constater qu il existerait une borne supérieure sur la taille de la branche de taille b 1 d un 4-ballon RAP, à savoir 4. L écart maximum observé entre b 1 et b 2 est de 9, cet écart étant observé pour b 1 = 1. Le maximum atteint par b 2 lorsque b 1 = 2 est de 7 ; donc l écart maximum est de 5. Lorsque le nombre de sommets sur la branche de taille b 1 est supérieur à 2, b 2 atteint au maximum 6. Nous ne pouvons rien déduire sur l écart maximum entre b 2 et b 3 puisque nous arrivons à un écart maximum de 10. Or, b 3 prend ses valeurs entre b 2 et b 2 +10, donc notre programme ne peut, avec les valeurs que nous lui avons données, caractériser cet écart. Par contre, le programme permet d observer l écart maximum entre b 3 et b 4, qui est de 15 mais qui n est pas constant. Cet écart varie suivant la valeur de b 3, mais nous ne pouvons expliciter une relation entre ces deux valeurs. 3.3.2 Résultats sur les 5-ballons RAP Nous pouvons déjà constater que les 5-ballons RAP sont peu nombreux et sont majoritaires lorsque b 1 = 1. Avant le stage, nous savions qu il existe une borne supérieur sur b 1, à savoir 7 [1]. Expérimentalement, nous avons pu observer que cette borne semble correcte, et serait même large puisque nous n avons pas trouvé de 5-ballon RAP vérifiant b 1 > 2. Un unique 5-ballon RAP avec b 1 = 2 a été trouvé, à savoir B(2, 2, 3, 4, 6). Nous pouvons supposer qu il y a une borne supérieure pour b 2, à savoir 2. Pour la branche de taille b 3, il existerait aussi une borne supérieur à 4. L écart maximum observé entre b 1 et b 2 est de 1. Celui entre b 2 et b 3 est de 3, cet écart étant observé pour les seuls 5-ballons de profil B(1, 1, 4, x, y). Entre b 3 et b 4, l écart maximum est de 8. Il est atteint pour le seul 5-ballon : B(1, 1, 2, 10, 10). L écart entre b 4 et b 5 est infini, ce que nous savions déjà [1]. 13

Chapitre 4 Améliorations possibles du programme A titre d information, tous les graphes que notre programme a dû calculer (voir 3.1) ont demandé deux jours de calculs à une machine bi-coeurs de 2,3GHz. Afin de trouver des ballons RAP avec des branches plus longues, il serait nécessaire d utiliser une architecture plus puissante. Rappelons que le fait qu un graphe soit RAP dépendait du fait que des graphes précédemment calculés l étaient également. Il existe donc une sorte de hiérarchie de graphes à calculer par laquelle notre programme passe pour déterminer si un ballon est RAP. En tenant compte de cette hiérarchie, il serait certainement possible de paralléliser notre programme de manière à optimiser le temps de calcul. Pour cela, on pourrait faire en sorte que deux structures de graphes indépendantes dans la hiérarchie soient traitées en parallèle. Nous avons aussi pensé à rendre notre programme dynamique de manière à ce qu il puisse déterminer si un graphe est RAP quelque soit sa structure (et donc pas seulement pour les ballons). Cependant, il est peu probable qu un tel algorithme viable existe dans le cas général. En effet, le nombre de partitions possibles d un ballon est limité du fait de sa structure particulière, ce qui n est pas forcément le cas pour un graphe quelconque. Nous n avons pu essayer de mettre ces idées au point, mais nous avons fait en sorte que n importe qui puisse essayer en nettoyant notre code et en le mettant librement à disposition sur une plate-forme de partage de projets ( https ://sourceforge.net/projects/rapbalchecker/). 14

Conclusions Ce stage m a beaucoup apporté et en particulier une vision différente de la recherche. J ai compris que le fait de créer un programme peut être très important pour la recherche, puisque cela permet de se forger une première opinion sur un résultat que l on souhaite prouver. Il m a aussi permis de me familiariser davantage avec la théorie des graphes et de me sentir plus à l aise avec les définitions mathématiques. J ai également pu me rendre compte de l importance du travail sur papier avant la phase de code : bien analyser le problème au préalable m a souvent permis d éviter des erreurs ou des redondances. Il m a aussi permis de comprendre l importance de maintenir un code avec peu de redondances et facile à lire, notamment lorsqu il est nécessaire de revenir régulièrement sur un code écrit quelque temps auparavant. Lors de la phase de nettoyage, j ai également pu me rendre compte qu il est préférable de maintenir son code propre et lisible plutôt que de se charger de tout nettoyer à la fin. J ai notamment pu me rendre compte de cet aspect lorsque nous avons dû mettre notre code en forme pour le partager en ligne. Enfin, ce projet m a permis de m initier ou de renforcer mes connaissances informatiques. J ai par exemple découvert comment utiliser la fonction C sprintf ou me suis amélioré dans l écriture et la lecture de fichiers. Du point de vue des résultats obtenus, le projet a été mené à bien et dans les temps. Malgré tout, le programme nous a surtout permis de confirmer des hypothèses plutôt que d obtenir de nouveaux résultats. Sur ce point de vue-là, nous nous attendions à mieux. Notamment, nous n avons pu obtenir toutes les informations souhaitées sur les tailles des branches des ballons RAP à cause de la complexité de notre algorithme et du temps de calcul demandé par notre programme. Il est donc dommage que nous n ayons pas eu le temps d aborder la partie parallélisation afin de pouvoir calculer un échantillon de ballons RAP plus important. D autant plus que je pense que cette partie aurait été très intéressante pour moi et m aurait beaucoup appris. 15

Bibliographie [1] O. Baudon, J. Bensmail, F. Foucaud et M. Pilśniak : On the length of the longest path in partitionable balloons. Soumis à publication, disponible sur : http ://hal.archives-ouvertes.fr/hal-00672505. [2] J. Bensmail : Préaffectation de sommets dans les graphes arbitrairement partitionnables. Mémoire de D.E.A., Université Bordeaux 1, 2011. [3] R. Diestel : Graph Theory. Springer, August 2005. [4] F. Gilbert : Graphes arbitrairement décomposables. Mémoire de D.E.A., Université Bordeaux 1, 2007. 16