6
Problèmes du chapitre 2 « Étude d’un système réparti »
Les deux premiers problèmes étudient les relations entre nombre de sommets et nombre d’arêtes
dans les graphes. Le troisième problème concerne l’écriture d’algorithmes sous la forme d’actions
gardées.
Problème 2 : Soit G(V,E)un graphe de Nsommets et Marêtes. On note v1,v2, . . . vNles
sommets, et δ(vi)le degré du sommet vi(1≤i≤N).
Question 2.1 :
Montrer que pour avoir un graphe connexe, il faut M > N −2.
Question 2.2 :
Montrer qu’il existe un entier N0tel que :
— pour N < N0, la réciproque est vraie (i.e.,siM > N −2alors le graphe est
connexe) ;
— pour N≥N0, la réciproque est fausse.
Question 2.3 :
Que peut-on dire de Gs’il est connexe et si M=N−1?
Question 2.4 :
Montrer la relation suivante : 2M=�N
i=1 δ(vi)
Problème 3 : On considère un graphe orienté G(V, E)fortement connexe, composé de Nsom-
mets v1,v2, ..., vN. On note dson diamètre, δson plus grand degré sortant, et Γ+i
G(v)l’ensemble
des descendants du sommet vdans Gqui sont à distance ide v. On pose Γ+0
G(v)={v}.
Question 3.1 :
Expliquer comment les ensembles Γ+i
G(v)permettent de partitionner les sommets de V,
avec vfixé, et ivariant.
Question 3.2 :
En déduire une relation entre Net les ensembles Γ+i
G(v).
Question 3.3 :
Quelle relation existe-t-il entre |Γ+i
G(v)|,|Γ+(i+1)
G(v)|et δ?
Question 3.4 :
En déduire une relation entre N,det δ.
Question 3.5 :
On suppose maintenant que Gest un graphe non orienté connexe, de degré δet de dia-
mètre d. En utilisant le même principe, établir une relation similaire entre N,δet d.
Problème 4 : Ce problème étudie l’écriture sous la forme d’actions gardées de l’algorithme sui-
vant :
[email protected] 2012 TD. Merci de signaler les erreurs.
7
Algorithme 1 :Algorithme pour un camp retranché i
1 Arrivée d’un messager demandant des renforts :
2 Renvoyer le messager avec des renforts
3 Arrivée d’un messager accompagné de renforts :
4 Faire rentrer les soldats arrivants au camp
5 Quantité de soldats insuffisante :
6 Envoyer un messager demandant des renforts
7 Plus de barbares que de soldats à la bataille :
8 Faire sortir des soldats du camp et les ajouter à la bataille
9 Moins de barbares que de soldats à la bataille :
10 Faire rentrer les soldats en surnombre au camp
On suppose qu’un centurion :
- dispose au départ de 100 soldats ;
- envoie toujours autant de soldats à la bataille qu’il y a de barbares attaquant le camp (lorsqu’il
n’y a pas assez de soldats, le centurion se rend) ;
- donne des soldats à une garnison voisine s’il lui en reste au moins 30 après (il peut donner une
partie de ce qui est demandé) ;
- demande la quantité nécessaire de soldats à une garnison voisine pour maintenir son effectif à
50, et ce, dès qu’il a moins de 50 soldats.
Les batailles sont locales à un camp. On ne précise pas la garnison voisine sollicitée en cas de de-
mande de renforts. Si des renforts devaient rejoindre la garnison d’un camp qui s’était rendu, alors ils
intègreraient un autre camp.
Question 4.1 :
Rendre le code de l’algorithme 1 plus précis en utilisant une variable Garnipar camp
retranché pour compter le nombre des soldats de chaque camp.
Question 4.2 :
On considère des actions atomiques. Si les gardes suivantes sont vraies simultanément,
quelles sont les instructions associées que le centurion a intérêt à exécuter avant les
autres ?
- quantité de soldats insuffisante
- plus de soldats que de barbares à la bataille
- arrivée de renfort
Question 4.3 :
Modifier les gardes de l’algorithme de telle sorte que le centurion exécute toujours les
instructions prioritaires lorsque ces trois gardes sont vraies simultanément.
Question 4.4 :
Quelles sont les autres gardes qui devraient être modifiées de manière à privilégier cer-
taines actions sur d’autres ?
Question 4.5 :
Quel problème peut poser la garde concernant la condition interne «quantité de soldats
insuffisante» ?
[email protected] 2012 TD. Merci de signaler les erreurs.
8
Question 4.6 :
Modifier l’algorithme obtenu à la question 4.4 afin de résoudre le problème soulevé à
la question précédente, sans supprimer d’actions gardées. On suppose qu’un centurion
n’envoie qu’une demande de renfort à la fois.
Question 4.7 :
Modifier l’algorithme obtenu à la question 4.4 afin d’intégrer les instructions de l’action
gardée «quantité de soldats insuffisante» aux autres actions gardées, de sorte qu’il n’y ait
plus de garde portant sur une condition interne.
Un centurion est autorisé à envoyer une demande de renfort alors qu’il n’a pas encore reçu
le retour d’une demande antérieure mais il ne doit pas demander de renforts excessifs.
On suppose qu’un centurion reçoit ce qu’il demande.
Question 4.8 :
Modifier l’algorithme précédent afin de prendre en compte le fait qu’un centurion peut
recevoir moins de renforts que demandés.
Question 4.9 :
Comment réduire le code suivant en utilisant des min et des max au lieu des si ?
1si (Garni−k)≥30 alors
2 Renvoyer le messager avec krenforts
3Garni←Garni−k
4sinon
5si Garni>30 alors
6 Renvoyer le messager avec Garni−30 renforts
7Garni←30
8sinon
9 Renvoyer le messager avec aucun renfort
10 fin si
11 fin si
[email protected] 2012 TD. Merci de signaler les erreurs.
1 / 3 100%
La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans l'interface ou les textes ? Ou savez-vous comment améliorer l'interface utilisateur de StudyLib ? N'hésitez pas à envoyer vos suggestions. C'est très important pour nous!