• Aucun résultat trouvé

Un algorithme pour la détermination des plus petites distances entre les sommets d'un réseau

N/A
N/A
Protected

Academic year: 2022

Partager "Un algorithme pour la détermination des plus petites distances entre les sommets d'un réseau"

Copied!
8
0
0

Texte intégral

(1)

R EVUE FRANÇAISE D ’ INFORMATIQUE ET DE RECHERCHE OPÉRATIONNELLE

I OAN T OMESCU

Un algorithme pour la détermination des plus petites distances entre les sommets d’un réseau

Revue française d’informatique et de recherche opérationnelle, tome 1, no5 (1967), p. 133-139

<http://www.numdam.org/item?id=M2AN_1967__1_5_133_0>

© AFCET, 1967, tous droits réservés.

L’accès aux archives de la revue « Revue française d’informatique et de recherche opérationnelle » implique l’accord avec les conditions gé- nérales d’utilisation (http://www.numdam.org/conditions). Toute utilisation commerciale ou impression systématique est constitutive d’une infraction pénale. Toute copie ou impression de ce fichier doit contenir la pré- sente mention de copyright.

Article numérisé dans le cadre du programme Numérisation de documents anciens mathématiques

http://www.numdam.org/

(2)

( 1 " année, N» 5, 1967, p. 133-139)

UN ALGORITHME POUR LA DETERMINATION DES PLUS PETITES DISTANCES

ENTRE LES SOMMETS D'UN RÉSEAU

par Ioan TOMESCU (*)

Résumé, — On présente une méthode de calcul matriciel d'une très bonne convergence et qui se prête facilement à Vutilisation sur un calculateur électronique.

Soit donné un graphe fini sans boucle G = (X, F) avec p sommets.

On définit une application l(u) sur l'ensemble U des arcs du graphe avec les valeurs dans l'ensemble { x | x > 0 } et on introduit la matrice carrée A = { aa? } a>(î.lt iP où l'on a : aaa = 0 ; a^ — l(xa, a%) s'il y a un arc qui va de X& à x§ et aap = oo en cas contraire.

Les plus petites distances entre les sommets du réseau, désignées par a«3 sont respectivement :

aaj3 = min { Hl(u) } = min { aaJ5? min (aakl + a^p), ...

^ - ( * « . . . * f t ) uGix fci= l,...,p

min (aaftl + a^^ + ... + a*p_2p) } (1)

Si Ton introduit la multiplication des matrices A = { aaj3 }a,3_i, >p et S = { bat } a(3_i, tP

avec

aaJ8, iaJ3 € { x | a; ^ 0 } U { oo } et a^ = èa a = 0, définie par

{A X B } « ^ = min (bay + cy$) = min { Jaj3) ca/5, min (6

(1) Université de Bucarest

(3)

1 3 4 I. TOMESCU

(cette loi est associative), alors la matrice Ap~l = Ap = ... représente la matrice des plus petites distances entre les sommets du réseau

(voir [2], [4]).

On introduit une relation d'ordre partiel dans l'ensemble des matrices aux éléments dans l'ensemble { # ( # > 0 } U { o o } d e l a façon suivante : A ^ B si aa$ < 6ap pour tout a, p = 1, ..., p. Si A ^ C et B ^ D on déduit que aaY + fcYP ^ c«r + ^Y3 e t donc

min (aay + ty?) < min (cay + dyj8),

y - l , . . .tp y » lf. . . , î )

c'est-à-dire 4 X fi < C X D.

Si aa a =s 0 alors { A }ap = min { aa^, min (aay + av$) } ^ a«# et

l

par conséquent A ^ A2 ^ ... > A^-1 = A^ = ...

On introduit les opérateurs Tia où a Ç { 2, 3, .„, p } définis sur Fen- semble des matrices A = { aap } app_i,...fP a v e c &*$€{$ \ % ï£ 0 } U { o o } et aaa == 0 comme il suit :

Tla(A) = B si

iiœ ^ m m { (Cïia5 m m (&ip -f- öp«) } e t b&v r=z OL^

2

pour tout ({Jt, v) ^ (1, a).

On en déduit que A ^ Ti«(^l) > A2f donc

et par conséquent (Tia(A))v~l = JL^-1.

On introduit l'opérateur Ti = TiPTip~ i... T12.

Par définition Ti(A) = TiP{TiP- i(TiP- 2 ... (TTia(A)) ...) et donc

Proposition. (TÎ(A))P~X = Ap"1 pour tout n £ N, où Tt est l'ité- ration n fois de suite de l'opérateur T\.

La démonstration se fait par induction :

Théorème 1. { TÎ(A) }ia < { An+1 }ia pour tout a = % ..., p et n € JV.

La démonstration se fait par induction par rapport à n- : { TilA) }i2 = min { a\%, min (ai$ + ap2) } = { A }i2.

^3p

(4)

Si nous avons démontré que

{ Ti(A) }l2 < { A* }i2, ..., { Ti{A) }la-l < { A2 }l a_ ! on déduit que

{ Ti(A) }ia = min { aia, min ( { Ti(A) }ip + a^«), min

j8-2(...,a-l j3-a+l,...,j>

(aip + apa) } < min { aia, min (aip + ap*) } = {A }i a 0 2 p

pour 3 ^ a < p parce que { Ti(A) }ip ^ {A2 }ip < aig pour tout p = 2,...,a — 1 .

Il résulte que { Ti{A) }ia ^ { A2 }ia pour a = 2, ..., /?.

Si nous supposons que { T*(A) }i« < { Ak+1 }ia pour tout a = 2, ..., p on obtient :

min

m m { { A } i 2 , m m ( { A

^ 3

parce qu'il y a min ({ Ak+1 }i2, aiz) = { A& + 1 }i2.

Si

{ TÏ+1(A) }1 2 < { Afc+S }i2,..., { Tl+1(A) } ia- i < { alors

{ TÏ+1(A) }l a = min { { TÏ(ii) }l a, min ( { T*i+1(A) }lfl + a,.),

)9-2 a - 1

min ( { T\{A) }ip + apa) } < min

3+l

mm ( { A }l/3 + «J3a) } = { -A }

2

la

pour 3 ^ a ^ p (parce que

{ Ak+1 }l a < au, et { TÏ }

pour tout P = 2, ..., a — 1), donc { TI+1(A) }ia < { Ak+Z }I« pour tout a = 2, ....p. C.Q.F.D.

Si g est le plus petit indice avec A* = A*-1, alors

pour tout a = 2, ..., p, mais

{ T\-\A) }

l8

^ { (rr

donc { T î " \ A ) }l a = { A*"1-}!, (g < p — 1).

(5)

136 I. TOMESCU

Au moment où Tl(A) = rï+1(^4) on obtient

Ti(A) = TT\A) = TT

2

(A) = ... = TT V )

et par conséquent { Tl{A) }l a = { TV*(A) } U - { A*""1 }i«.

Théorème 2. Pour toute matrice carrée A d'ordre p avec

««3 € { a; j a; ^ 0 } U { oo } et aaa = 0 ont lieu les relations :

#-2

Y

}i3 = min ( { T?~ (A) }i3, ^ a « - i + «12 +

l* 1 }i« = { Tl 3{A) }iœ pour tout 4 < a < p.

Démonstration. Pour tout oc = 2, ..., p et yi, ya, ..., y

^ y2 j ..., y r - 1 9^ yr et r < p — 3 on a la relation :

En effet,

< { Tl (il) }lyr

: \ 1 1 \**) }tyr JL ""

<^yra ^ ••• ^ 1 ^ 1 ( ^ ) } l y x i r - 1

Pour tout a = 2, ...3 p et

Y*> Y«> • • • J T Î ' - S ^ I , a ; yi # y ..., y ^ s ^ y*>- 2

et dans le cas a = 2 ;

( Y l » Y2> •••> Ï 2 > - 2 ) 7e

^ (p, p — 1, p — 2, ..., 4, 3), (p — 1, p» p — 2, p — 3 , . . . , 4, 3) et dans le cas a = 3 : (yi, y2, ..., yp- 2) 7^ (2, p, p — 1, ..., 5, 4) il y a 2 < ƒ < p — 2 avec y; < y;+1 • (yp- 1 = a).

(6)

On en déduit que

p-%

î>-3

Compte tenu des relations (1) on obtient { Tf (A) }ia ^ { AP }ia

pour tout a = 4, ..., /? et min ( { Ti~3(A) }i2,

min ( { T\~*{A) }i3, ^ a « - i + «12 + azp) ^ { A

2) < { A

v }i3

Mais { Tl S{A) }ia > { (TÏ 3{A))P * }ia = { Av 1 }ia pour t o u t

a = 2 , . . . , p et ^ ' - ' 'P~1

Av i-4

d'où il résulte les égalités cherchées.

Pour la détermination des chemins de longueur minimale on peut donner un algorithme très simple (dans le cas où le graphe n'a pas des circuits de longueur zéro et par conséquent, tous les chemins minimaux sont élémentaires) :

Si aia T^ 00, alors il existe des chemins de xi à xa. Si a ia = aia alors l'arc (xi9 Ta) est un chemin de longueur minimale entre x\ et xa.

S'il existe un y ^ 1, a qui satisfait à l'équation : a ia = aiy + aya alors un chemin minimal entre xi et xa est (\i-ir, xa) si ^iY = [xi, ..., xr) est un chemin minimal entre xi et xyt

En s'appuyant sur le procédé indiqué on trouve par récurrence tous les chemins élémentaires minimaux entre xi et xa- L'algorithme présenté ci-dessus a été programmé sur le calculateur électronique numérique du Centre de Calcul de l'Université de Bucarest.

(7)

138

e réseau 0 5 2

0 0 0 0

1

o o •

5 0 4 3 3 2 6

i . TOMESCU

décrit 2 4 0 1 6 3 4

0 0

3 1 0 7 5 3

par la

0 0

3 6 7 0 6 5

matrice 1 2 3 5 6 0 1

oo 6 4 3 5 1 0

symi 7 oo oo 1 5 2 3

étri.

0 0

5 oo

1

0 0

1 3

0 0

00 00

5 oo oo 0

Par l'application de l'opérateur Ti la première ligne de la matrice A se transforme comme il suit :

(0, 3, 2, oo, oo, 1, oo, 7, oo) ; (0, 3, 2, 33 co, 1, oo, 7, oo) ; (0, 3, 2, 3, 6, 1, oo, 7, oo) ; (0, 3, 2, 3, 6, 1, 2, 3, oo) ;

(0, 3, 2, oo, oo, 1, oo, 7, oo) ; (0, 3, 2, 3, 6, 1, oo, 7, oo) ; (0, 3, 2, 3, 6, 1, % 7, oo) ; (0, 3, 25 3, 6 , 1 , 2, 3, 2).

Parce qu'il y a TÎ(A) = Ti(A) il résulte que { Tx(A) }i* = { A8 }i« = a i . pour tout oc = 2, 3, ..., 9, donc

ai2 = 3 ; ai3 = 2 ; ai4 = 3 ; au = 6 ; au = 1 ; an = 2 ; aïs = 3 ;

Pour déterminer tous les chemins minimaux entre xi et x* par exemple, il faut trouver d'abord les solutions de l'équation ;

a u = 3 = ai (y ce qui nous donne yi = 3 ; y2 = 9.

L'équation ai3 = «ia -f- as3 n a aucune solution S ^ 1, 3 mais aïs = aiB et nous avons donc obtenu un chemin minimal (a?i, #3, ^4).

Pour Y2 l'équation an = «la + «a» (8 ^£ 1,9) nous donne

£ _ A A A

ôi = o et an = #ie ; aie < ai& + #ee pour tout E 7^ 1, 6,

Le second chemin minimal est donc ($1, #4).

Facultatea de Matematicâ si Mecanicà Strada Academiei, 14

Bucuresti, 22

République Socialiste de Roumanie.

(8)

BIBLIOGRAPHIE

[1] R, BELLMAN, On a routing problem, Quart AppL Math,, 16 (1958).

[2] C. BERGE, Théorie des graphes et ses applications, Dunod, Paris, 1963.

[3] A. KAXJFMANN, Méthodes et modèles de la Recherche opérationnelle, tome 2, Dunod, Paris, 1964,

[4] Gr. C. MOISIL, Asupra unor reprezentâri aie grafurilor ce intervin in problème de economia transporturilor, Comunicârile Acad. R.P.R., nr. 8, X, 1960.

[5] B. R O T , Transitwitê et connexité, C.R. Acad. SeL Paris, tome 249,1959, p. 216-218.

[6] I. TOME s eu, Metodâ pentru determinarea drumului de cea mai mica lungime dintre doua noduri aie unui graf finit, Analele Univ. Bucureçti, nr. 2, 1966.

[7] I. TOMESCU, Sur les méthodes matricielles dans la théorie des réseaux, C.R. Acad.

ScL Paris, tome 263, 1966, p . 826-829.

[8] L. NOLIN, Traitement des données groupées, Publication de l'Institut Biaise- Pascal, Paris, mai 1964.

Références

Documents relatifs

Dans cet article, on propose : (1) un nou- vel algorithme pour le calcul de pose à partir de 3 points, basé sur le calcul des valeurs propres d’une matrice 5 × 5 obtenue par la

Implantarea stimulatorului/defibrilatorului cardiac permanent reprezinta procedura chirurgicala de amplasare a unui dispozitiv ce genereza impulsuri electrice regulate

L’archive ouverte pluridisciplinaire HAL, est destinée au dépôt et à la diffusion de documents scientifiques de niveau recherche, publiés ou non, émanant des

[r]

Nous avons résolu le problème de la recherche du nombre chromatique par l'application d'une méthode heuristique de résolution des programmes mathématiques en nombres entiers.. Il

 Lorsque vous sautez d’un plongeoir ou d’une chaise, vous tomber du fait de votre poids car la pesanteur terrestre vous fait tomber vers le sol. S’il n’y avait aucun

— On donne, dans cet article, un algorithme de détermination d'une couverture de cardinalité minimale d'un ensemble à partir d'une sous famille de parties de celui-ci.. Pour ce

Remarque. — On peut changer à la fois le sens de tous les segments AX/. La direction de leur résultante reste la même. Nous pouvons donc prendre A L / = — //, ce qui, quel que soit