Grafuri. parcurgerea grafurilor. Sortarea topologică

Seminar
8.3/10 (3 voturi)
Domeniu: Automatică
Conține 1 fișier: doc
Pagini : 8 în total
Cuvinte : 1510
Mărime: 355.89KB (arhivat)
Publicat de: Adam Mirea
Puncte necesare: 0
Profesor îndrumător / Prezentat Profesorului: Posea Vlad

Extras din seminar

Scop:

Parcurgerea in latime se foloseste:

- pentru Inteligenta Artificiala (metoda neinformata de cautare... mai multe la cursul de IA);

- intr-o multime de aplicatii din teoria grafurilor (in special legate de drum minim de la un nod dat la un alt nod, componente conexe, grafuri bipartite);

- in jocuri pe calculator, pentru gasirea drumurilor, in special in jocuri Real Time Strategy (un mic exemplu in aplicatie);

Parcurgerea in adancime se foloseste:

- pentru Inteligenta Artificiala (metoda neinformata de cautare... mai multe la cursul de IA), insa combinarea sa cu euristici poate fi mai fructuoasa decat la parcurgerea in latime;

- sortarea topologica si alte aplicatii cu grafuri legate de componente conexe si tare conexe.

1. Intro:

Def.: Graful este o pereche de multimi G=(V,E). Multimea V contine nodurile grafului (vertices), iar multimea E contine muchiile (edges) sale, fiecare muchie stabilind o relatie de vecinatate intre doua noduri.

O parcurgere isi propune sa ia in discutie fiecare nod al grafului exact o singura data, pornind de la un nod ales, numit in continuare nod sursa.

Parcurgerea in latime viziteaza intai toti vecinii unui nod dat si numai dupa ce epuizeaza toti vecinii trece la un alt nod. Parcurgerea in adancime isi propune sa mearga din vecin in vecin al vecinului cat de mult poate, „adancindu-se” astfel in structura grafului.

2. Parcurgerea in latime (Breadth First Search, BFS):

2.1. Teoria

Parcurgerea in latime foloseste o coada (Q) intr-un mod asemanator celui folosit de algoritmul AC-3. Initial in aceasta coada se gaseste doar nodul sursa. Vizitand pe rand vecinii sai ii adaugam si pe ei in coada. La sfarsit, dupa ce nu mai sunt vecini ai sursei nevizitati, scoatem nodul sursa din coada.

Pentru fiecare din nodurile prezente in coada, aplicam procedura de mai sus. Atentie insa: vizitand vecinii unui nod trebuie sa verificam ca acestia nu au mai fost deja vizitati (adica sunt inca albi).

In afara de coada q mai sunt necesare sau utile cateva structuri de date.

a) Putem diferentia intre nodurile nevizitate, cele asezate in coada si cele complet prelucrate printr-un vector denumit culoare:

c[nod] = alb, daca nodul nu a fost vizitat

gri, daca nodul a fost vizitat si asezat in q

negru, daca nodul a fost prelucrat si scos din q

b) Un vector d (distanta) care sa retina distanta (in numar de muchii) fata de sursa se poate dovedi util in unele probleme.

c) Vectorul de parinti p este necesar pentru a reface drumul de la sursa la un alt nod dupa parcurgere.

Preview document

Grafuri. parcurgerea grafurilor. Sortarea topologică - Pagina 1
Grafuri. parcurgerea grafurilor. Sortarea topologică - Pagina 2
Grafuri. parcurgerea grafurilor. Sortarea topologică - Pagina 3
Grafuri. parcurgerea grafurilor. Sortarea topologică - Pagina 4
Grafuri. parcurgerea grafurilor. Sortarea topologică - Pagina 5
Grafuri. parcurgerea grafurilor. Sortarea topologică - Pagina 6
Grafuri. parcurgerea grafurilor. Sortarea topologică - Pagina 7
Grafuri. parcurgerea grafurilor. Sortarea topologică - Pagina 8

Conținut arhivă zip

  • Grafuri. Parcurgerea Grafurilor. Sortarea Topologica.doc

Alții au mai descărcat și

Laboratoare cibernetică

1. Obiective urmarite : Cunoasterea fizica principala si intelegerea functionarii unui sistem de reglare automata. (SRA) 2. Parte experimentala...

Java

Java este o tehnologie inovatoare lansata de compania Sun Microsystems 1n 1995, care a avut un impact remarcabil asupra a1ntregii comunitatsi a...

Circuite Electrice

Circuitele sunt prezente in foarte multe domenii tehnice: in sistemul electroenergetic, in calculatoare, in sistemele de telecomunicatii, in...

Semnale și Sisteme

Laboratorul 2. Semnale si sisteme. 1 Convolutii In teoria semnalelor si a sistemelor convolutiile joaca un rol important deoarece definesc...

Cursuri Java

Cuvinte importante: - concepte fundamentale ale programarii orientate obiect in Java: incapsulare, mostenire, polimorfism; - crearea claselor de...

Subiect examen Ingineria sistemelor de programe

Modele de ciclu de viata al dezvoltarii software 1. Modelul in cascada In modelul waterfall exista 5 etape care se succed si nu se repeta: -...

Baze de Date - SQL

În acest capitol vor fi prezentate pe larg comanda de interogare a datelor SELECT, comenzile de manipulare a datelor INSERT, UPDATE, DELETE, precum...

Te-ar putea interesa și

Ordonontare și Coordonare

A. PROBLEME DE ORDONANŢARE ŞI COORDONARE I. INTRODUCERE Se consideră două tipuri de probleme relative la ordinea în care trebuie efectuate o...

Algoritmica grafurilor

Capitolul 1 INTRODUCERE Pentru noţiunile din acest paragraf am consultat Behzad, Chartrand, Foster, Croitoru, Olaru, Tomescu. Alte completări...

Grafuri

Problema drumului de lungime minimă din orice vârf - Problema se referă la aflarea costului minim din orice vârf către oricare alt vârf,...

Programare dinamică

Metoda programãrii dinamice Problemã generalã Fie A si B douã multimi oarecare. Fiecãrui element x.A urmeazã sã i se asocieze o valoare v(x).B....

Java - Metoda Backtracking, Arbori, Grafuri, Greedy, Divide et Impera, Metoda Programării Dinamice, Algoritmi

Despre algoritmi • Diferenţe între informatică şi matematică 1) În lucrul pe calculator, majoritatea proprietăţilor algebrice nu sunt...

Ai nevoie de altceva?