Referat Traversarea grafurilor in adancime
 

www.referat-scoala.ro


Index2000 LinkExchange
Home Top download Medie referate Cauta referat Adauga Cele mai citite
Astronomie (95)
Biologie (676)
Chimie (328)
Diverse (160)
Economie (58)
Engleza (253)
Filozofie (108)
Fizica (389)
Franceza (121)
Geografie (739)
Germana (40)
Informatica (384)
Istorie (918)
Marketing (9)
Matematica (303)
Psihologie (163)
Religie (40)
Romana (1572)

Link exchange

Total referate:
6356


HotNews:

PEDOMETRU LA FURNICI
Guitar Hero va avea continuari
Armored Core 4 - lansat odata cu PS3
SCHIMBARI LA BAC - Hardau vrea sport obligatoriu, ori deloc
ALTERNATIVA LA SOURCEFORGE, Google lanseaza un serviciu pentru gazduirea proiectelor open-source
Un nou RPG, Phantasy Star
Movielink sau DVD-ul care vine de pe Internet
SESIUNEA DE TOAMNA - INCEP INSCRIERILE PENTRU A DOUA SESIUNE A BAC-ULUI

Stiinta si Tehnologie

Linia Fierbinte : ADMITERE FACULTATE 2008::Admitere computerizata liceu 2008::Bacalaureat 2008

Linia Timpului: ADMITERE FACULTATE 2007::Teste Nationale 2007::Admitere computerizata liceu 2007::Bacalaureat 2007
ADMITERE FACULTATE 2006::Teste Nationale 2006::Admitere computerizata liceu 2006::Bacalaureat 2006


Traversarea grafurilor in adancime



Parcurgerea grafurilor in adancime

Foarte multi algoritmi de prelucrare a grafurilor necesita examinarea tuturor nodurilor unui graf.Pentru aceasta este necesara definirea unei strategii de traversare a grafului.Se poate vorbi in principal de doua tehnici de traversare:
in adancime (Depth First)
in latime (Breadth First)
In explicarea modului de functionare a primei variante se foloseste un sir de intregi, VIZITAT, de lungime n cu ajutorul caruia se marcheaza nodurile deja “vizitate” pentru a evita trecerea de mai multe ori prin acelasi nod.Cu alte cuvinte VIZITAT[j] = 1 daca nodul j a fost deja atins si VIZITAT[j] = 0 in caz contrar.Vom spune despre un nod i ca a fost explorat daca are toate nodurile adiacente vizitate.
Procedura recursiva care asigura parcurgerea unui graf in adancime incepand cu un anumit varf i:
Procedura Parcurgere_in_adancime(i)
pentru toate varfurile k adiacente cu varful i executa
daca varful k este neparcurs
atunci se parcurge varful k
apel parcurgere_in_adancime(k)





Iesirea din recursivitate se produce in momentul in care nu se mai gasesc varfuri neparcurse adiacente cu varfurile parcurse deja. Este posibil ca dupa un apel al procedurii incepand cu un anumit varf i sa ramana in graf varfuri neparcurse.In aceasta situatie apelul procedurii se repeta pentru un alt varf initial (dintre varfurile neparcurse) pana la parcurgerea tuturor nodurilor grafului. Programul apelant trebuie sa asigure parcurgerea varfului utilizat in apel.Conditiile interne care apar in problemele particulare de backtracking pot impune o parcurgere integrala sau numai partiala a grafului.Procedura backtracking(i) este pentru cazul parcurgerii integrale a unui graf in adancime:
Procedura Backtracking(i)
pentru toate varfurile k adiacente cu varful i executa
daca varful k este neparcurs si sunt indeplinite conditiile de continuare
atunci se parcurge varful k
se utilizeaza varful k in solutie
daca s-a ajuns la o solutie se afiseaza
apel Backtracking(k)





Folosind aceasta tehnica de traversare ne propunem sa raspundem la intrebarea:
Fiind dat un graf neorientat G=(V,E), este acesta un graf conex?
Conform acestei metode explorarea unui nod este suspendata ori de cate ori un nou varf este vizitat.Pentru graful G daca pornim din varful 1, vizitarea nodurilor se va face in ordinea: 1,2,4,8,5,6,3,7.












Urmatoarea functie returneaza true daca graful este conex si false in caz contrar folosind tehnica parcurgerii in adancime:
Function Conex: boolean;

Procedura adancime(s) {parcurge graful in adancime}
VIZITAT[s]:=1;
pentru fiecare nod w adiacent cu s executa
daca VIZITAT[w] = 0 atunci apel adancime(w)
sfarsit daca;
sfarsit pentru;
sfarsit procedura;

pentru toate nodurile w executa
VIZITAT[w]:=0;
sfarsit pentru;
apel adancime(1);
Conex:=true;
pentru toate nodurile w executa
daca VIZITAT[w] = 0 atunci
conex:=false;
sfarsit daca;
sfarsit pentru;
Sfarsit functie;

Materie: Informatica
Nivel:
Postat de: aurel in 10 Martie 2006
Nota: 0.00 (0 note primite)
Accesari: 302
Download-uri:23
Voteaza acest referat
Daca acest referat te-a ajutat, te rog sa-i acorzi o nota. Multumesc.
 1   2   3   4   5   6   7   8   9   10   


Referat-Scoala.ro     contact@referat-scoala.ro
www.index2000.ro

Referat-scoala.ro StatsXweb.ro - Totul intr-un singur loc!Director web - Roportal