a IX-a A27 lecții INFORMATICĂ | 26 lecții T.I.C.
Informatică
Lectia 00001   |   Lectia 00   |   Lectia 01   |   Lectia 02   |   Lectia 03   |   Lectia 04   |   Lectia 05   |   Lectia 06   |   Lectia 07   |   Lectia 08   |   Lectia 09   |   Lectia 10   |   Lectia 101   |   Lectia 102   |   Lectia 103   |   Lectia 11   |   Lectia 11_2   |   Lectia 12   |   Lectia 12_2   |   Lectia 12_3   |   Lectia 12_4   |   Lectia 12_5   |   Lectia 13   |   Lectia 14   |   Lectia 17
Lectia 18   |   Lectia 19
T.I.C.

Lectia 01   |   Lectia 02   |   Lectia 03   |   Lectia 04
Lectia 05   |   Lectia 06   |   Lectia 07   |   Lectia 08   |   Lectia 09
Lectia 10   |   Lectia 11   |   Lectia 12   |   Lectia 13   |   Lectia 14   |   Lectia 15   |   Lectia 16   |   Lectia 17   |   Lectia 18   |   Lectia 19   |   Lectia 19   |   Lectia 20   |   Lectia 23   |   Lectia 24   |   Lectia 26   |   Lectia 27   |   Lectia 28
a IX-a B0 lecții INFORMATICĂ | 0 lecții T.I.C.
a IX-a C0 lecții INFORMATICĂ | 23 lecții T.I.C.
T.I.C.
Lectia 01   |   Lectia 02   |   Lectia 03   |   Lectia 04
Lectia 05   |   Lectia 06   |   Lectia 07   |   Lectia 08
Lectia 10   |   Lectia 12   |   Lectia 13   |   Lectia 14   |   Lectia 15   |   Lectia 16   |   Lectia 17   |   Lecția 18   |   Lectia 19   |   Lectia 20   |   Lectia 21   |   Lectia 22   |   Lectia 23   |   Lectia 24   |   Lectia 25
a IX-a D0 lecții INFORMATICĂ | 0 lecții T.I.C.
a IX-a E0 lecții INFORMATICĂ | 0 lecții T.I.C.
a X-a A6 lecții INFORMATICĂ | 21 lecții T.I.C.
Opțional
Fișa 01   |   Fișa 02   |   Fișa 03   |   Fișa 04   |   Fișa 05   |   Lectia 20
T.I.C.

Lectia 07   |   Lectia 08   |   Lectia 09   |   Lectia 10   |   Lectia 11   |   Lectia 12   |   Lectia 13   |   Lectia 14
Lecția 14_1
Lectia 15
Lectia 16   |   Lectia 17   |   Lectia 19   |   Lectia 20
Lectia 21   |   Lecția 22   |   Lectia 23   |   Lectia 24   |   Lectia 25   |   Lectia 26   |   Lectia 27
a X-a B0 lecții INFORMATICĂ | 0 lecții T.I.C.
a X-a C0 lecții INFORMATICĂ | 0 lecții T.I.C.
a X-a D0 lecții INFORMATICĂ | 0 lecții T.I.C.
a XI-a A30 lecții INFORMATICĂ | 0 lecții T.I.C.
Informatică
Lectia 07   |   Lectia 08   |   Lectia 09   |   Lectia 10   |   Lectia 11   |   Lectia 12   |   Lectia 13   |   Lectia 14
Lectia 16   |   Lectia 18   |   Lectia 19   |   Lectia 20   |   Lectia 21
Lectia 23   |   Lectia 24
Lectia 36
Lectia 40   |   Lectia 41   |   Lectia 42   |   Lectia 43   |   Lectia 44   |   Lectia 45   |   Lectia 46   |   Lectia 46_1
Lectia 47   |   Lectia 48
Lectia 48 --- [ Teorie + 0 Probleme rezolvate ]

ARBORE PARTIAL DE COST MINIM

Se da un graf G=(X, U). Fiecare muchie a sa are atasat un numar real pozitiv reprezentand costul muchiei. Sa se determine un arbore partial de cost minim.

Def: Suma costurilor unui graf se numeste costul grafului

Daca c : U ® Rfunctia costul grafului    atunci suma costurilor muchiilor care compun arborele determina costul arborelui.

Graful se va citi c o succesiune de muchii (doua varfuri) impreuna cu costul fiecarei muchii. Numarul de muchii este m.

Se va ordona sirul muchiilor in ordine crescatoare dupa costul muchiilor.

Se considera un graf format numai din cele n noduri fara nici o muchie

Se vor adauga muchii la acest graf daca muchia respectiva nu va crea un ciclu pana cand graful devine conex (numarul de componente conexe este 1).

Se vor lua muchiile in ordinea crescatoare a costurilor si se va stabili apartenenta celor doua varfuri la o componenta conexa. Astfel avem 3 cazuri:

  1. Daca varfurile nu apartin de nici o componenta conexa atunci se va crea una noua care sa contina cele doua varfuri, costul componentei va fi costul muchiei.
  2. Daca unul din varfuri apartine de o componenta conexa atunci se va introduce si celalalt iar costul componentei va creste cu costul muchiei, sau ambele varfuri apartin de o componenta conexa, atunci nu se va face nimic.
  3. Daca unul din varfuri apartine la o componenta conexa si celalalt la o alta componenta conexa atunci cele doua componente conexe se vor uni si va contine toate varfurile de la cele doua si numarul de componente conexe va scade cu 1 iar costul noi componente este suma costurilor celor doua la care se aduna costul muchiei.

Se vor introduce muchii pana in prima componenta conexa avem n noduri.

Algoritmul de determinare a unui arbore partial de cost minim.

Muchiile au fost ordonate dupa cost [much[I].x, much[I].y, much[I].cost]

Pentru I = 1 la m si NrElemente(CompCon[1] != n)   executa

k=0;

Pentru j = 1 la nc executa

Daca ((much[I].x apartine CompCon[j]) sau (much[I].y apartine CompCon[j]))          atunci        

                k = k+1;           u[k] = j;

 SfDaca

 SfPentru

  Daca (k =0) atunci    nc = nc + 1;   CostArb[nc] = much[I].cost;   

                    &nb sp;                CompCon[nc] = {much[I].x, much[I].y} Ales[I] = 1; // s-a ales muchia i

      Altfel   

             Daca (k=1) atunci (Daca nu apartin amandoua de aceeasi comp coexa)

                    &nb sp;    CompCon[u[1]] = CompCon[u[1]] U {x[I], y[I]}

                 CostArb[u[1]] = CostArb[u[1]] + much[I].cost;    Ales[I] = 1;

                    &nb sp; Altfel

                 CompCon[u[1]] = CompCon[u[1]] U CompCon[u[2]];

                        &n bsp;  CostArb[u[1]] = CostArb[u[1]] + CostArb[u[2]] + much[I].cost;  

                    &nb sp;       Ales[I] = 1;      nc = nc –1;

                     SfDaca

    SfDaca

SfPentru

                        m – numarul de muchii

much – vectorul muchiilor are trei componente { x, y, cost}

x – prima extremitate a muchiei

y -  a doua extremitate a muchiei

cost – costul muchiei

nc – numarul de componente conexe

NrElemente – intoarece numarul de element al unui vector

CompCon[j] – vector ce memoreaza varfurice ce fac parte din componenta conexa j.

u[k] – memoreaza numarul componentei conexe din care fac parte cele doua varfuri

k – ne spune in ce situatie ne aflam (1, 2, sau 3)

CostArb – vector ce reprezinta costul componentelor

Ales[I] – vector ce arata ca muchia I a fost aleasa sa faca parte din arbore


Fii primul care comentează lecţia
     Submit
  |   Lectia 49   |   Lectia 50   |   Lectia 50_1
Lectia 50_2
a XI-a B0 lecții INFORMATICĂ | 0 lecții T.I.C.
a XI-a C0 lecții INFORMATICĂ | 0 lecții T.I.C.
a XI-a D0 lecții INFORMATICĂ | 13 lecții T.I.C.
T.I.C.
Fişa 01   |   Fişa 02   |   Fişa 03   |   Fişa 04   |   Fişa 05   |   Fişa 06
Lectia 01   |   Lectia 02   |   Lectia 03   |   Lectia 04   |   Lectia 05   |   Lectia 06   |   Lectia 07
a XI-a E0 lecții INFORMATICĂ | 1 lecții T.I.C.
T.I.C.
Fişa 01
a XII-a A2 lecții INFORMATICĂ | 0 lecții T.I.C.
Informatică
Lectia 01   |   Lectia 02
a XII-a B0 lecții INFORMATICĂ | 0 lecții T.I.C.
a XII-a C0 lecții INFORMATICĂ | 0 lecții T.I.C.
a XII-a D0 lecții INFORMATICĂ | 0 lecții T.I.C.
a XII-a E0 lecții INFORMATICĂ | 0 lecții T.I.C.
Excelenta A0 lecții INFORMATICĂ | 0 lecții T.I.C.