Imaginons que l'on veuille mettre en place un réseau de communication entre les différentes capitales européennes.
Si l'on prend deux villes différentes, on peut évaluer le coût d'installation d'une ligne entre ces deux villes, coût qui sera fonction de la distance les séparant, mais aussi de la nature du terrain, du prix de la main d'oeuvre... Parmi toutes les possibilités, le meilleur réseau sera bien sûr celui pour lequel le coût de mise en place sera le moins élevé.
De la même façon, lors de la phase de conception d'un circuit électrique, on a souvent besoin de relier entre elles les broches de composants électriquement équivalents. Pour interconnecter un ensemble de n broches, on peut utiliser un arrangement de n−1 cables, chacun reliant deux broches. A nouveau, l'arrangement qui utilise une longueur de cable minimale est le plus souhaitable, car le moins cher. On peut modéliser ces deux problèmes à l'aide d'un graphe G = (S,A) non orienté connexe, où S représente l'ensemble des villes (ou des broches), et A, partie de S × S, l'ensemble des connexions possibles entre deux villes ou (broches) différentes.
[...] Nous allons construire un arbre couvrant minimal T qui contient et nous montrerons ainsi que est bien une arˆte sˆre pour E. Il existe une unique chaˆ p dans e u ıne T allant de u ` v car T est un arbre (s'il en existait deux, T contiendrait un cycle). a U h d d x dx x U' x e e e e e h h h V V' h 3 Puisque u et v sont de part et d'autre de la coupure S \ P il y a une arˆte , v ) dans T e qui traverse la coupure. [...]
[...] L'algorithme connu ee e sous le nom d'algorithme de Prim a effectivement invent´ par Prim mais aussi par V. Jarn´ ee e ık ant´rieurement (1930). e De nombreux algorithmes de plus en plus rapides ont trouv´s dont certains mˆme ne s'appuient ee e e pas sur des m´thodes gloutonnes. Karger, Klein et Tarjan ont mˆme r´cemment (1995) donn´ une e e e e algorithme qui s'´x´cute en temps moyen O(A + qui s'appuie sur la r´cursivit´. e e e e Un probl`me apparent´ est la v´rification d'arbre couvrant, l'on a un graphe G = et e e e u un arbre T E et l'on veut savoir si T est un arbre couvrant minimum de G. [...]
[...] La proc´dure Trouver(u,C) renvoie dans quelle composante connexe e ea e a e de C se trouve u. Union(u,v) r´unit les deux composantes connexes qui contiennent u et en e modifiant ainsi C. Algorithme 3. (Kruskal) E for (int i=1 ; S ; = {Si } ; trier les arˆtes de A par ordre croissant de poids ; e for { if(Trouver(u,C) = Trouver(v,C)) { E = E ; Union(u,v) ; } } return ; Les lignes 1 et 2 initialisent E ` l'ensemble vide, et cr´ent S arbres contenant chacun un sommet a e de S. [...]
[...] Bell System Technichal Journal, vol pp. 1389— A > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > L'algorithme de Prim dans Maple with(networks):with(linalg): nombresommets:=proc() local i,j,k,l,m,n,p,nbsommet,r,M,s; for i from 2 to nargs do if args[i][1] > s then s:=args[i][1] end if end do; for j from 2 to nargs do if args[j][2] > r then r:=args[j][2] end if end do; nbsommet:=r; if nbsommet > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > L'algorithme de Kruskal dans Maple #dit dans quelle composante de C se trouve le sommet a. [...]
[...] Dans ce cas, on dit que est une arˆte sˆ re pour T . e u Algorithme 1. (ACM) E while ne forme pas un arbre couvrant) { trouver pour E une arˆte sˆre ; e u E E ; } return E ; Cet algorithme retourne trivialement un arbre couvrant minimal pour la partie d´licate ´tant e e bien sˆr de trouver une arˆte sˆre pour E. u e u Pour pouvoir ´noncer une r`gle permettant de trouver cette arˆte sˆre, nous devons tout d'abord e e e u donner quelques d´finitions. [...]
Source aux normes APA
Pour votre bibliographieLecture en ligne
avec notre liseuse dédiée !Contenu vérifié
par notre comité de lecture