CATEGORII DOCUMENTE |
Astronomie | Biofizica | Biologie | Botanica | Carti | Chimie | Copii |
Educatie civica | Fabule ghicitori | Fizica | Gramatica | Joc | Literatura romana | Logica |
Matematica | Poezii | Psihologie psihiatrie | Sociologie |
Matrici asociate unui graf. Proprietati ale grafurilor
Matricea conexiunilor directe
Fie un graf cu . Asociem acestui graf o matrice patratica booleana C, , ale carei elemente sunt:
Matricea C poarta numele de matricea arcelor, matricea conexiunilor directe sau matricea de adiacenta pentru graful G.
|
figura 5.1 |
Exemplu Pentru graful din fig. 1 de mai sus scriem matricea conexiunilor directe:
Observatii
Numarul de cifre 1 de pe linia i reprezinta numarul de conexiuni directe ale lui , iar numarul de cifre 1 de pe coloana j reprezinta numarul conexiunilor directe cu
Daca 2 grafuri au aceeasi matrice a conexiunilor directe (si aceeasi multime de varfuri) atunci cele 2 grafuri coincid.
Gradul exterior al varfului si se obtine adunand elementele de pe linia i a matricei C, iar gradul interior al aceluiasi varf se obtine adunand elementele de pe coloana i a matricei C.
Matricea drumurilor
Din matricea conexiunilor directe, prin anumite operatii se poate obtine o matrice numita matricea drumurilor sau matricea conexiunilor totale, in care
Definitie Puterea de atingere a varfului in graful este egala cu numarul de varfuri la care se poate ajunge din , adica egala cu numarul de elemente "1" de pe linia "i" din matricea D.
Pentru elaborarea unui algoritm de determinare a matricii drumurilor introducem o operatie adecvata pe multimea formata din elementele 0 si 1, numita operatie de "adunare booleana" cu regulile urmatoare:
Astfel algoritmul de determinare al matricii drumurilor unui graf pornind de la matricea conexiunilor directe, este:
Pentru construirea liniei "i" din matricea D urmarim elementele egale cu "1" de pe linia "i" din matricea C: daca , ., atunci
Folosind adunarea booleana, se aduna liniile din matricea C la linia "i"; noile valori "1" aparute se trec in linia "i" a matricei D; fie pozitiile ocupate de aceste noi valori in cadrul linie i.
Adunam (boolean) liniile din C la linia "i" trecand noile valori de "1" aparute in linia "i" a matricii D.
Procesul se continua pana la aparitia uneia din situatiile:
a) sau toate elementele devin egale cu "1".
b) nu mai apare nici un element egal cu "1", caz in care locurile ramase libere se completeaza cu zerouri si se trece la linia "i+1", pentru care se repeta procedeul.
Exemplu Pentru graful din fig.5 cu matricea conexiunilor directe C asociata, determinam matricea drumurilor D.
Observatii
Graful G are circuite, caci exista i astfel incat .
Avem puterile de atingere ale varfurilor
Determinarea drumurilor hamiltoniene
Teorema (Y. Chen) Un graf fara circuite, care are "n" varfuri, contine un drum hamiltonian, daca si numai daca avem:
Algoritmul inmultirii latine (A. Kaufmann 1963)
Fie o matrice , care in locul valorilor de "1" utilizate in matricea obisnuita a arcelor, utilizeaza insusi arcul respectiv, reprezentat prin varfurile care il compun, deci , unde
Prin suprimarea primei litere in matricea se obtine o matrice numita "matricea destinatiilor posibile". Se compun matricele si prin operatia de "inmultire latina", definita astfel: inmultirea latina a matricilor se face formal ca si inmultirea a 2 matrici, fara insumare si fara inmultire efectiva tinand cont ca:
- inmultirea latina a doua componente participante la calcul este nul daca cel putin una din ele este nula.
- inmultirea latina a doua componente participante este nul daca au varf comun.
- rezultatul compunerii consta in scrierea in continuare a varfurilor componente ale simbolurilor participante.
Prin repetarea inmultirii latine avem: , , ., si algoritmul continua pana la obtinerea matricii , deoarece intr-un graf cu n varfuri un drum hamiltonian are arce. In matricea citim, conform modului de scriere de mai sus toate drumurile hamiltoniene ale grafului. Daca toate elementele lui sunt zerouri, (), graful nu admite drum hamiltonian.
Exemplu Sa se determine drumurile hamiltoniene pentru graful din figura 5.1.
Solutie: Cum stim, graful are circuite. Vom folosi metoda inmultirii latine. Matricele si sunt:
si
Atunci:
Astfel, in graful dat exista 4 drumuri hamiltoniene,
Algoritmul Bellman-Kalaba
Fie un graf, vom introduce o functie ce asociaza fiecarui arc din o valoare reala. Notam: si graful valuat. In cazurile reale valuarea poate reprezenta:
- distanta dintre 2 puncte (localitati)
- timpi sau costuri intr-o retea de transport etc.
Pentru un drum in graful G vom numi "valoare a drumului", suma valorilor arcelor componente, adica:
Vrem sa determinam drumul "d" de la un varf oarecare la varful , pentru care valoarea lui sa fie minima. Pentru aceasta introducem "matricea extinsa a valorilor arcelor" , data de
si notam cu valoarea minima a drumului d de la la in graful dat, considerat in multimea drumurilor de cel mult k arce, cu valoarea minima a drumului de la la , considerata in multimea tuturor drumurilor (indiferent de numarul de arce componente).
Algoritmul de construire a vectorilor se bazeaza pe urmatoarele propozitii:
Propozitia 1: Pentru orice avem
Propozitia 2: Daca exista pentru care , pentru orice , atunci:
a) , pentru orice
b)
Algoritmul de determinare a drumului minim este:
Etapa 1: Se considera graful valuat Se construieste matricea estinsa a valorilor arcelor
Etapa 2: Se adauga matricii V, liniile suplimentare astfel:
a) linia coincide cu transpusa coloanei n a matricii V,
b) presupunand completata linia , se completeaza linia conform propozitiei 1.
c) se continua aplicarea punctului (b) pana la obtinerea a 2 linii si identice.
Etapa 3: Se determina regresiv drumul minim de la la astfel:
- se aduna linia "i" din V cu linia urmarindu-se rezulta-tul minim ce se poate obtine. Sa presupunem ca: , atunci primul arc din drumul minim de la la este arcul
- se aduna linia "j" din V cu retinand valoare minima, aflata de exemplu pe coloana "t", atunci al doilea arc va fi , s.a.m.d. Ultimul succesor determinat va fi
Algoritmul de determinare a drumului maxim
Etapa 1: Se construieste matricea V a valorilor arcelor
Etapa 2:
Similar cu etapa 2 din algoritmul
anterior, dar la
b) linia se completeaza prin relatia
Etapa 3: Determinarea drumului maxim se determina la fel ca la etapa 3 anterioara.
Vom prezenta doua exemple de determinare a drumului minim, respectiv maxim cu ajutorul algoritmului Bellman-Kalaba.
Exemplu Varfurile reprezinta intreprinderi, iar pe arce este marcata durata executarii controlului in punctul dupa efectuarea lui in punctul in unitatea de timp corespunzatoare. Sa se determine timpul minim de control, dintre si
|
figura 5.2 |
Solutie: Construim matricea V a valorilor arcelor, si folosind algoritmul de determinare a drumului minim vom intocmi tabelul:
|
|
|
|
|
|
|
|
| |||||||
| |||||||
| |||||||
| |||||||
| |||||||
| |||||||
| |||||||
| |||||||
| |||||||
| |||||||
|
Drumul minim de la la va fi cu .
Politica de confidentialitate | Termeni si conditii de utilizare |
Vizualizari: 4471
Importanta:
Termeni si conditii de utilizare | Contact
© SCRIGROUP 2024 . All rights reserved