[PDF] Algorithmique et Programmation Projet : Algorithme de Bron





Previous PDF Next PDF



Projet 1: Arbres couvrants minimaux par lalgorithme de Kruskal

Algorithmique et programmation 2008–2009. Projet 1: Arbres couvrants minimaux par l'algorithme de Kruskal. Rappels. Soit G = (S A



1 Modalités de réalisation du projet 2 Impression équilibrée

Conception d'algorithmes et applications (LI325). Projet de programmation. 1 Modalités de réalisation du projet. Le projet se fait en binôme ou seul.



Florent CHABAUD RECHERCHE DE PERFORMANCE DANS L

Merci aussi a toute son equipe du projet CODES de l'INRIA pour leur accueil II.2.4.c Am elioration non prouv ee des algorithmes ind ependants .



Algorithmique et Programmation Projet : Algorithme de Prim 1 File

Algorithmique et Programmation. Projet : Algorithme de Prim. Ecole normale supérieure Département d'informatique td-algo@di.ens.fr.



Département Informatique ENS de Lyon

25 sept. 2018 DI. Plan. ? Présentation du centre de langues ... PROJ1 – Projet Programmation ... Comment concevoir des algorithmes efficaces ?



Syst`emes pair `a pair : modélisation des tables de hachage

Plusieurs algorithmes de localisation des données utilisent le concept de table simulateur pour CHORD avec le langage de programmation préféré disposant ...



Projet informatique : Le chiffrement de Vigen`ere

9 oct. 2018 Le but de ce projet est de programmer ce chiffrement de Vigen`ere ... la confidentialité reposait sur l'utilisation d'algorithmes.



Algorithmique et Programmation Projet : Algorithme de Bron

Projet : Algorithme de Bron-Kerbosch pour Maximum-Clique. Ecole normale supérieure. Département d'informatique. algoL3@di.ens.fr. 2013-2014. 1 Contexte.



Aspects numériques de lalgorithme LLL

Aspects numériques de l'algorithme LLL. Damien Stehlé et Gilles Villard. Proposition de stage L3 informatique de l'ÉNS Paris.



Vous recherchez un stage dans une entreprise à taille humaine

Le développement de procédures offline de tests de nouveaux algorithmes : Votre esprit d'équipe et l'envie de se confronter à des projets innovants dans ...



Licence d’informatique Algorithmique et programmation Cours

Le but de cette partie est de présenter le principe de l’analyse amortie Dans certains cas l’analyse de la complexité d’un algorithme par majora-tionducoûtdanslecaslepiren’estpassigni?cative d’autresmesuressont possibles: – l’analyse en moyenne qui évalue l’espérance mathématique du temps



Programmation Dynamique appliqu ee a l’Algorithmique - ENS

R esum e Dans cette cinqui eme s eance nous continuons l’exploration des algorithmes de type Programmation Dynamique Nous traiterons gr^ace a ce principe un probl eme num erique (mul-tiplications de matrices encha^ n ees) et un probl eme issu de la th eorie des mots (recherche d’une plus longue sous-s equence commune) 1



Cours d'algorithmique et programmation 1

Programme et langage de programmation Un programme est un algorithme écrit dans un langage de programmation Un langage est un ensemble de phrases Exemples de phrases : I en français («Je m’appelle Paul »); I en anglais («The book is on the table! »); I en arithmétique («1 +2 = 3 »); Un langage de programmation est un langage qui



Searches related to algorithmique et programmation projet algorithme de di ens

L’objectif de cette épreuve est la capacité de mettre en œuvre une chaîne complète de résolution d’un problème informatique à savoir la construction d’algorithmes le choix de structures de données leurs implémentations et l’élaboration d’arguments

Algorithmique et Programmation

Projet : Algorithme de Bron-Kerbosch pour Maximum-Clique

Ecole normale superieure

Departement d'informatique

algoL3@di.ens.fr

2013-2014

1 Contexte

On s'interesse au probleme desgardiens de musee. Un musee est schematiquement forme de couloirs,

ou des peintures sont accrochees. Les couloirs doivent ^etre surveilles par des gardiens. Quand un gardien

est positionne au croisement de plusieurs couloirs, il surveille tous les couloirs attenants. Les gardiens

du musee en question, tout comme la direction, ont a cur que la surveillance ait eectivement lieu. La

direction a utilise un algorithme glouton pour assigner les gardiens a des croisements.

Cependant, il semble aux gardiens qu'ils sont legerement en sur-eectif et ils cherchent donc a deter-

miner le nombre minimal de gardiens necessaires a la surveillance du musee.

Formellement, les couloirs du musee sont les ar^etes d'un graphe, et le probleme consiste a placer des

gardiens sur les sommets de ce graphe de telle sorte que chaque ar^ete soit attenante a un gardien (au

moins). On cherche a placer le moins de gardiens possibles. On ne conna^t pas d'algorithme polynomial

pour resoudre ce probleme (qui est en fait leMinimum Vertex Cover). Le probleme est au passage NP- complet.

2 Terminologie

Dans un graphe arbitraire, uneCliqueest un ensemble de sommets qui sont tous relies deux-a-deux.

Tres clairement, dans un graphe, la taille de la plus grande clique du graphe est bien denie. Le probleme

Maximum-cliqueconsiste a trouver une clique de taille maximale dans un graphe. De m^eme, unIndependent Setest un ensemble de sommets qui ne sontpasrelies entre eux (aucune

paire n'est reliee). C'est donc le contraire d'une clique, et il y a une correspondance entre les cliques d'un

graphe et les independent sets du graphe complementaire (ouE=V2E). Enn, unVertex Coverest un ensemble de sommets qui touche toutes les ar^etes du graphe. Il n'est

pas dicile de voir que le complementaire d'un independent set est un vertex cover. Par consequent, un

Minimum Vertex Coverpeut ^etre obtenu a partir d'unMaximum Independent Set, et reciproquement. Une clique peut ^etre contenue dans une autre clique plus grande. Quand ce n'est pas le cas, elle est ditemaximale(attention, une clique maximale n'est pas forcement une clique maximum! Maximale signie qu'elle ne peut pas ^etre agrandie. Maximum signie qu'il n'en existe pas de plus grande). On note (x) les sommets adjacents axdans un graphe donne.Etant donne un sous-ensembleW deV, lesous-graphe induit parWest le graphe forme des sommetsWet des ar^etes deEqui relient des sommets deW.

3 Algorithme de Bron-Kerbosch

L'algorithme de Bron-Kerbosch a ete decrit en 1973 par deux chercheurs hollandais, Joep Kerbosch et Coenraad Bron. Leur algorithme consiste a enumerer toutes les cliques maximales d'un graphe, sachant que les cliques maximum font partie du lot. Il est connu qu'un graphe ansommets possede au maxi- mum 3 n=3cliques maximales, et on conna^t une famille de graphe qui atteint cette borne. Ceci donne donc une borne inferieure en temps deO(1:44n) dans le pire des cas. Version de base.L'idee est que si on a trouve une cliqueK=fk1;:::;kmgdans un grapheG= (V;E), alors il sut de regarderC= (k1)\ \(km). SiC=;, alors la cliqueKest maximale. Pour en

trouver d'autre, il faut donc revenir sur le dernier sommet ajoute aKet explorer les autres possibilites.

Sinon,Kpeut ^etre agrandie en une clique plus grande par l'adjonction d'un sommet deC, qui est 1

l'ensemble des candidats a l'agrandissement. Simplement, une fois qu'on a reussi a trouver une cliqueK,

on peut se contenter de travailler sur le sous-graphe induit parC.

1:functionMaxClique(G;K;C)

2:ifC=;thennoter la clique maximaleK

3:else for eachx2CdoMaxClique(G;K[ fxg;C\(x))

4:end function

L'inconvenient de cette maniere de faire est que la m^eme clique maximale peut ^etre signalee plusieurs

fois. Par exemple, s'il existe une ar^ete 1$2 dans un graphe, alors la cliquef1;2gsera trouvee a partir

deK=f1getK=f2g, de m^eme que toutes les cliques qui contiennentf1;2g. Candidats autorises.On peut emp^echer ceci en disant qu'une fois qu'on a enumere toutes les cliques

qui contiennent le sommetx, alors on pourra s'interdire de considererxdans toute la suite. On maintient

donc trois ensembles : la clique couranteK, un ensemble de candidatsC, et un sous-ensembleAdeC forme des sommets qu'on s'autorise a ajouter aK. On aboutit alors a un algorithme :

1:functionMaxClique(G;K;C;A)

2:ifC=;thennoter la clique maximaleKelse

3:whileA6=;do

4:choosex2A

5:MaxClique(G;K[ fxg;C\(x);A\(x))

6:A A fxg

7:end while

8:end function

Utilisation de pivots.Cette nouvelle version ne signale chaque clique maximale qu'une seule fois, ce

qui est un progres. Cependant, elle eectue un appel recursif par clique, maximale ou non. Pour ameliorer

ca, une idee consiste a choisir un sommetu2C(le \pivot"), et a supposer qu'on a enumere toutes les cliques maximales contenantK[ fug. Alors, nous armons que chaque nouvelle clique contenantK mais pasudoit contenir un nouveau sommet qui n'est pas adjacent au. Justication (par l'absurde) : on etendKen une clique maximaleK[S, ou tous les elements deSsont adjacents au. Alors, comme uest adjacent a tous les elements deK, on trouve queK[S[ fugest une clique plus grosse, ce qui contredit la maximalite de la precedente. Il en decoule immediatement un nouvel algorithme :

1:functionMaxClique(G;K;C;A)

2:ifC=;thennoter la clique maximaleKelse

3:letu2Ctel quejC\(u)jest maximalin

4:whileA(u)6=;do

5:choosex2A(u)

6:MaxClique(G;K[ fxg;C\(x);A\(x))

7:A A fxg

8:end while

9:end function

Tomita, Tanaka et Takahashi ont demontre qu'il est possible d'implementer l'algorithme de telle sorte

qu'il executeO3n=3operations dans le pire des cas (c'est-a-dire un nombreconstantd'operations par

clique trouvee). Un des avantages de l'algorithme de Bron-Kerbosch est que, mis a part dans des cas tres

degeneres, il trouve rapidement de grosses cliques, voire m^eme la plus grosse clique, et passen ensuite

le reste de son temps a verier que c'est bien la meilleure. Seulement, la reponse est deja disponible. Si

une approximation de la taille de la plus grosse clique est susante, on peut faire tourner l'algorithme

quelques minutes et s'en tenir la. On peut aussi noter que l'algorithme permet facilement de trouver une

clique maximum particuliere (comme une clique maximum de poids minimum). Optimisation pour une clique maximum.Si on peut se contenter d'une clique maximum, au lieu de

l'enumeration de toutes les cliques maximales, alors on peut arr^eter la recursion des quejKj+jCj jKmaxj

(ouKmaxdesigne la plus grande clique trouvee a present) car alors on est certain de ne pas trouver de

meilleure clique. Heuristique de coloriage.Uncoloriaged'un graphe est une fonction qui associe une couleur a chaque sommet, de telle sorte que deux sommets adjacents sont toujours de couleur dierente. Lenombre chro-

matiqued'un graphe est le plus petit nombre de couleur necessaire pour colorier le graphe en question. Il

est clair que le nombre de couleurs de n'importe quel coloriagemajorela taille de la plus grande clique

2 d'un graphe. Determiner le nombre chromatique est au moins aussi dur queMaximum-Clique, mais on peut utiliser un algorithme glouton pour trouver un coloriage approximatif. On peut donc, a un moment donne de l'algorithme, tenter de trouver un coloriage du sous-graphe

induit parC, pour voir si par hasard il n'utiliserait pas moins de couleurs quejKmaxj. Le cas echeant,

on a aucune chance de trouver une meilleure clique en explorant les candidats.

4 Travail demande

Vu le caractere exponentiel des calculs a realiser, et la (relative) simplicite de l'algorithme, on accor-

dera une certaine importance a la performance de l'implementation. Cependant, elle doit ^etre correcte

avant tout! Vous pouvez tester plusieurs structures de donnees pour representer les ensembles de som-

mets, et choisir la plus performante. Vous pouvez aussi (c'est optionnel) tester l'heuristique de coloriage.

Vous testerez votre algorithme sur des graphes aleatoires, mais aussi sur les graphes du DIMACS

Challenge for Maximum Clique.

3quotesdbs_dbs22.pdfusesText_28
[PDF] Score ASIA

[PDF] Un algorithme de simulation pour résoudre un problème de probabilité

[PDF] Algorithme PanaMaths

[PDF] Algorithmique en classe de première avec AlgoBox - Xm1 Math

[PDF] Algorithme U prend la valeur [expression de la suite - Maths en ligne

[PDF] Rappels sur les suites - Algorithme - Lycée d Adultes

[PDF] Les tableaux - Luc Brun

[PDF] Les tableaux 1 Exercice 1 - Lipn

[PDF] Terminale S Exercices sur les suites Exercice 1 On consid`ere la

[PDF] Cours d algorithmique BTS SIO première année - Bienvenue sur le

[PDF] Algorithmique et programmation, un levier pour développer des

[PDF] Algorithmique et Structures de Données

[PDF] ORME 212 : Algorithmique en seconde avec Python

[PDF] Ali baba et les quarante voleurs - Gomme Gribouillages

[PDF] Commentaire de l 'article 26 du code de droit international privé