...e exemplu, daca graful reprezinta harta unui oras in care arcele sunt strazile iar nodurile sunt intersectiile dintre stayi, atunci putem vorbi despre costul deplasarii unui automobil intre doua intersectii, de-a lungul unei strazi. Acesta s-ar putea masura in cantitatea de benzina consumata, calculata prin prisma lungimii strazii in m sau in km.Pentru evidentierea costurilor tuturor arcelor unui graf cu n noduri se poate defini o matrice a, cu n linii n coloane.exista doua forme ale acestei matriciForma a Fiecare element aii,js poate fi -c, daca exista un arc de cost c0 intre nodurile i si j -0, daca ij -, daca nu exista arc intre nodurile i si j.Forma b Este absolut similara, cu singura deosebire ca in loc de avem -.Forma ase foloseste pentru determinarea drumurilor de cost minim intre doua noduri, iar forma b este utilizata in aflarea drumurilor de cost maxim.Daca dorim sa citim matricea costurilor, evident ca nu putem introduce de la tastatura ! In loc de vom da un numir de la tastatura foarte mare.Problema determinarii drumului minim maxim intre doua noduri face obiectul algoritmului urmator. Algoritmul Roy-FloydSe considera un graf orientat cu n noduri, pentru care se da matricea costurilor in forma a. Se cere ca, pentru fiecare pereche de noduri i, j, sa se tipareasca costu drumului minim de la i la j.Plecam de la urmatoarea idee daca drumul minim intre doua noduri oarecare i si j trece printr-un nod k, atunci drumurile de la i la k si de la k la j sunt la randul lor minime. Pentru fiecare pereche de noduri i, j , cu i, j I1,2, ,nS, procedam astfel Dam lui k pe rand valorile 1,2, ,n, pentru ca nodul k despre care vorbeam mai sus poate fi, cel putin teoretic, orice nod al grafului. Pentru fiecare kdaca suma dintre costul drumului de la i la j si costul drumului de la k la j este mai mica decat costul drumului de la i la j Iaii, ksaik, jsaii, jsS, atunci drumul initial de la i la j este inlocuit cu drumul indirect ikj. aceasta inlocuire fireste ca se va opera ca atare in matrocea costurilor Iaii, jsaii, ksaik, jsS.Prezentam in continuare procedura generare care contine algoritmul descrisProcedure generarevar i,j,kintegerbegin for k1 to n do for i1 to n diBDNVXŕXZjnrt8DFHVXi8tzaadjlnaIIIIIIIIIIIIIh6CJmH
sHjhCJmHsHh6CJhCJh6CJmHsHh5CJh5CJmHsHhCJmHsHh5CJmHs
HajhCJUmHnHu8rvxzpp4f.aaFhaaaaFh888aaaaaaaaaaaaat46
fi a2idfh5CJjIh5CJmHsHh6CJmHsHh5CJmHsHhajhCJUmHnHuhCJ
mHsHhCJjhCJB,itbdxz,,-----..4.D.t.v...44rtvIajh0JU!
ajh5CJUmHnHuh6CJmHsHjhCJajhCJUmHnHuaUjh5CJmHsHhCJh5
CJh5CJmHsHhCJmHsH6t8I,--v.x.z........ aaaaaaFaaaa
Fh888aaaaaao for j1 to n do if aii, ksaik, jsaii, js then aii, jsaii, ksaik, jsendDrumurile minime int...
Download