• Aucun résultat trouvé

Coloriage de sommets

N/A
N/A
Protected

Academic year: 2022

Partager "Coloriage de sommets"

Copied!
71
0
0

Texte intégral

(1)

Coloriage de sommets

(2)

Coloriage de sommets

Colorer un r´ eseaux signifie attribuer une couleur ` a chacun de ses nœuds de mani` ere que deux nœuds voisins soient de couleur diff´ erente.

Une coloration du graphe de Petersen avec 3 couleurs

(3)

Coloriage de sommets

D´ efinition

Soit un r´ eseau G = (V , E ), soit c v la couleur de chaque noeud

v ∈ V tel que : ∀(v , w ) ∈ E : c v 6= c w

(4)

Applications

La coloration de sommet a de nombreuse applications pratiques.

Par exemple dans le domaine de r´ eseaux sans fil o` u la coloration est la base de protocoles tel que MAC TDMA.

En g´ en´ eral, la coloration de sommets est utilis´ e comme

un moyen pour casser des sym´ etries, un des th` emes

principaux dans le calcul distribu´ e.

(5)

Mod`ele

Chaque noeud ` a un identifiant unique

Chaque identifiant peut-ˆ etre cod´ e en log n bits, o` u n est le nombre de noeuds.

Sans perte de g´ en´ eralit´ e, on suppose que les identifiants

sont not´ e de 1 ` a n.

(6)

Nombre chromatique

D´ efinition

Soit un graphe non orient´ e G = (V , E ), le nombre

chromatique x(G ) est le nombre minimum de couleur qu’il

faut pour r´ esoudre le probl` eme de la coloration de sommets.

(7)

Algorithme glouton centralis´e

Algorithm 1: Algorithme glouton while il existe un noeud non-color´ e v do

Colori´ e v avec la couleur minimale qui n’entre pas en

conflit avec ces voisins

(8)

Exemple

A B

C

D E

F

Couleurs : 1 2 3 4

(9)

Exemple

A

A B

C

D E

F

(10)

Exemple

A

A B B

C

D E

F

Couleurs : 1 2 3 4

(11)

Exemple

A

A B B

C C

D E

F

(12)

Exemple

A

A B B

C C

D D E

F

Couleurs : 1 2 3 4

(13)

Exemple

A

A B B

C C

D D E

E

F

(14)

Exemple

A

A B B

C C

D D E

E F

F

Couleurs : 1 2 3 4

(15)

Degr´e d’un noeud

D´ efinition

Le nombre de voisins d’un noeud v , est not´ e par d (v ), et appel´ e degr´ e de v .

3 4

2

3 4

2

(16)

Degr´e du graphe

D´ efinition

Le degr´ e du graphe est le degr´ e maximum de tout les noeuds du graphe, on le note ∆(G ) ou simplement ∆.

3 4

2

3 4

2

Graphe de degr´e 4

(17)

Th´eor`eme

L’algorithme glouton centralis´ e est correct et termine en n

´ etapes. Il utilise ∆ + 1 couleurs.

(18)

Algorithme glouton distribu´e

Initialisation de v :

Etat

v

:= Reveille c

v

:= ∅

∀u ∈ N(v ) : c

u

:= ∅

Proc´ edure ChoixCouleur :

couleur := {1, . . . , ∆}

∀u ∈ N(v ) : couleur := couleur − {c

u

} c

v

:= min{couleur}

∀u ∈ N(v ) : Envoie < Color , c

v

>

R´ eveil spontan´ e :

Initialisation ChoixCouleur

Lors de la r´ eception de < Color , c > envoy´ e par u :

Si Etat

v

6= Reveille faire Initialisation c

u

:= c

ChoixCouleur

(19)

Approche distribu´ee : vision locale

Couleurs : 1 2 3 4

(20)

Approche distribu´ee : vision locale

1 1

Couleurs : 1 2 3 4

(21)

Approche distribu´ee : vision locale

1 2

1 2

Couleurs : 1 2 3 4

(22)

Approche distribu´ee : vision locale

1 2 1

1 2 1

Couleurs : 1 2 3 4

(23)

Approche distribu´ee : vision locale

1 2 1

3

1 2 1

3

Couleurs : 1 2 3 4

(24)

Approche distribu´ee : vision locale

1 2 1

4

1 2 1

4

Couleurs : 1 2 3 4

(25)

Question :

Comment ´ eviter ce probl` eme ?

R´ eponse :

Utiliser les identifiants.

(26)

Question :

Comment ´ eviter ce probl` eme ?

R´ eponse :

Utiliser les identifiants.

(27)

Algorithme glouton distribu´e

Initialisation de v : Etat

v

:= Reveille c

v

:= ∅

∀u ∈ N(v ) : c

u

:= ∅ et Envoie < Color , ∅ > ` a u Proc´ edure ChoixCouleur :

Si ∀u ∈ N(v ) | id(u) > id (v ) ∧ c

u

6= ∅ couleur := {1, . . . , ∆}

∀u ∈ N(v ) : couleur := couleur − {c

u

} c

v

:= min{couleur}

∀u ∈ N(v ) : Envoie < Color , c

v

>

R´ eveil spontan´ e :

Initialisation

ChoixCouleur

(28)

Exemple : Le noeud 1 se r´eveille.

1

6 5

2 4

8 7

3

Couleurs : 1 2 3 4 5

(29)

Coloration d’Arbres

(30)

Arbres

Question :

Combien de couleur faut-il pour colorier un arbre ?

R´ eponse :

Il faut 2 couleurs.

Comment faire ?

(31)

Arbres

Question :

Combien de couleur faut-il pour colorier un arbre ?

R´ eponse :

Il faut 2 couleurs.

Comment faire ?

(32)

Lemme coloration dans un arbre

Lemme 1

Le nombre chromatique d’un arbre est inf´ erieur ou ´ egal ` a 2.

D´ emonstration.

Si la distance du noeud ` a la racine est paire, la couleur est 1, sinon (impair) la couleur est 0. Les noeuds ` a une distance pair on uniquement des voisins ` a une distance impair et vice versa.

Si on suppose que chaque noeud connait son parent (la racine

n’a pas de parent) et ses enfants dans l’arbre, cette preuve

donne l’algorithme suivant.

(33)

Arbres et Arborescence

Remarques :

Cet algorithme fonctionne si une racine est d´ esign´ ee.

Dans le cas contraire il faut d’abord ex´ ecuter un

algorithme d’´ election.

(34)

Algorithme lent de coloration d’arbre

Initialisation de la racine : c r := 0

Envoyer < Couleur , 0 > ` a tous les enfants.

Lors de la r´ eception de < Couleur , c > de parent de v : c v := |c − 1|

Envoyer < Couleur , c v > ` a tous les enfants.

(35)

Exemple

− 1 →

← 0 − − 0 →

− 0 →

(36)

Exemple

− 1 →

← 0 − − 0 →

− 0 →

(37)

Exemple

− 1 →

← 0 − − 0 →

− 0 →

(38)

Exemple

− 1 →

← 0 − − 0 →

− 0 →

(39)

Exemple

− 1 →

← 0 − − 0 →

− 0 →

(40)

Exemple

− 1 →

← 0 − − 0 →

− 0 →

(41)

Exemple

− 1 →

← 0 − − 0 →

− 0 →

(42)

Exemple

− 1 →

← 0 − − 0 →

− 0 →

(43)

Algorithme lent de coloration d’arbre

Complexities

Taille des messages : O (1) bits Nombre de messages :

O(hauteur de l’arbre) bits O(log n)bits.

Temps :

O(hauteur de l’arbre) ´ etapes

O(log n) ´ etapes.

(44)

Coloration rapide d’arbres

(45)

log ´etoile

Definition

∀x ≤ 2 : log x := 1

∀x > 2 : log x := 1 + log (log x )

(46)

log ´etoile

Remarques

log-´ etoile est une fonction qui croie de fa¸con incroyablement lentement.

log-´ etoile du nombre d’atomes observables dans l’univers

(estim´ e ` a 10 80 ) est de 5.

(47)

Algorithme rapide

Mod` ele

Synchrone

(48)

Algorithme 6-couleurs en log n ´etapes

R´ eveil spontan´ e du nœud v : c v := id v (en binaire) Si v est la racine c v := 0

Envoyer < Couleur , c v > ` a tous les enfants.

Lors de la r´ eception de < Couleur , c > de parent de v : Tant que c v > 6

k := min{i : c v [i ] 6= c [i ]}

c v := k(en binaire).c v [k]

Envoyer < Couleur , c v > ` a tous les enfants.

(49)

Comparaison binaire

Indice 9 8 7 6 5 4 3 2 1 0 Grand − parent 0 0 1 0 1 1 0 0 0 0 parent 1 0 1 0 0 1 0 0 0 0 nœud 0 1 1 0 0 1 0 0 0 0

c parent := 5.0 := 101.0 := 1010

Remarque 10 6∈ {0, . . . , 5} on recommence pour parent c nœud := 8.1 := 1000.1 := 10001

Remarque 17 6∈ {0, . . . , 5} on recommence pour nœud

(50)

Comparaison binaire

Indice 9 8 7 6 5 4 3 2 1 0 Grand − parent 0 0 1 0 1 1 0 0 0 0 parent 1 0 1 0 0 1 0 0 0 0 nœud 0 1 1 0 0 1 0 0 0 0

c parent := 5.0 := 101.0 := 1010

Remarque 10 6∈ {0, . . . , 5} on recommence pour parent

c nœud := 8.1 := 1000.1 := 10001

Remarque 17 6∈ {0, . . . , 5} on recommence pour nœud

(51)

Comparaison binaire

Indice 9 8 7 6 5 4 3 2 1 0 Grand − parent 0 0 1 0 1 1 0 0 0 0 parent 1 0 1 0 0 1 0 0 0 0 nœud 0 1 1 0 0 1 0 0 0 0

c parent := 5.0 := 101.0 := 1010

Remarque 10 6∈ {0, . . . , 5} on recommence pour parent c nœud := 8.1 := 1000.1 := 10001

Remarque 17 6∈ {0, . . . , 5} on recommence pour nœud

(52)

Comparaison binaire

Indice 9 8 7 6 5 4 3 2 1 0 Grand − parent 0 0 1 0 1 1 0 0 0 0 parent 1 0 1 0 0 1 0 0 0 0 nœud 0 1 1 0 0 1 0 0 0 0

c parent := 5.0 := 101.0 := 1010

Remarque 10 6∈ {0, . . . , 5} on recommence pour parent c nœud := 8.1 := 1000.1 := 10001

Remarque 17 6∈ {0, . . . , 5} on recommence pour nœud

(53)

Comparaison binaire

Indice 4 3 2 1 0 Grand − parent 1 0 0 1 0 parent 0 1 0 1 0 nœud 1 0 0 0 1

c parent := 3.1 := 11.1 := 111

Remarque 7 6∈ {0, . . . , 5} on recommence pour parent c nœud := 0.1 := 01

Remarque 1 ∈ {0, . . . , 5} le calcul s’arˆ ete pour nœud.

(54)

Comparaison binaire

Indice 4 3 2 1 0 Grand − parent 1 0 0 1 0 parent 0 1 0 1 0 nœud 1 0 0 0 1

c parent := 3.1 := 11.1 := 111

Remarque 7 6∈ {0, . . . , 5} on recommence pour parent

c nœud := 0.1 := 01

Remarque 1 ∈ {0, . . . , 5} le calcul s’arˆ ete pour nœud.

(55)

Comparaison binaire

Indice 4 3 2 1 0 Grand − parent 1 0 0 1 0 parent 0 1 0 1 0 nœud 1 0 0 0 1

c parent := 3.1 := 11.1 := 111

Remarque 7 6∈ {0, . . . , 5} on recommence pour parent c nœud := 0.1 := 01

Remarque 1 ∈ {0, . . . , 5} le calcul s’arˆ ete pour nœud.

(56)

Comparaison binaire

Indice 4 3 2 1 0 Grand − parent 1 0 0 1 0 parent 0 1 0 1 0 nœud 1 0 0 0 1

c parent := 3.1 := 11.1 := 111

Remarque 7 6∈ {0, . . . , 5} on recommence pour parent c nœud := 0.1 := 01

Remarque 1 ∈ {0, . . . , 5} le calcul s’arˆ ete pour nœud.

(57)

Exemple

5

3

6

2 4 11

10

7

9

8

1 12

13

(58)

Exemple

0000

0011

0110

0010 0100 1011

1010

0111

1001

1000

0001 1100

1101

(59)

Exemple

0000

0.1

0.0

1.1

0.1

0.1

0.0

(60)

Exemple

0

1

0

4 2 1

3

1

1

0

1 5 5

(61)

Algorithme 6-to-3 en log n ´etapes

Pour chaque nœud v : Si c v ∈ {3, 4, 5}

c v := choisir la plus petite couleur dans {0, 1, 2} qui n’est

pas utilis´ ee par les voisins.

(62)

Exemple

0

1

0

1 2 1

2

1

1

0

1 1 1

(63)

Coloration rapide d’anneau

(64)

Coloration rapide d’anneau

Mod` ele

Synchrone

les noeuds de l’anneau connaisse n le nombre de nœud

Les nœuds de l’anneau ont une notion commune de droite

et de gauche

(65)

Algorithme 3-couleurs en log n ´etapes

R´ eveil spontan´ e du nœud v c v := id v (en binaire)

Envoyer < Couleur , c v > au voisin de droite.

Lors de la r´ eception de < Couleur , c > du voisin de gauche : Tant que c v > 3

k := min{i : c v [i ] 6= c [i ]}

c v := k(en binaire).c v [k]

Envoyer < Couleur , c > au voisin de droite.

(66)

Exemple

10

1010

12

1100

2

10

9

1001

11

1011

4

100

7

111

13

1101

3

11

6

110

1

1

8

1000

14

1110

5

101

(67)

Exemple

1100 0010 1001

1011 0100 0111 1101

0011

0110

0001

(68)

Exemple

0.0 1.0 1.1 0.1

1.1 0.0 0.1 1.0

1.1

0.0

0.1

0.0 1.1

0.1

(69)

Exemple

2 3 1

3 0 1 2

3

0

1

(70)

Exemple : r´eduction

0 2 0 1

2 0 1 2

1

0

1

0 2

1

(71)

R´ef´erences

Distributed Computing : A Locality-Sensitive Approach.

David Peleg. Society for Industrial and Applied

Mathematics (SIAM), 2000, ISBN 0-89871-464-8

http ://www.dcg.ethz.ch/lectures/podc/

Références

Documents relatifs

En utilisant et adaptant l’algorithme/programme ci-dessus, d´eterminer le nombre de moteurs per- mettant d’obtenir un b´en´efice

` A cet e ff et, on utilise le lemme des sous-sous-suites suivant (qui se d´emontre ais´ement en raisonnant par l’absurde), et qui parfois de bien pr´ecieux services:.. Lemme

De plus, le nouveau graphe possède le même nombre de sommets, une arête et une face en moins.. Pour démontrer la formule d'Euler dans le cas général, on peut raisonner par

TOME s eu, Metodâ pentru determinarea drumului de cea mai mica lungime dintre doua noduri aie unui graf finit, Analele Univ. TOMESCU, Sur les méthodes matricielles dans la théorie

En d´ eduire que les g´ eod´ esiques sont donn´ ees par les lignes int´ egrales des champs de vecteurs invariants ` a gauche.. Montrer que cette m´ etrique

Nous nous proposons de red´emontrer le r´esultat de P.Thie[Th] donnant l’interpr´etation des nombres de Lelong ν([A], x) comme multiplicit´es de l’ensemble analytique A. On

Le th´ eor` eme d’holomorphie sous le signe int´ egrale est aussi utilis´ e pour d´ emontrer que les polynˆ omes orthogonaux, sous de bonnes hypoth` eses, forment une base de

Le but de l’exercice est de d´emontrer le r´esultat de cristallographie ci-dessus pour des cristaux bidimensionnels (le r´esultat se d´emontre de la mˆeme fa¸con pour les