Drumuri în Grafuri

Laborator
7/10 (1 vot)
Conține 1 fișier: doc
Pagini : 4 în total
Cuvinte : 1151
Mărime: 18.45KB (arhivat)
Publicat de: Florian Lupu
Puncte necesare: 0

Extras din laborator

Fie G=(V,M) graf orientat cu n=|V|, m=|M|. Fie A matricea sa de adiacenţă.

Considerăm şirul de matrici:

a cărui semnificaţie este următoarea:

Propoziţia 1. Ak(i,j) = numărul drumurilor de lungime k de la i la j.

- pentru k=1: evident.

- k-1 k : , unde s este penultimul vârf din drumul de la i la j; pentru fiecare s cu A(s,j)=1, la sumă se adaugă numărul drumurilor de lungime k-1 de la i la s, adică numărul drumurilor de lungime k de la i la j având pe s ca penultim vârf.

În continuare dorim să determinăm numai existenţa drumurilor de lungime k. Considerăm şirul de matrici:

unde

a cărui semnificaţie este următoarea (elementele matricilor sunt 0 sau 1):

Propoziţia 2. A(k)(i,j)=1 există drum de lungime k de la i la j.

Demonstraţia se face prin inducţie ca mai sus.

Definim matricea drumurilor D prin:

D(i,j)=1 drum de la i la j.

D=A(1) ... A(n-1), deoarece dacă există un drum de la i la j, există şi un drum de lungime cel mult egală cu n-1 de la i la j.

Construcţiile matricilor de mai sus necesită un timp de ordinul O(n4).

Vom căuta să obţinem un timp de executare mai bun, inclusiv pentru cazul în care lungimea arcelor este oarecare (în cele de mai sus s-a presupus implicit că arcele au lungimea egală cu 1).

În continuare, fiecare arc <i,j> va avea o etichetă et(<i,j>) strict pozitivă, ce reprezintă lungimea arcului.

Considerăm

şi şirul de matrici:

Propoziţia 3. Pn este matricea celor mai scurte drumuri.

Vom demonstra prin inducţie după k următoarea afirmaţie:

Pk(i,j) = lungimea celui mai scurt drum de la i la j în care numerele de ordine ale nodurilor intermediare sunt cel mult egale cu k.

- pentru k=0: evident (nu există vârfuri intermediare).

- k-1 k : Considerăm un drum de lungime minimă de la i la j.

Dacă drumul nu trece prin k, Pk(i,j)=Pk-1(i,j).

Dacă drumul trece prin k, el va trece o singură dată prin k (are lungime minimă) şi în drumurile de lungime minimă de la i la k şi de la k la j vârful k nu apare ca vârf intermediar, deci Pk(i,j)=Pk-1(i,k)+Pk-1(k,j).

Observaţii:

1) s-a folosit metoda programării dinamice;

2) Pk(i,i)=0;

3) Pk(i,k)=Pk-1(i,k) şi Pk(k,j)=Pk-1(k,j), deci la trecerea de la Pk-1 la Pk linia k şi coloana k rămân neschimbate.

Rezultă că putem folosi o singură matrice. Ajungem astfel la algoritmul Floyd-Warshall:

for k=1,n

for i=i,n

for j=1,n

P(i,j) min {P(i,j),P(i,k)+P(k,j)}

Timpul de executare este evident de ordinul O(n3).

Preview document

Drumuri în Grafuri - Pagina 1
Drumuri în Grafuri - Pagina 2
Drumuri în Grafuri - Pagina 3
Drumuri în Grafuri - Pagina 4

Conținut arhivă zip

  • Drumuri in Grafuri.doc

Alții au mai descărcat și

Manual Grafuri

1. Preliminarii 1.1. Algoritmi Toti algoritmii descrisi în cadrul acestei lucrari folosesc structuri de date de tip graf. Unele descrieri sînt...

Limbaje de Programare

Teme laborator Programarea calculatoarelor Tema 1. Realizati o baza de date SQL/Access care sa contina urmatoarele tabele:...

Laboratoare SQL

Obiective • Cunoaşterea capabilităţilor instrucţiunilor SELECT • Executarea unor instrucţiuni SELECT de bază • Cunoaşterea diferenţelor dintre...

Curs HTML

Internetul a fost descris ca „o colectie larga de retele“ sau ca o „retea de retele“. Desi ambele definitii sînt corecte, nici una nu surprinde...

Limbajul HTML

Web-ul este rodul întâlnirii dintre un inventator şi un strateg. Tim Berners-Lee ->este inventatorul ->a conceput Universal Resource Locator...

Aplicație în C Builder

Inainte de a prezenta tot ce afiseaza mediul, vom rula deja un prim program, si anume programul implicit. Pentru aceasta comandam compilarea si...

Introducere în Limbajul Java

Programare Orientată pe Obiecte 1.Introducere în limbajul Java Java ca limbaj şi mediu de programare a fost lansat de firma Sun Microsystems. Cea...

Programarea în C++

Sarcina: Scrieţi un program care determină numărul maximal şi cel minimal din numerele unui fişier dat. Să se determine elementele mai mari ca cel...

Te-ar putea interesa și

Modelarea și Simularea Proceselor Economice

Problema 1: Programare liniară simplă 1) S.C Chips S.R.L comercializează chipsuri de diferite tipuri. Se cunosc timpii necesari de execuție pentru...

Modelarea Deciziei Financiare și de Gestiune

Aplicaţia 1. Programarea liniarǎ (Linear Programming) Societatea Alex Star realizeaza 3 tipuri diferite de compoturi de fructe. Se cunosc timpii...

Modelarea deciziilor economice

Problema 1 Figaro Company realizează lumânări parfumate în 4 variante: aroma de fructe de pădure, aroma de trandafir, aroma de vanilie și aroma de...

Modelarea Deciziei de Finanțare și Gestiune

PROBLEMA 1 – PROBLEMA PRODUCȚIEI SC Motors SRL produce motoare electrice. Compania realizează trei tipuri majore de motoare : - de gabarit 60...

Drumuri de Cost Minim și Maxim

Am ales aceasta tema in scopul de a va arata ca si in informatica exista distante (adica ”drumuri”) atat minime cat si maxime intre elementele unui...

Manual Grafuri

1. Preliminarii 1.1. Algoritmi Toti algoritmii descrisi în cadrul acestei lucrari folosesc structuri de date de tip graf. Unele descrieri sînt...

Structuri de Date și Analiza Algoritmilor

8. Arbori 8.1. Arbori generalizaţi 8.1.1. Definiţii În definirea noţiunii de arbore se porneşte de la noţiunea de vector. Fie V o mulţime având...

Algoritmica grafurilor

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

Ai nevoie de altceva?