Tolérance aux ruptures sur les canaux de

publicité
Tolérance aux ruptures sur les canaux de
communication d’un ordinateur
(Réparations de réseaux)
I les réseaux
On symbolise un réseau d’ordinateur par un graphe :
Chaque ordinateur est représenté par un point qu’on appelle nœud
Ces nœuds s’envoient des informations par des canaux de communications à
sens unique représentés par des segments fléchés.
Un nœud D joue un rôle particulier
Le graphe est dit D-ciblé si, chaque nœud du graphe peut envoyer des
informations à D
Le nœud D ne fait que recevoir des informations
Exemple de graphe D-ciblé :
On s’intéresse aux graphes possédants les propriétés suivantes :
Graphes connexes : Le graphe est en un seul morceau, pas d’ordinateurs ou de
groupes d’ordinateurs isolés
Graphes ne possédant pas de cycles orientés : l’information provenant d’un
noeud ne peut lui revenir
Graphes ne possédant pas de puits autres que D : Un puits est un nœud qui ne
fait que recevoir des informations (Toutes ses connexions sont orientées vers
lui)
Cycle orienté
Puits
Propriété :
Soit G un graphe connexe et sans cycles orientés, G est D-ciblé si et seulement
si G ne possède pas d’autres puits que D.
Démonstration :
Si G possède un puits autre que D, alors ce nœud ne pourra pas envoyer
d’informations donc D-ciblé implique sans puits.
On considère G sans puits autre que D
Soit N1 un nœud de G : N1 n’est pas un puits donc N111 est connecté à au moins
un nœud N2
N2 n’est pas un puits donc il est connecté à au moins un nœud N3, différent de
N1, G ne possédant pas de cycle orienté (Si N1=N3 alors N1 reçoit des
informations de lui-même).
N3 n’est pas un puits donc il est connecté à au moins un nœud N4, différent de
N2 et de N1, G ne possédant pas de cycle orienté.
De manière générale, le nœud Nn est connecté à au moins un nœud Nn+1 sauf si
Nn est D, différent de Nn-1, de Nn-2, de Nn-3 …
Donc G ne possède pas d’autre puits que D implique G est D-ciblé.
II Le Problème :
On considère un graphe respectant les conditions énoncées
précédemment et on supprime une des connexions.
On considère que le graphe résultant reste connexe.
Exemple :
Le graphe obtenu n’est plus D-ciblé : on observe la création d’un autre puits
que D (P = puits) (Ce n’est pas toujours vrai)
On cherche un algorithme permettant de réparer le graphe obtenu, que l’on
puisse appliquer sans avoir une vision globale du graphe.
Nous avons tenté de démontrer que l’algorithme suivant fonctionne :
Retourner le sens des connexions de chaque puits jusqu’à
résolution du graphe
On ne retourne jamais le sens des connexions de D
III Première approche :
Lors de la cassure, on ne peut créer au maximum qu’un seul puits. En effet on
ne touche aux connexions que de 2 nœuds. Pour créer 2 puits il faudrait qu’un
des 2 nœuds soit déjà un puits.
On ne peut créer un cycle orienté lors de la cassure. En effet, en partant d’un
graphe comportant un cycle orienté qui serait le résultat de la cassure, on ne peut
rajouter une arrête et obtenir un graphe sans cycle orienté qui serait le graphe
avant la cassure.
De plus, on ne peut créer de cycle orienté en appliquant l’algorithme. En effet,
si on crée un cycle le puits que l’on vient de retourner appartient à ce cycle or il
a toutes ses connexions sortantes alors que dans un cycle orienté, chaque nœud
du cycle a au moins une connexion sortante et une connexion rentrante
Les noeuds voisins de D ne deviendront jamais des puits. En effet, la
connexion entre D et eux est toujours orientée vers D.
Le graphe en ligne :
On appelle graphe en ligne le graphe de la forme suivante (il peut être plus
long) :
On rompt l’arrête du dessus et on obtient le graphe suivant avec un puits au
bout :
On applique l’algorithme :
Le graphe est résolu, chaque point peut envoyer des informations à D. On
distingue 2 phases : La distance entre le puits et le nœud connecté à D le plus
proche diminue puis, lorsqu’elle est égale à 1 le nombre de nœuds connectés à D
augmente.
Nous avons rédigé une démonstration sur ce principe mais elle s’est révélée
impossible à généraliser puisque, avec les croisements, les puits ne se
rapprochaient pas forcément de D.
Nous avons donc opté pour une autre approche.
IV Démonstration :
Nous avons observé, dans les graphes en ligne que les points situés loin de D
sont plus souvent des puits que les autres. Nous avons donc conjecturé la
propriété suivante :
Un nœud à distance d de D est un puits au maximum d-1 fois
Nous l’avons démontré par récurrence :
Initialisation :
Soit N un nœud à distance 1 de D (donc voisin de D). On n’applique jamais
l’algorithme sur D donc ce nœud ne sera jamais un puits.
Soit N2 un nœud à distance 2 de D et voisin de N à distance 1. On a 2
possibilités :
Soit l’arrête entre N2 et N est orientée vers N dans ce cas puisque N n’est
jamais un puits, L’arrête N-N2 est toujours orientée vers N et N2 n’est jamais un
puits.
Soit l’arrête N-N2 est orientée vers N2 et donc si N2 devient un puits, cette
arrête sera orientée vers N on revient au cas précédent, N2 ne sera plus jamais un
puits.
Donc le nœud N2 à distance 2 de D est un puits au maximum 1 fois.
Hérédité :
Lemme : Soit N et N’ 2 nœuds voisins.
Entre 2 fois où N est un puits, N’ l’est une fois : N est un puits, on
applique l’algorithme, la connexion N-N’ est dirigée vers N’. Pour
que N redevienne un puits il faut que cette connexion soit dirigée vers
N donc que N’ devienne un puits.
Soit Nd un nœud à distance d de D et Nd+1 un nœud à distance d+1 de D, voisin
de Nd.
On suppose que Nd est un puits d-1 fois au maximum.
On raisonne par l’absurde : Nd+1 est un puits d+1 fois ou plus, ce qui implique
d’après le lemme que Nd est un puits d fois ou plus. C’est impossible donc Nd+1
est un puits au maximum d fois.
La propriété est donc démontrée.
A chaque fois que l’on applique l’algorithme, on retire au moins un au total du
nombre de fois qu’un nœud peut être un puits. Lorsqu’il n’y a plus de puits le
graphe est D-ciblé comme le dit une propriété précédente.
Donc l’algorithme fonctionne
KALOUGINE Anne, TRAN Benoît, LAVENANT Hugo Lycée Blais Pascal Orsay session 2007-2008
Téléchargement