j$k307596j$k

Le routeur C ne voit qu`une seule copie de chaque message pour son écouteur. Dans ce cas, l`étape suivante la moins chère est de suivre le bord avec le plus faible poids. Le tableau parent est le tableau de sortie qui est utilisé pour afficher le MST construit. La figure 10 montre une version simplifiée du graphique de diffusion et met en surbrillance les arêtes qui forment une arborescence minimale couvrant le graphique. Ainsi la réponse est, dans l`arbre couvrant tous les noeuds d`un graphe sont inclus et parce qu`il est relié alors il doit y avoir au moins un bord, qui le joindra au reste de l`arbre. Il est important de noter que nous n`avons pas encore formellement ajouté B ou C à l`arbre couvrant. Algorithme 1) créez un ensemble mstSet qui conserve le suivi des sommets déjà inclus dans MST. Sinon, laissez e être le premier bord ajouté lors de la construction de l`arbre T qui n`est pas dans l`arbre T1, et P être l`ensemble de sommets reliés par les arêtes ajoutées avant le bord e. Cependant, les routeurs B et D verront trois copies de chaque message puisque les routeurs B et D sont sur le chemin le moins cher pour les auditeurs 1, 2 et 3. Ainsi, nous pouvons ajouter l`un ou l`autre. Les deux D et E obtiennent de nouvelles valeurs de distance et leurs liens de prédécesseur sont mis à jour. Si tel est le cas, le coût de ce voisin peut être réduit à la nouvelle valeur. Enfin, nous obtenons le graphique suivant.

Par conséquent, dans chaque tour, le sommet qui est connecté à l`arborescence par le bord le moins cher est supprimé de la file d`attente. En supposant que le chemin le moins coûteux est utilisé, nous allons voir combien de fois chaque routeur gérerait le même message. Laissez T1 être un arbre couvrant minimum du graphique G. Nous utilisons un tableau booléen mstSet [] pour représenter l`ensemble des sommets inclus dans MST. Après avoir ajouté le noeud D à l`arbre couvrant, nous avons maintenant deux bords sortant de lui ayant le même coût, i. Dans chaque tour, l`élément minimal de la file d`attente est extrait et les valeurs de distane sont modifiées en conséquence. Le problème est qu`ils veulent transférer efficacement un morceau d`information à n`importe qui et à tous ceux qui peuvent être à l`écoute. En passant au nœud suivant dans la file d`attente prioritaire, nous trouvons C. Dans chaque tour, le noeud devant la file d`attente est extrait. Dans ce cas, la solution la plus simple est une stratégie appelée inondation incontrôlée. En comparant les deux algorithmes, on trouvera que les deux algorithmes utilisent une file d`attente de nœuds non visités avec la valeur de distance correspondante d.

l`algorithme de Prim construit une arborescence minimale couvrant le graphique, qui est une arborescence qui connecte tous les nœuds du graphe et qui a la moins le coût total parmi tous les arbres qui relient tous les nœuds. Si le graphique d`entrée est représenté à l`aide de la liste contiguïté, la complexité temporelle de l`algorithme de Prim peut être réduite à O (E log V) à l`aide du tas binaire. Le vertex 1 est sélectionné et ajouté à mstSet. L`idée est de maintenir deux ensembles de sommets. Après avoir inclus mstSet, mettez à jour les valeurs de clé des sommets adjacents. Ainsi, les deux sous-ensembles disjoints (décrits ci-dessus) des sommets doivent être connectés pour créer un arbre englobant. Le seul nœud C est adjacent à qui est toujours dans la file d`attente prioritaire est F, donc nous pouvons mettre à jour la distance à F et ajuster la position de F dans la file d`attente prioritaire. Chaque voisin est vérifié s`il est dans la file d`attente et son bord de connexion pèse moins que la valeur de distance actuelle pour ce voisin.