Sunteți pe pagina 1din 16

Capitolul X

ElEMENTE DE TEORIA GRAFURILOR

§

1. Noţiuni generale

Definiţia 1.

Un

graf G este o perecJw de forma G = (X, A),

o nwlfime finită, iar A

este o submulţime a lui X

X

X.

unde X este

Elementele x e

X

se numesc "vîr furi " sau " noduri"

ale

grafului G, iar

perechile (x,

y)

e

A

-

arce ale grafului.

Penlru

un

arc (x,

y)

e

A,

vîrful x se

numeşte extremitate iniţială sau

,.sursă", iar vîrful y, extremitatea finală sau "destinafie".

x 3 ,

Ca un exemplu, vom

x 4 } ,

iar A

=

{(x 1 ,

x 3 ),

cons idera g r afu l G = (X, A),

(x 2 ,

x 1 ),

(x 3 ,

x 2 ),

(x 1 ,

x 4 )

}.

dat

de

X

=

{x 1 ,

x 2 ,

Graful G admite o reprezentare geometrkă în plan, obPnută astfel :

- cele patru vîrfuri se plasează în plan în poziţii distincte oar~care ;

- pentru fiecare a rc (xt, x;) e A, punctele Xt şi Xi se unesc printr-u n segment orientat.

Se obţ ine astfel figura 1.

Dacă arcele tatea finală a

arcului a i+1 • atnnci mulţimea ordonată d = {a 1 , a 2 , •• . , a"}

din

drum în graful G. Dacă extrem itatea finală a arcu lui a~.; tionat anterior coincide cu extremitatea iniţială a arcului

numeşte "ci rcuit " în grafu l G: noţiunea de circuit are o mare importan ţă şi Yom reveni deseori asupra ei.

se

a 1 ,

a 2 ,

•• ,

a ~.; ale

k-

unui graf G au

proprietatea extremi-

a

arcului a1(j = 1,

1) coincide cu extremitatea

iniţilllă

formea ză un

drumul

men-

a 1 , atu nci drumul

}Ienţionăm că drumul mai poate fi d e finit şi ca o mulţime ordonată de

Xt 1 ,} C

vîrfuri, ceea ce este de multe ori avantajos: anume, fi e d = {x, 1 , Xt

C X, pentru care avem proprietatea (V) j = 1, h - 1, (X ti, Xi;+ 1 ) e A .

Echiva lenţa celor două moduri de prezentar e este evidentă. Se sp une de s pr e un drum d "trece" prin arce l e şi prin vîrfur ile care l e conţine. Dacă un

drnm trece de două s au mai multe ori prin ace laş i Yîrf,

neelementar: în cazul contrar, drumul este elementar. Un drum elementar care trece prin toate vîrfurile grafului se numeşte drum hamiltonian. Uneori,

numărul arcelor care compun un drum este numit "lungimea" acelui drum. Arcele de forma (x 1 , x 1 ) e A se numesc " bucle".

numeşte muchie o pereche [xt, XJ] de vîrfur i pentru care

re-

avem proprietatea (x 1 , x 1 ) e

prezentat geometric se prezintă ca nişte segmente neorientate.

el se nume şte drum

2 ,

.•

•,

într-un graf G, se

A

sau (x J.

Xt)

e

A

:

muchiile unui

graf

graf G, se A sau (x J. Xt) e A : muchiile unui graf Fig. 1

Fig.

1

0

SUCcesi une

de vîrfuri lJ = {Xil• Xtz,

••• , X;t}

formează un lanţ în grafulG,

avem

dacă (V) j = l,

k-1,

[x 1 J,

XiJ+ 1 )

e

A.

Lanţul se numeşte ele- două ori prin acelaşi

mentar dacă nu trece de

vîrf.

distincte două cîte două se numeşte ciclu. Numă­

rul de muchii care formează un lanţ se numeşte

lungimea lanţului.

Un

lanţ avînd X t 1 = Xi~o: şi toate

muchiile

102

Un graf G este cone.1: dacă pentru orice două Y lrfuri ale sa le, x şi y, exislă

un lanţ o = {x,

dacă [ :r,

y]

cx 1 ,

, cx 1 ,, y}. Vîrfuril e x, ya le unui graf G se z ic .,adi a cente",

al un c i se sp une virfuri l e .1: şi y s înt inci-

este o muchie în G;

dente

la

mu chia

[.r,

y].

F i e

G =

(X ,

A )

un

graf

şi fie

Y C

X

:

spu n em

 

arcul

(cx 1 ,

o: 2 )

este

inc ident inlerior mulpmii

r,

dacă cxl

y

CXz

E

1'.

Dacă ayem

0(1

E

) ',

o: 2

rţ. Y şi (o: 1 ,

cx 2 )

Vom

nota

e

A, atu nci arcul (o: 1 , cx 2 ) este in cident exterior mulţimii Y.

cu

cu w- (Y) mulpmea arcelor

incidente

interior lui

Y,

iar

w +(n

-

mulţimea arcelor

in c idente

exlerior

lui

Y: mu lţim ea

Y .

= (·)-Cl') U w+(Y) se numeşlc

mulţime de

arce incidente lui

w(l"J

= .

Fie

G =

=

(X, A)

G,

-

un graf: atunci graful G 1 =

şi "subgraf" ,

(X,

B) se numeşte "gTaf partial·'

m a i puţine vî rf u ri

decî t

G,

care unesc vîrfuril e sub-

al lui

iar

dacă B CA

d acă are

st rict

a rcele sale se obţin prin preh!area arcelor lui G

grafului.

Aşadar, G 2 = (Y,

C)

este subgra f a l

lui

G,

dacă Y C X

C

=

( Y

X

Y) n A.

§ 2. Matrici asociate unui graf

 
 

Fie G =

(X, A) un graf aYînd X

=

{x 1 , X 2 ,

,

x

}. i\Iatricea A =

Il UtJ 1

da lă de relaţiile : a H= 1 , pentru (x 1 ,

se

1\Ialricea r/) =

d u

, dată

exi s tă cel puţin un drum de

de

la

matricea dr11murilor

=O pentru (xt, x,) f/= A,

numeşte ma t ricea arcelor (malr icea conexiunilor directe) pentru graful G.

rclapite do= 1 Xt lax, şi d o=

(ma t r ic ea conex iunil or t o lal e ) a g r afu lui G. Să remarcăm că :

x ,)

e

A,

şi Uti

pen lru

cazul

în care

în

G

O în caz co ntrar,

se num eşte

- dacă dou ă grafuri au aceeaş i m alr i ce a arcclor (şi aceeaşi mulţime

de Yirfuri),

at unci cele două grafuri coincid:

 
 

-

graf uri

avî nd

aceeaşi mulţime de vîrfuri şi aceeaş i matrice a

d

rumurilor,

atu nci nu

este ob li gatoriu ca aceste d ouă gra furi

să aibă şi ace -

leaşi a rce.

P .-opozipa 1.

!Hngimea

de

cel

in tr-un graf G avînd ,.n " vîrfu ri, orice dmm elemen tar are

mult

n- 1.

întrueit

într-u n graf cu numai două Yirfur i, o rice drum e leme nlar est e format dintr-un

singu r arc.

Demonstraţie . Afirmaţi a este ev identă pentru

cazu l

n =

2 ,

Presupunem într-un g r a f av -

k

1 arce.

acum un graf G ad nd

D acă

G

=

(X,

.1 ),

k

înd

k vir furi,

orice drum elem e nta r are

:r A-+ 1

-

un Yirf fixat al

m ul!imii

mulţimea

ce l mul t F ie acestu i a .

X "-{:r,.+ 1 } are k Yirfuri. Pentru a obpne din drumurile grafului G 1 ,

corespu nzind

+ 1 virfuri,

şi fie

G 1

atunc i

subgra ful

de drumuri din grafu l G,

o

b

se rvă m

sî nt

pos ibil e tr e i metode :

-

fiind

drumu l d =

dat un drum d

{:r; 1 ,

fxt

xA-+d in .graful

1

=

1

,

.

• •, Xt.~:} in

G,

dacă

g raful

(:r1k>

,

1't 1 -,

G

1

,

se poale

.tl;

xH 1 )

e

obpne

-

drum ul

dacă d 1 =

d =

{xHI•

{xt 1 , •• •, Xt.~:} este

Xt 1 ,

,

x,.tJ

,

drum

x,",

in

grafu l

G 1 ,

G aYe m

., :t ;.t}

X t " + t•

.

. ,

se

(:r H I•

poale

xc 1 )

g rafu l

î n

obpne

e

G 1

A;

se

G,

dacă Sn

••. , Xt",

gra ful

x'v+J•

-

aYînd

drumu l

i.l 1

=

{xt 1 ,

po ate

obţ ine drumul

d =

{x; 1 ,

în

X t k}

:r,. +I•

g raful

ori de cite ori (xt",

trecerea de la drumurile din subgraful G 1 la drumurile din gra ful G presupune adăugarea unu i singur arc, deci drumur il e din g r a ful G Yor aYCa ce l mult k arce.

.1· 1 -+ 1 )

şi (x 1 .+ l•

Xt"+ 1 )

s înl a r ce în G. Se obs ervă aşadar că

103

Fie

notaţii:

G =

(X,

A)

un

graf,

şi

f ie

X ;

e

X;

vom

introduce următo a rele

-

r <l)(Xti

mulpmea de vîrfuri din G la care se poate ajunge din vîrful Xt

fol os ind

drumuri

formaLe

dintr-un

singur

m u l-ţimea de vî rfuri

din

elementar<'

formate

din

arc ;

ca re se

 

-

r < 2 >(:v,)

-

G l a

poale ajunge din Xt

fol os ind

drumuri

două arce;

-

r

<t> (.c ;)

-

m ulţim ea de

vîrfuri din G la

care se

p oa t e

ajunge

din Xt

folosind

drumuri

elementare

formate

din

k

arce.

1n

a ces te

condij ii

e s t e

următoarea afirma-ţie :

valabilă

al

PJ'OJlOZiţia 2. Fi e

G w1 graf ai' lnd " n" virfuri : atunci elementul d ti(i :f j)

matricii (/) a d rum urilor grafului G este ega l cu

1, dacă şi numai dacă

a\'cm relaţia

X J

e

n-1

U

S=

l

r <·•>(:t: t).

p o ate

tran s fo rm a într-un drum elementar prin

în vederea elaborării unor algoritmi de determinare a . matri cii drumu- rilo r, vom in troduce o operaţie adecvată p e mulţimea formală din elemen-

t ele O şi 1 , numit ă ope r a p e de ,.adunare boolea nă " ; acea s tă o peraţ ie es t e

1.

Atunci es t e ev id e nt algoritmul de d et erminar e a m at ricii drumurilor

graf, p lec înd de la malriqea a rcc lor, constă din ap li ca rea urmă toarelor clape:

malricea r?J(i = I:ll> urmanm

î ntii elemcnlele eg a l e c u ,. t· ' p e linia . ,i·· din matricea arcelor: d acă a 1 ,. = 1 ;

unui

Demonstraţie. Afirmapa

este

ev ide nt ă, d eoar e ce

or i ce

drum

s e

s uprim area unor arce.

dată d e

-

re g ulil e urm ătoare : O + O = O,

1. pentru

construirea

linie i

J'

din

O +

1

=

1 +

O =

1,

1 +

1 =

ata = 1 ;

;

a ty

=

1,

atunci

d ta.

=

1

;

c/; 13 =

1

;

.

.

.

; d iy

=

1.

 

-

2. folosind adunarea booleană, se adună liniile ct., ~••• •, y din matricea cll

la linia

noile valori

de

"1 "

apărute se trec

în

li nia

" i "

a matricei ([);

fi e

k,

1,

"i " ; , m

poziţiile oc upal e

de

aceste

n oi val o ri

î n cadrul

liniei;

-

:1.

( b oo lean)

l iniil e k,

1,

.

.

. ,

m

din d

l a lini a , .i· ' , trecînd

procedeul

ad

un

ă

m

noile valori de " 1"

apărute î n linia

" i "

urmr1toarcle situaţii:

a m atricei (/), continu înd

pînă la apariţia uneia din

elrmcnLelc

d u (j

=

l.

n )

d e Yin ega le

c u

1··;

s au toate nu J ocu ril e

sau

mai

apare

nici

răma se li b e re

un

element egal cu

.,1" ,

s e

completează cu

zerouri

caz

in

şi se

care

trece

l a

lini a

i

+

1",

p e ntru

care

se

repetă pro cedeu l.

U na din Lre noţiunile ce vor fi utilizate în continuare fa ce . ob i ect ul defi-

ni ţie i

d e

mai jos:

Definiţia 3. Puterea de atingere p(x;) a vÎrfului .t t e X in graful G = (X,A) este egală cu numărul de vîrfuri la care se p oate ajunge din X t, adicil egalli cu

numărul de elemente de

" 1 "

de pe linia " i" din matricea fl).

~Ialricea (/) = 11 di J il ;, i = G

a

drumurilor gra ful ui

G po a le

ind i ca

pre -

zenţa sa u absenţa circuitelor în g rafu l G: astfel,

atu n ci grafu l G nu arc circuite; dacă există un indicei, i =

d acă d ii =

O,

(V) i = T,ll,

1, n, pentru care

d u=

1 ,

atunci există în graful G un

c ircuit c ar e are ca vîrf

ini ţial şi f i nal

pe

X ;.

104

pentru care d u= 1 , atunci există în graful G un c ircuit c ar

De exemplu, pentru gr.aful G din figura 1, matricea conexiunilor directe

t"ă

este

 

o

1

o

o

 

d ~(~

1

o

 

o

o

Matricea

drumurilor,

obţinută din matricea precedentă, est e

 

1

 

0~(l

1

;)

1

]

 

o

o

o,

intrucit d 11 = 1, in grafu l G din fi gura 1 ex istă circuite. ln ceea ce priveşte puterile de atingere ale Yirfurilor,

= p(x 2 )

=

p(x 3 ) =

4 ; p(x 4 )

=

O.

avem

p(x 1 )

=

Algoritmul de determinare a matricii drumurilor prezentat anterior este destul de lent in ce priveşte aplicarea pe calculator, avînd complexi- tatea O(n 2 ), dar este util in aplicaţiiefectuate manual pe grafuri de dimensiuni reduse.

Se poate observa de asemenea caracterul prea sin tetic al acestui algoritm,

in se n s ul că preze nţa unei va l or i de " 1 " in matricea drumurilor nu inf o r-

maţii asupra vîrfurilor din care se compun d rumu r ile corespunzătoare, bine-

inţeles şi nici asupra numărului de drumuri intre vîrfurile care corespu nd acelor valori de "1".

să răsp und ă aces t o r deziderate, pre -

zentăm a lgoritmul fundamental d atorat lui A. Kaufmann , numit a l " înmu l- ţirii latine". Drept punct de p lecare, acest algoritm foloseşte o matri ce a conexiunilor directe, notată .:::<:: ( 1 >, care, i n lo c ul \ ·a l orilor de " 1 ' ·utilizat e de matricea obişnuită a arcelor, utilizează însuşi arcul respectiv, reprezen tat prin virfurile care il compun: astfel, pentru graful din figura 1, matricea x<IJ este

Ca un exemp lu de algoritm capabil

matricea x<IJ este Ca un exemp lu de algoritm capabil Sensul simbolului "* este acela de

Sensul simbolului "* este acela de "inexisten!ă a arcului".

P rin suprimarea primei litere in matricea .:::<::(ll, se obţine o matrice .:::<::(0>, numitii "a destinaţiilor posibile". Se compun matricile _::e:(ll şi .:::e:w> (in această

0 rdin e ) prin ope r aţia numită " concatenare" sa u ,. înmulţir

e l at in ă", astf e l :

se respectă regulile di n înmulţire a

prec iză ri :

-

da că un a

.,*",

din componen tel e atunci rezu ltatu l es te

si mbo lul

obişn ui Lă a ma tricilor , c u u rm ăto a rele

pa rti c ip a nt e l a calc ul este

.,*";

ocupată de

- î n caz contrar, rezultatu l compunerii consLă în Si ricrea în continuare

a Yîrfurilor

componente

ale

simbolurilor

participante.

105

Kotind

această regulă de compunere

de recurenţă :

prin

x<r+l) = x<r>&x<o>,

"&",

r

~

1,

ŞI introducînd

relaţia

se obsen·ă că matricea x<m> conţine lista tuturor drumurilor formate din "m" arce in graful dat. Pentru exemplul analizat, avem

~((x,,

~c·

in graful dat. Pentru exemplul analizat, avem ~ ((x,, ~c· * * 2 * * (

*

*

2

*

* (xv X;~, x2)

*

:r2, xJ)

*

*

*

*

(x2,

x3,

*

*

*

* *

*

:r2, XI)

(x2,

xl,

3

*

*

*

*

Xl, x3)

*

*

x3, x~)

4:*)

·,

_:x121 = _:xco & _:x<o>=

*

(x2, x,,

*

*

x,) ) : :<:'"~:<:'"& :X"'~

(x3, Xz,

.*

*

Xl,

*

x3)

(:t:3,

*

*

x2, xl,

*

x,) )-

§ 3. Determinarea drumurilor hamiltoniene in grafuri fără circuite

Ca şi pînă acum, vom nota prin p(x) puterea de atingere a virfu lui x al unui graf. Dacă graful G nu are circuite, vom scrie matricea (/) a drumu- rilor grafului, ordonind în prealabil vîrfurile grafu lui in ordinea descrescă­ toare a puterilor de atingere: după cum se va arăt:1, prin acest procedeu toale valorile de " 1" din matrice vor apare deas: -pra diagonalei principale. Pentru a justifica aceasta, să observăm intii cJ, dacă în graful G există un drum de Ia x, la x 1 , atunci p(x 1 ) < p(x 1 ), deoarece orice vîrf atins din x 1 poate fi atins şi din Xt, printr-un drum obţinut in cadrul unei operaţii de concatenare. Aşadar, dacă ar mai fi posibil ca d tJ = 1, cu i > j, atunci p(xr) > p(x 1 ), ceea ce, conform convenţiei privind rearanjarea liniilor şi coloanelor, nu mai este posibil. 1 O astfel ele formă a matricii (/) se numeşte

,.formă t riangularizată superior". Această formă are proprietatea fiecare

element egal cu "1" de pe fiecare linie a matricii drumului corespunde unui drum format dintr-un singur arc. Într-adevăr, să presupunem d,.b = 1,

(a< b) este prima valoare de "1"

de pe linia "a",

şi că există un

drum

de

cel puţin două arce,

d =

(a, h, b), atunci vîrful xA ar verifica relaţia p(xA) >

> p(.1:b), deci, pe de o parte, c sLe sigpr xA va precede pe xb, iar pe de altă

parle, am avea dAb = 1, ceea ce am presupus nu se întîmp lă. Aceste consideraţii simple permit elaborarea unui algoritm de determi- nare a drumurilor hamiltoniene în grafuri fără circuite, după cum urmează :

un

Teorema (Y. Chen).

Un

graf fără circuite, care are "n"

drum

hamillonian,

dacă şi numai dacă avem :

~

i =

p(X t) = n ·(n 2- 1) .

1, n

106

vîrfuri, conţine

Demonstraţie. Fie d = (x 1 , x 2 ,

••• , x,.) drumu l hamiltonian în

G; aturrci :

- dacă·i > j, din x 1 nu se poate atinge vîrful Xt, deoarece în caz contrar

în

G

-

ar

exista

din drful

circuite ;

i

Xt (i = -:-1-,.-n-~1) se pot atinge ;

deci p(."Ct) =

n -

virfurile Xt+t•

X t.L 2 ,

••

•,

x,.,

din vîrful Xn nu se poate atinge nici un vîrf.

în total avem deci :

L: p(~t) = L: (n _ i) = n·(n; 1).

i=l,n

i = l,n

Invers,

presupu n em

:

LJ

p(Xt) =

i= l , Il

n·(n -1) .

'

2

atu n ci în matricea -0 se găsesc n(n- 1)/2 elemente de "1 . 1•riangularizînd

superior această matrice, aceste elemen te vor ocupa toate l ocuri le disp oni- bile de deasupra d iagonalei : în final, drumul hamiltonian însuşi esle claL

de succesiunea Yîrfurilor corespunzătoare matricii triangularizată

superior.

Se observă că într-un graf fără circuite, există ce l mult un drum ham il -

tonian.

d)}' şi d~;>, atunci în cele două drumuri ar exista cel puţin două virfuri Xa,

aşezate în ord i ne inversă, ceea ce ar face Algoritmul fi n al de determ inare a drumului ·

carea următoare lor etape :

În

adevăr, dacă ar exista

două drumuri

ham iltoniene

circuit

distinclr,

.1: 0

şi :rb .

să apară un

înt r e -xa

hamiltonian constă în apli-

1.

se scrie

matricea fZ) =

11

d i 1 11

,.i" pentru care d11 = 1, aLunc i gra ful

a · drumur i lor:

are circuite şi d ec i algoritmul Y. Chen

indice

dacă există un

nu

se

poalc

aplica:

2 .

în

caz

conLrar,

dacă în

malrice

ex islă n(n -

1 ) / 2 valor i

d e

" 1 ",

graful admiLe drum ham il tonian şi se poate trece l a ct.apa următoare; dacă

1)/ 2, grafu l nu arc d rum

ham iltonian ; !l. ordinea virfurilor în cadr ul dru mulu i hamiltonian esle dală de (lr- dinea descrescăloare a· puterilor de atingere.

determi năm drumu l ham i ltonian pen t ru graful din

numărul de valori

de

" 1 "

este

ma i mic decît n(n -

Exemplul

J.:

figura 2. Penlru accsl graf, tonrelc :

matricea a rcelor şi malricca

drumuri lor sint urmă-

r u m u r i l o r s i n t u r m

F i g.

2

d~( l

'0

0 ~(l

o

o

o

o

o

()

1

1

()

1

o

o

()

o

o

o

o

o

o

o

o

1

1

o

1

o

o

o

o

o

o

fJ.

lJ.

107

deci

p(x 1 ) =

1,

p(x 2 ) =

cată condiţia teoremei,

este verifi-

deducem în graful dat există drum hamiltonian.

3,

p(x 3 ) =

4,

p(x 4 ) =

2,

p (:t 5 )

=

O. Cum

Cum

=

(:r 3 ,

avem

p(.1: 3 )

x 2 ,

x 4 ,

x 1 ,

>

p(:c 2 ) >

X;;) .

p(x 4 ) >

p(x 1 )

>

p(x 5 ),

acest

drum

va

fi

du

=

.:\Ienţionăm că p rin cipa lul algoritm (elementar) de determinare a dru-

murilor hamiltoniene în grafuri avînd circuite

preze nţa un ui c l ement dif e rit de ., *" pe dia go nal a uneia dintr e matricile _x <h)

din cadrul acestui algoritm indică atît prezenţa, de exemplu, a unui circuit hamiltonian , cît şi o rdin ea vîrfuril o r. În ceea ce iH·iveşte drumurile hamilto- niene intr-un graf avînd "n·' vîrfuri, ele coresp und elementelor diferite de "*"

di n

rămîne algoritmul Kaufmann :-

matricea _x<n>.

§

4.

Drumuri de valoare optimă într-un graf :

algoritmul Bellman -

Kalaba

F i e care vom

G =

(X, A)

(x 1 ,

nota:

un

x 1 )

gr af ;

vo m

introdu ce o

e

A =

p(x 1,

x 1 ) =

p ;;.

fun cţ ie p: X

--+ n +,

pen t ru

" a rcului (x ;, XJ), iar funcţia p- funcpe

de valuare a graful ui. Un graf înzestrat cu o funcţie de va luare v a fi numit

:.graf valu~l ", ş i va fi notat

N umărul Pii va fi numit

valoarea

cu

G =

(X,

A, p). Pent r u

u n drum

d =

(x ; 1 ,

:t; 2 ,

••• , XtA:)

în

grafu l G,

vom

numi

" valoare a

drumul ui ··,

su m a

valorilor ·

arc elor component e , ad ică :

··, su m a valorilor · arc elor component e , ad ică : Ne propunem

Ne propunem abordarea următoarei probleme : fiind

X fixat, să găsim drumul " d· ' de l a un care va l oarea p (d)

Drept instrument de

dat u n graf valuat

virf

oarecare X; la

şi u n virful

exti n să

astfel :

vîrf

Xn

e

Xn,

a

pentru

va l o ril or

fie foloseşte o matrice,

minim ă .

lucru

" matricea

numită V= 1 1 v 11 11, ale cărei e l emente se determină

se

a r celor",

V ;J =

l

O,

pentru

P tJ. pen~tr~t

co,

daca

z

i = j,

(.1:~,

~

J)

e

=1= J

şt (."C;,

A ,

XJ)

f{=

A.

la Xn

arce : vom

n o ta prin m ; - va l oarea minimă a drumului d e l a X; l a Xn, co n siderată în

mu!J imea t ut uror

în g raful dat,

Fie, de ase menea, m!"> -

valoarea mtmma a

drumului d de la X t

k

considerat în mu lţimea drumuril or de cel mult

drum urilor (indiferent de numărul de arce

componente).

în

determinarea

ma tr i cilor

11 m~" > ll i=G•

li m t lr i=G

ne

bazăm pe

următoarele propoziţii : .

l,ropoziţia l.

Pentru orice k e

m fh l) =

N* avem

mi nim {viJ + m?>}.

i =T.Ii

Demonstraţia propoziţiei este evidentă, deoarece un drum de cel mult

le + 1 arce cu destinaţia Xn se poate ob-ţine dintr-un drum de cel mult k arce

cu dcsl inap a Xn,

m?'+l 1 =

prin adăugarea unui arc la începutul său. Aşadar,

minim {v 0 + minim {p(d.~;)}}= minim {v 11 + m ~t>}.

j = t;li

{dd

j=~

Pro})OZiţia 2. Dac(t există k e N* p entru care mlk' = m lk+l> ,

orice

i

=

G,

atunci :

a) m~kJ = m~•>, (V) i = 0,

b)

mf =

m ;,

(V) i

=

0-

(V)s

~

1.: +

1

;

pentru

Demonslra!ie.

penlru s =

1.:

+

1,

Vom

demonstra

proprietatea esle

proprietatea

a)

prin inducţie după s:

adevărată conform enunţul u i;

-

pres upunînd

proprielalea

adevărată pentru

o

v aloare

s

~

h,

ave m

mf 11 - l>

=

minim {vu +

=

m ~M}

minim {v11 +

mfk'} =

mf+ 1 .

j=~

j=~

P roprietatea b) rezultă în mod evident, de vreme ce

nu

ma i

conduce

la

drumuri

J. se construieşte matricea

V

2.

se

adaugă

matricii

\',

liniil e

=

a

adăngarea de noi

de

zentate d e duc e m algoritmul d e construire

con stă în aplicarea urmă toare lo r etape :

arce

valoare mai mică. Din cele pre-

acesta

Yectorulu i 11 m c l! i= l.fl;

graful

11,

11 ml 2 '

11V tJ li ;, i =T,li pentru

s uplimentar e

11 mf 0

d at;

11.

,

aslfel :

 

a.

linia 11 m ~ 0 11 coincide cu coloana 11 v Jn

II]=T.n ;

b.

presupunînd completată linia

11 m lk)

ll i = f.l1• se completează linia

 

11

m \!:+ l ) 11; = [,11 conform propoziţi e i 1 ;

 

c.

se continuă aplicarea fazei (b) pînă la obţinerea a două

linii

11

m

~k>

11 ,

se

minim ce

3.

11 m lk + l J 11 identice.

adună linia "i "

din V cu lini a 11 m <f+ l> 11, urmărindu-se rezultatul '

se poate obţine : presupunem

rezultatul ' se poate obţine : să presupunem că atunci primul arc din drumul minim de

atunci primul arc din drumul minim de la x 1 la Xn este arcul (x 1 , x 1 ). In con-

tinuare, se adună linia " j" din V c u 11 m <~+l> 11, reţinînd noua valoare minimă,

aflată pe coloana

.,!.:" ; atu nci al doilea

arc

este

(x,, x.~:) etc.

Exemplul

din

ne prop un em să determin ăm lun-

3.

F ie

graful

valuat

figur a 3 :

gimile

drumurilor m ax i me cu desti naţia x 5

Pent ru acest graf avem p 12 =

=

P 34

8 ;

=

P24

=

12 ; P2s

=

2; P32

=

9 ;

3; p 45 =

10. Î n matricea V,

2 ;

p 13

P 3t>

=

=

1

~

din cauza

faptului se urm ăreŞte · deter~inarea

valorilor

(x t. x,)

</::.

drumurilor maxime, vom pune :

w. Se obţine matri-

A

=>

v 0

=

_:

cea următoare, ·la care s-au adăugat şi

din pagina următoare.

liniile si1plimentare

2
2

) 7ig.

3

.109

X 2

Cum

o 2 8 1 - 00 - oo o -00 12 2 - 00 9
o
2
8
1
-
00
-
oo
o
-00
12
2
-
00
9
o
3
1
o
-00
-00
10
-
Y)
o
-
00
-
00
-00
-00
-00
2
1
10
o
1
I l ml 2 '
11
11
22
13
10
o
24
22
31
o
10
-
39
22
31
10
o
3H
22
31
10
o
m\ 4 '
=
m~ 5 >, (V)
i
=
1,
5,
a lgoritmul
ia sfîrşit, linia
li ml 4 '

co n-

maxime

drumul ma xim de

la xt la x 5 are Yaloarea 39. Să determinăm e fectiv arcele care compun acest drum.

vîrfu l x 5

ţinînd deja

Ca

Jungimile

drumurilor

de

la toate vîrfurile grafului,

la

un exemp lu , va l oarea m1 4 ' =

39 arată că

Cum mf 4 > > mi 3 >, deducem acest drum este f o rmat din exact 4 arce:

pe de

altă parte,

mf 4 > =

n:axi_m {ml 3 ' +

1= 1.:>

Vt 1 }

=

maxim {24 +

O; 22 +

2; 3(+

8_; IO~+Ll ;

- oo +O}= 31 +

8,

unde 31 = m~ 3 > şi 8 =

v 13

Aşadar, primul arc al drumului coresp unde lui v 13 , este deci arcul (xt, x

In continuare, se urmăreşte provenienţa lui m~ 3 > pentru a determina .cel de-al doilea arc al drumului: avem

3

).

m~ 3 >= maxim {mi 2 > + v 13 } = maxim {Il -

Î:-::-1,5

oo; 22 +

9; 13 +O; 10+ 3;

O + 1} =

22 + 9,

unde 22 =

m~ 2 >, iar

9 =

v 32 ;

aşadar, al doilea arc

în mod asemănător pînă la dc.terrninarca tuturor ar.celor.

corespunde lui v 32 , fiind deci

arcul (x 3 , X 2 ). Se contiuuă

ln cazul unor grafuri de dimensiuni mari,

această metodă nu este con-

venabilă, deoar ece presupune memorarea tuturor vectorilor Il m~ll 11.11 mi!> Il, Varianta de organizare prezentat[! în cont inuare uiilizează u·umai· vectol·ul

110

11 m~"> Il final şi matricea V, ceea ce poate insemna degrevarea unui volum de memorie în cazul rezolvării problemei pe calculator. La exemp lul prezentat, urmărim dacă este posibil avem

mi 4 >- m~4> = v 1 " pentru {m~4>fm~4) ~

m{4>}.

însemnat

Cum se constată că mt 4 > -

m~

4

>

=

39 -

31 = v 13 , rezultă că primul

arc

este (.1: 1 , x 3 ) , rămînînd acum de urmărit provenienţa celorlalte 31 de unităţi

din care este format drumul rămas. Pentru aceasta, se studiază egalitatea

m~ 4 >= v 3 ,; aYînd m~ 4 drumului poate fi (x~, x 2 ) etc.

al

m~ 4 >-

m~ 4 >= v 32 ,

d e duce

doilea arc

>

-

se

al

§

5.

Flux maxim intr-o reţea de transport

Un graf orientat valuat G =(V, A, p), fără circuite, se numeşte "reţea -

de transport ", dacă îndeplineşte următoarele condiţii:

a. dacă X = (x 1 , x 2 ,

b.

)

proprietatea (Xt,

• ,

x

x 1

arc

atunci

(V) i = l,'n,

avem .(Xt,

Xt)

f/= A

;

x 1 )

f/= A,

(V) i = T,Tl, fiind singurul vîrf

cu aceste proprietăţi; acest vîrf se numeşte "sursa" reţelei;

c.

Yîrful

x,.

are

proprietate

(x,.,

x 1 ) .ţ. A,

(V) i =

1,

n,

fiind

singurul

virf cu această proprietate: vîrful x,. se numeşte "destinaţia" reţelei;

x 1

pentru orice Yîrf care trece prin

d.

la

x",

x 1 e

X "'- {x t , x,.}, există cel

vîrful x 1

puţin un

drum d de

Ia

dacă:

Definijie. O funcţie cp : A

-+

l.

2.

(V) (xi,

penlm

x,)

e

orice

A,

virf

avem

x 1

e

n +se numeşte " flux " pe reţeaua G = (X, A, p),

O ~

cp(Xt,

X"'-{x 1 ,

Xt)

Xn},

-

~

Po ;

avem

cp(x~:, x 1 ) =

~

k=l,n

(Xt , X J) EA

~

11 =

1 , Il

(x j, x.) e

!fl(Xt,

A

xh).

Problema avută în vedere este aşa-numita problemă a "fluxului maxi~', adică situaţia în care, dintre toate fluxurile cp : A -+ R+ posrbde in reţeaua

G =

"

(X, A, p), se urmăreşte să se determine fluxul cp pentru care

se urmăreşte să se determine fluxul cp pentru care 1n vederea determinării fluxului maxim unele concepte.

1n vederea determinării fluxului maxim unele concepte.

"

cp, vom prezenta

în

prealabil

 

Astfel,

un

arc (xt,

x,)

e

A

se numeşte "arc saturat", dacă.

in

raport

cu

fluxul

cp

are

loc

relaţia :

cp(Xt,

x,)

=

Plf·

Fiind dată o submulţime Y C X, se numeşte "tăietură de suport Y"

Y C X, se numeşte "tăietură de suport Y" mulţimea de arce w-(Y) = {(xt, x,)

mulţimea de arce

w-(Y) =

{(xt,

x,)

e

A/X t f/= Y;

x, e

Y}

C

;1.

in mod analog, se consideră şi mulţimea următoare :

 

w+(Y) =

{xt 1 ,

x,)

e

A/xt e

Y;

X J

f/=

Y}

CA.

111

Cantitatea :

c[w-(Y)] =

~

(~·t.X J) E

se numeşte " capacitate a tăieturii" w- (Y).

Po

<·>-(Y)

1n legătt:ira cu aceste nopuni, au loc următoarele afirmaţii :

Propoziţia 1. Fie G = (X,

A,

şi destinaţia x,.; fie <p : .~1 ~ n + un

p)

o refea

de

transport

avînd

sursa .x 1

flux oar e care in reJeaua G: atunci

~

i =

l.n

<p( :l; l,

( x,, ~·, ) E .1 l

Xt )

=

j =

~

l ,n

(l' J , x ,.) E

cp( XJ ,

A

Xn),

Demonstraţie. Cum

avem relaţia evidentă w- (xJ = (v +(x,.) = f/J, deducem că:

 

f

<p(Xt,

.'t;)

-

? (XJ.

X

J E

V

( a·; , X; )

E

<U-

(o· , )

( Xj, l'! .J E

w + (x J )

X 11 )

)

=

~

(x; , a·,.) E

cp(Xt,

w- (.r n)

x,.)

-

ceea ce demonstrează afirmaţia.

Valoarea:

ci> =

~

(x ~, .rn 1 E

cp(x ,,

l.J- (l·t,)

 

'P(x 1 ,

X J)

(x, ,a·, ) E

w- (x 1 )

.1'n )

=

,l:

-:p(x 1 ,

(.:ri,Xj ) '2 w+ (x , )

=

O,

X J)

se

numeşte , .Yaloar e

totală" a

fluxului

cp :

A

->

n

.

Propoziţia. 2. Fi e G = (X, A, p)

o refea de transport,

fie

Y C

X

o

submulţime cu proprielăfile :

 

pentru

- sursa xt

a

lui

G auem

.T 1

fi/=

Y;

- destinaţia x" a

pentru

lui G avem

Xn

e

Y:

 

Atunci,

pentru orice flux

cp : A

->

n+ avem :

 

cj>

=

cp(Xt,

XJ) -

<p(Xt,

XJ)

C[w- (1' )].

 

(.r, , .1:1) E w-(Y)

(.1:t ,XJ ) E

co+(Y )

 

Demonstraţie : avem

 
 

<p (X

;,

.'I: J )

-

<p (Xt,

X J )

=

f

cp (X t ,

X A· )

-

(xr, x; ) E w-(Y)

 

(a·,,o';) E w+( \ ' )

,.,

E Y

(x,, >'t) E w-(xd

 
 

cp(.l: ,,., XJ)) =

 

(

 

:p(.l:t, x,.)-

 

?(Xk, XJ)) -

(x, , XJ ) E

o.+ ; .l't

)

x,. E

l '

(X;, Xt ) E <U-(x.)

(.r, ., x ; ) E

 

f

cp( X;, :rh ) -

cp(.r h, .1' j ) ) =

q;(.T 1 , Xt) = $,

Xh

E V /1 '

(a·.,,tl E w- (x,, )

 

(Xh, x ; ) E