Documente Academic
Documente Profesional
Documente Cultură
An2 Derivat - Ro Proiectarea-Algoritmilor PA 22
An2 Derivat - Ro Proiectarea-Algoritmilor PA 22
An2 Derivat - Ro Proiectarea-Algoritmilor PA 22
Proiectarea Algoritmilor
Bibliografie
[1] http://monalisa.cacr.caltech.edu/monalisa__Service_Applications_ _Monitoring_VRVS.html [2] http://www.cobblestoneconcepts.com/ucgis2summer2002/guo/guo. html
Kruskal(G,w)
Constr_Arb(v) // creeaz o mulime format din nodul respectiv // (un arbore cu un singur nod)
Sorteaz_asc(E,w) // se sorteaz muchiile n funcie de // costul lor Pentru fiecare ((u,v) E) // muchiile se extrag n ordinea // costului
Arb(u) = Arb(u) Arb(v) // se reunesc mulimile de noduri (arborii) A = A {(u,v)} // se adaug muchia sigur n AMA
ntoarce A
Proiectarea Algoritmilor 2010
Exemplu (I)
I 3 A 9 B 8 5 C 2 6 G 5
2
4
8 K
H E 7 L F
8 D
9
CE -1 EF -2 AG-2 JK-2 AI-3 GH-4 BC-5 IJ-5 AH-6 KL-7 BG-8 CD-8 IL-8 AB-9
Exemplu (II)
I 3 A 9 B 8 5 C 2 6 G 5
2
4
8 K
H E 7 L F
8 D
9
CE -1 EF -2 AG-2 JK-2 AI-3 GH-4 BC-5 IJ-5 AH-6 KL-7 BG-8 CD-8 IL-8 AB-9
I 3 A 9 B 8 5 C 2 6 G 5
2
4
8 K
H E 7 L F
8 D
9
Exemplu (III)
I
3 A 9 B 2 5 J
G
2 6 C
8 5
8
8 K
H E
7 L F
D 9 2
CE -1 EF -2 AG-2 JK-2 AI-3 GH-4 BC-5 IJ-5 AH-6 KL-7 BG-8 CD-8 IL-8 AB-9
I 3 A 9 B 8 5 C 2 6 G 5
2
4
8 K
H E 7 L F
8 D
9
Exemplu (IV)
I
3 A 9 B 2 5 J
G
2 6 C
8 5
8
8 K
H E
7 L F
D 9 2
CE -1 EF -2 AG-2 JK-2 AI-3 GH-4 BC-5 IJ-5 AH-6 KL-7 BG-8 CD-8 IL-8 AB-9
I
3 A 9 B 2 5 J
G
2 6 C
8
5 8
8 K H 7 L F
D 9 2
Exemplu (V)
I
3 A 9 B 2 5 J
G
2 6 C
8 5
8
8 K
H E
7 L F
D 9 2
CE -1 EF -2 AG-2 JK-2 AI-3 GH-4 BC-5 IJ-5 AH-6 KL-7 BG-8 CD-8 IL-8 AB-9
I
3 A 9 B 2 5 J
G
2 6 C
8
5 8
8 K H 7 L F
D 9 2
Exemplu (VI)
I
3 A 9 B 2 5 J
G
2 6 C
8 5
8
8 K
H E
7 L F
D 9 2
CE -1 EF -2 AG-2 JK-2 AI-3 GH-4 BC-5 IJ-5 AH-6 KL-7 BG-8 CD-8 IL-8 AB-9
I
3 A 9 B 2 5 J
G
2 6 C
8
5 8
8 K H 7 L F
D 9 2
Exemplu (VII)
I
3 A 9 B 2 5 J
G
2 6 C
8 5
8
8 K
H E
7 L F
D 9 2
CE -1 EF -2 AG-2 JK-2 AI-3 GH-4 BC-5 IJ-5 AH-6 KL-7 BG-8 CD-8 IL-8 AB-9
I
3 A 9 B 2 5 J
G
2 6 C
8
5 8
8 K H 7 L F
D 9 2
Exemplu (VIII)
I
3 A 9 B 2 5 J
G
2 6 C
8 5
8
8 K
H E
7 L F
D 9 2
CE -1 EF -2 AG-2 JK-2 AI-3 GH-4 BC-5 IJ-5 AH-6 KL-7 BG-8 CD-8 IL-8 AB-9
I
3 A 9 B 2 5 J
G
2 6 C
8
5 8
8 K H 7 L F
D 9 2
Exemplu (IX)
I
3 A 9 B 2 5 J
G
2 6 C
8 5
8
8 K
H E
7 L F
D 9 2
CE -1 EF -2 AG-2 JK-2 AI-3 GH-4 BC-5 IJ-5 AH-6 KL-7 BG-8 CD-8 IL-8 AB-9
I
3 A 9 B 2 5 J
G
2 6 C
8
5 8
8 K H 7 L F
D 9 2
Exemplu (X)
I
3 A 9 B 2 5 J
G
2 6 C
8 5
8
8 K
H E
7 L F
D 9 2
CE -1 EF -2 AG-2 JK-2 AI-3 GH-4 BC-5 IJ-5 AH-6 KL-7 BG-8 CD-8 IL-8 AB-9
I
3 A 9 B 2 5 J
G
2 6 C
8
5 8
8 K H 7 L F
D 9 2
Exemplu (XI)
I
3 A 9 B 2 5 J
G
2 6 C
8 5
8
8 K
H E
7 L F
D 9 2
CE -1 EF -2 AG-2 JK-2 AI-3 GH-4 BC-5 IJ-5 AH-6 KL-7 BG-8 CD-8 IL-8 AB-9
I
3 A 9 B 2 5 J
G
2 6 C
8
5 8
8 K H 7 L F
D 9 2
Exemplu (XII)
I
3 A 9 B 2 5 J
G
2 6 C
8 5
8
8 K
H E
7 L F
D 9 2
CE -1 EF -2 AG-2 JK-2 AI-3 GH-4 BC-5 IJ-5 AH-6 KL-7 BG-8 CD-8 IL-8 AB-9
I
3 A 9 B 2 5 J
G
2 6 C
8
5 8
8 K H 7 L F
D 9 2
Exemplu (XIII)
I
3 A 9 B 2 5 J
G
2 6 C
8 5
8
8 K
H E
7 L F
D 9 2
CE -1 EF -2 AG-2 JK-2 AI-3 GH-4 BC-5 IJ-5 AH-6 KL-7 BG-8 CD-8 IL-8 AB-9
I
3 A 9 B 2 5 J
G
2 6 C
8
5 8
8 K H 7 L F
D 9 2
Exemplu (XIV)
I
3 A 9 B 2 5 J
G
2 6 C
8 5
8
8 K
H E
7 L F
D 9 2
CE -1 EF -2 AG-2 JK-2 AI-3 GH-4 BC-5 IJ-5 AH-6 KL-7 BG-8 CD-8 IL-8 AB-9
I
3 A 9 B 2 5 J
G
2 6 C
8
5 8
8 K H 7 L F
D 9 2
Exemplu (XV)
I
3 A 9 B 2 5 J
G
2 6 C
8 5
8
8 K
H E
7 L F
D 9 2
CE -1 EF -2 AG-2 JK-2 AI-3 GH-4 BC-5 IJ-5 AH-6 KL-7 BG-8 CD-8 IL-8 AB-9
I
3 A 9 B 2 5 J
G
2 6 C
8
5 8
8 K H 7 L F
D 9 2
G
2 6 C
8 5
8
2
4
8
K H E 7 L F
H E
8
L F 2 D
D 9
Corectitudine (I)
Corectitudine (II)
2. artm c muchiile pe care le adugm aparin Arb: Dem prin inducie dup muchiile adugate n AMA:
P1: Avem nodurile u i v, cu muchia (u,v) avnd proprietatea w(u,v) = min {w(u,v) | (u,v) E} din Propr. 2 (u,v) Arb.
PnPn+1:
Arb(u) != Arb(v) (u,v) muchie cu un capt in Arb(u) (u,v) are cel mai mic cost din muchiile cu un capt n u (din faptul c muchiile sunt sortate cresctor) din Propr. 2 (u,v) Arb
Complexitate Kruskal
Kruskal(G,w)
Complexitate?
Constr_Arb(v) // creeaz o mulime format din nodul respectiv // (un arbore cu un singur nod)
Sorteaz_asc(E,w) // se sorteaz muchiile n funcie de // costul lor Pentru fiecare ((u,v) E) // muchiile se extrag n ordinea // costului
Arb(u) = Arb(u) Arb(v) // se reunesc mulimile de noduri (arborii) A = A {(u,v)} // se adaug muchia sigur n AMA
ntoarce A
Proiectarea Algoritmilor 2010
Complexitate Kruskal
Elementele algoritmului:
sortarea muchiilor: O(ElogE) O(ElogV) Arb(u) = Arb(v) compararea a 2 mulimi disjuncte {1,2,3} {4,5,6} mai precis trebuie identificat dac 2 elemente sunt n aceeai mulime
ntoarce false
ntoarce M1
Complexitate: V2
Complexitate: V
A B C D E F G H I J K L 0 1 2 3 4 5 6 7 8 9 10 11 0 1 1 1 1 1 1 1 0 0 0 0
I 3 A 9 B 8 5 C 8 D 9 2 1 H 7 2 6 G 2 5 J
8 K
E F
Complexitate maxim?
Complexitate maxim
3
A 9 8 5 C 2 6 G
A B C D E F G H I J K L 0 1 2 3 4 5 6 7 8 9 10 11 8 1 1 2 2 4 1 6 8 8 9 10
2 4 H E 9 2 F L
8 K 7
Comparare (u, v)
Comparare (u, v)
Complexitate?
Arb(u) != Arb(v)
v = Arb(v) id[v] = u;
Complexitate:
I A J K L A
I J K L
Arborele de noduri
Arborele de id-uri
Ct timp (i != id[i])
ntoarce i
Orice secven de E operaii de cutare i reuniune asupra unui graf cu V noduri consum O(V + E*(V,E)). de cate ori trebuie aplicat lg pentru a ajunge la 1
n practic este 5
n practic O(E)
Proiectarea Algoritmilor 2010
Complexitate Kruskal
Aplicaie practic
K-clustering
mprirea unui set de obiecte n grupuri astfel nct obiectele din cadrul unui grup s fie apropiate considernd o distan dat.
Utilizat n clasificare, cutare (web search de exemplu). Dndu-se un ntreg K s se mpart grupul de obiecte n K grupuri astfel nct spaiul dintre grupuri s fie maximizat.
Proiectarea Algoritmilor 2010
Exemplu
Algoritm
Se formeaz V clustere (un cluster per obiect). Gsete cele mai apropiate 2 obiecte din clustere diferite i unete cele 2 clustere. Se oprete cnd au mai rmas k clustere.
chiar algoritmul Kruskal
Proiectarea Algoritmilor 2010