1
Minimum Spanning Trees
algorithm
2
Algoritma Minimum Spanning Trees
algoritma Kruskal and algoritma Prim.
Kedua algoritma ini berbeda dalam metodologinya,
tetapi keduanya mempunyai tujuan menemukan
minimum spanning
•algoritma Kruskal menggunakan edge, dan
•algoritma Prim menggunakan vertex yang
terhubung
3
Perbedaan antara algoritma prim dan kruskal
Perbedaan prinsip antara algoritma prim dan
kruskal adalah,
Jika pada algoritma prim sisi yang dimasukkan
ke dalam T harus bersisian dengan sebuah
simpul di T, maka pada algoritma kruskal sisi
yang dipilih tidak perlu bersisian dengan
sebuah simpul di T. asalkan penambahan sisi
tersebut tidak membentuk cycle.
4
Pada algoritma kruskal, sisi (edge) dari Graph diurut
terlebih dahulu berdasarkan bobotnya dari kecil ke besar. Sisi yang dimasukkan ke dalam himpunan T adalah sisi
graph G yang sedemikian sehingga T adalah Tree
(pohon). Sisi dari Graph G ditambahkan ke T jika ia tidak membentuk cycle.
1. T masih kosong
2. pilih sisi (i,j) dengan bobot minimum
3. pilih sisi (i,j) dengan bobot minimum berikutnya yang tidak membentuk cycle di T, tambahkan (i,j) ke T
4. Ulangi langkah 3 sebanyak (n-2) kali. 5. Total langkah (n-1) kali
5
Kruskal's Algorithm
: a e c b d f 10 15 13 20 12 5 11 21 16Langkah Sisi bobot 0 1 e-c 5 2 a-b 10 3 d-e 11 4 c-f 12 5 b-e 13
6 a e c b d f 10 15 13 20 12 5 11 21 16 a e c b d f 10 15 13 20 12 5 11 21 16 a e c b d f 10 15 13 20 12 5 11 21 16 a e c b d f 10 15 13 20 12 5 11 21 16 a e c b d f 10 15 13 20 12 5 11 21 16
Kruskal's Algorithm
:7
8
9
Contoh algoritma Kruskal
Langkah Sisi bobot
0 1 N1,N2 1 2 N7,N8 1 3 N2,N3 2 4 N1,N6 3 5 N3,N4 4 6 N2,N7 5 7 N4,N5 7
10
Contoh algoritma Kruskal
Langkah 1
Langkah 2
11
Contoh algoritma Kruskal
Langkah 4
Langkah 5
Langkah 6
Langkah Sisi bobot
0 1 1,4 1 2 6,7 1 3 3,4 2 4 1,2 2 5 4,7 4 6 5,7 6
Kruskal's algorithm
(basic part)
1
(Sort the edges in an increasing order)
2
A:={}
3
while
E is not empty
do {
3
take an edge (u, v) that is shortest
in E
and delete it from E
4
if
u and v are in different
components
then
add (u, v) to A
13
Pada algoritma prim, dimulai pada vertex yang
mempunyai sisi (edge) dengan bobot terkecil.
Sisi yang dimasukkan ke dalam himpunan T adalah
sisi graph G yang bersisian dengan sebuah simpul di
T, sedemikian sehingga T adalah Tree (pohon). Sisi
dari Graph G ditambahkan ke T jika ia tidak
membentuk cycle.
(NOTE: dua atau lebih edge kemungkinan mempunyai bobot yang sama, sehingga terdapat pilihan vertice, dalam hal ini dapat diambil salah satunya.)
14
Algorithma Prim
1.
Ambil sisi (edge) dari graph yg berbobot
minimum, masukkan ke dalam T
2.
Pilih sisi (edge) (i,j) yg berbobot minimum
dan bersisisan dengan simpul di T, tetapi
(i,j) tidak membentuk cycle di T.
tambahkan (i,j) ke dalam T
15
Algorithma Prim
PROCEDURE Prim
(G: weighted connected undirected graph with n vertices) BEGIN
T := a minimum-weight edge FOR i := 1 to n-2 DO
BEGIN
e := a minimum-weight edge one of whose vertices is in T,
and one is not in T T := T with e added
END
RETURN T END
16
Algorithma Prim
a e c b d f 10 15 13 20 12 5 11 21 16Langkah Sisi bobot 0 1 e-c 5 2 d-e 11 3 c-f 12 4 b-e 13 5 a-b 10
17
Algorithm Prim
a e c b d f 10 15 13 20 12 5 11 21 16 a e c b d f 10 15 13 20 12 5 11 21 16 a e c b d f 10 15 13 20 12 5 11 21 16 a e c b d f 10 15 13 20 12 5 11 21 16 a e c b d f 10 15 13 20 12 5 11 21 1618 LANGKAH SISI BOBOT
1 (H,G) 1 2 (G,F) 2 3 (F,C) 4 4 (C,I) 2 5 (C,D) 7 6 (C,B) 8 7 (B,A) 4 8 (D,E) 9 E D G C B H A F I 4 8 8 11 7 2 6 1 2 7 9 14 10 4
Algorithm Prim
19 G H 1 G H 1 2 F G C H 1 2 F 4 G C H F I 2 1 2 4
Algorithm Prim
Langkah 2 Langkah 3 Langkah 1 Langkah 320
Algorithm Prim
E D G C B H A F I 4 8 2 1 2 7 9 4 D G C H F I 2 1 2 7 4 D G C B H F I 8 2 1 2 7 4 D G C B H A F I 4 8 2 1 2 7 4 Langkah 4 Langkah 5 Langkah 6 Langkah 721
Prim's algorithm
(basic part) MST_PRIM(G,w,r)1. A={}
2. S:={r} (r is an arbitrary node in V) 3. Q=V-{r};
4. while Q is not empty do {
5 take an edge (u, v) such that (1) u S and v Q (v S ) and
(u, v) is the shortest edge satisfying (1)
6 add (u, v) to A, add v to S and delete v from Q }
23
Problem 1
Cari minimum spanning tree dengan
menggunakan algoritma prim dan
kruskal !
6 5 2 4 1 3 4 9 8 11 5 2 6 1 7Problem 2
Cari minimum spanning tree menggunakan
Kruskal untuk graph berikut ini. Berapa costnya?
Problem 3
Lima komputer harus dipasang di sebuah kantor
dan satu sama lain saling terhubung (dapat
secara langsung atau dengan melalui komputer
lain, salah satu). Panjang kabel yang diperlukan
untuk menghubungkan unit-unit komputer yang
berdekatan diberikan dalam meter seperti pada
gambar. Berapa panjang minimum kabel yang
diperlukan?
Problem 4
Kantor pusat suatu perusahaan akan membangun
jaringan pos elektronik (menggunakan satelit)
dengan anak-anak perusahaannya yang terbesar
di tempat-tempat seperti pada gambar berikut.
Biaya membangun hubungan itu tergantung pada
jaraknya dan dinyatakan dalam jutaan rupiah.
Berapa biaya maksimum untuk membangun
jaringan itu?
Given a maze as shown in Fig. 1-13, represent this maze
by means of a graph such that a vertex denotes either a corridor or a dead end (as numbered). An edge
represents a possible path between two vertices. (This is one of numerous mazes that were drawn or built by the Hindus, Greeks, Romans, Vikings, Arabs, etc.)
Spanning tree dengan aliran
optimum
29
Spanning tree dengan aliran optimum
Algoritma greedy
Dengan t(i,j) sebagai bobot pada link (i,j), cari pohon (tree) yang memberikan nilai optimum.
cara atau dasar motifasinya: meletakkan simpul-simpul yang mempunyai interaksi trafik terbesar saling
berdekatan
Algoritma star
Bila suatu jaring bintang adalah optimum, maka simpul pusat adalah simpul yang mempunyai jumlah trafik (ke dan dari) terbesar
Algoritma dekomposisi dan interkoneksi
30
Spanning tree dengan aliran optimum
Algoritma dekomposisi dan interkoneksi optimum
Langkah 0: gunakan alg greedy dan star dan pilih
solusi yang terbaik
Langkah 1: pertimbangkan untuk menghapus satu
per satu link secara berurutan. Bila didapat suatu hubungan baru yang memberikan pohon yg jumlah total harga aliran trafik yang dimuat pada
link-linknya lebih kecil(atau sama), maka hilangkan link tsb dan pakai hubungan baru tersebut, proses
diteruskan dengan cara yang sama sampai diperoleh hasil yang optimum
Langkah 2 : berhenti bila tak didapatkan lagi
hubungan (interkoneksi) beru yang mempunyai
harga yang lebih rebdah untuk semua (n-1) link yang dipertimbangkan (dicoba)
31
Algoritma greedy
Buat matrik bobot w dari sebuah graph G
Dari matrik bobot W, buat matrik gabungan (U),
dimana u(i,j)=w(i,j)+w(j,i) , j>i
Pilih bobot yang paling besar. Letakkan
simpul-simpul yang mempunyai interaksi bobot terbesar saling berdekatan (dihubungkan dengan sebuah link)
Cari pohon sedemikian rupa sehingga
w
min
u
i,
j
d
i,
j
Z
j
i,
32
Algoritma greedy
Diketahui matrik bobot w
sebuah graph adalah sebagai berikut :
Dari matrikbobot w, maka
matrik gabungan U adalah :
u(i,j)=w(i,j)+w(j,i) , j>i 0 5 4 3 2 1 2 0 2 2 3 3 2 1 0 1 2 7 1 3 3 0 4 4 8 2 5 2 0 3 7 4 1 3 5 0 W 0 0 0 0 0 0 7 0 0 0 0 0 6 3 0 0 0 0 4 5 4 0 0 0 10 5 7 6 0 0 8 7 8 7 8 0 U
33 2 3 1 4 6 5 meletakkan simpul-simpul
yang mempunyai interaksi bobot terbesar saling
berdekatan, sehingga membentuk sebuah tree
Matrik jarak (d) dari pohon
(tree) yg terbentuk 0 3 3 3 1 2 3 0 2 2 2 1 3 2 0 2 2 1 3 2 2 0 2 1 1 2 2 2 0 1 2 1 1 1 1 0 d
Algoritma greedy
34
Algoritma greedy
167 6 5 4 3 2 1 0 0 . 0 0 . 0 0 . 0 0 . 0 0 . 0 0 . 0 6 21 7 . 3 0 . 0 0 . 0 0 . 0 0 . 0 0 . 0 5 24 6 . 3 3 . 2 0 . 0 0 . 0 0 . 0 0 . 0 4 30 3 . 4 2 . 5 2 . 4 0 . 0 0 . 0 0 . 0 3 46 10 . 1 5 . 2 7 . 2 6 . 2 0 . 0 0 . 1 2 46 8 . 2 7 . 1 8 . 1 7 . 1 8 . 1 0 . 0 1 Z Z Z Z Z Z Ztot Z Z Z Z Z Z 0 3 3 3 1 2 3 0 2 2 2 1 3 2 0 2 2 1 3 2 2 0 2 1 1 2 2 2 0 1 2 1 1 1 1 0 d
w
min
U
i,
j
d
i,
j
Z
j i,
0 0 0 0 0 0 7 0 0 0 0 0 6 3 0 0 0 0 4 5 4 0 0 0 10 5 7 6 0 0 8 7 8 7 8 0 U35
Algoritma star
Buat matrik bobot w dari sebuah graph G
Dari matrik bobot W, buat matrik gabungan (U),
dimana u(i,j)=w(i,j)+w(j,i) , j>i
Pilih bobot yang paling besar. Letakkan simpul-yang
mempunyai bobot ( ke dan dari ) terbesar sebagai titik utama (pusat)
36 0 5 4 3 2 1 2 0 2 2 3 3 2 1 0 1 2 7 1 3 3 0 4 4 8 2 5 2 0 3 7 4 1 3 5 0 W
Diketahui matrik bobot w
sebuah graph adalah sebagai berikut :
Dari matrikbobot w, maka
matrik gabungan U adalah :
u(i,j)=w(i,j)+w(j,i) , j>i 35 20 19 13 8 35 35 0 27 20 7 28 19 9 26 13 13 36 8 28 38 0 38 0 0 0 0 0 0 7 0 0 0 0 0 6 3 0 0 0 0 4 5 4 0 0 0 10 5 7 6 0 0 8 7 8 7 8 0 U
Algoritma star
37 Simpul nomer1 mempunyai
bobot terbesar sehingga simpul ini dijadikan titik pusat
Algoritma star
35 20 19 13 8 35 35 0 27 20 7 28 19 9 26 13 13 36 8 28 38 0 38 0 0 0 0 0 0 7 0 0 0 0 0 6 3 0 0 0 0 4 5 4 0 0 0 10 5 7 6 0 0 8 7 8 7 8 0 U 2 3 1 4 6 5 Z(w) ?38
soal
Tentukan dan gambarkan minimum spanning tree
dengan menggunakan algoritma greedy dan star
Hitung nilai Z(t) minimum.
0
6
2
9
3
1
0
1
2
7
8
3
0
4
4
10
5
2
0
3
4
1
3
5
0
W
39 0 6 2 9 3 1 0 1 2 7 8 3 0 4 4 10 5 2 0 3 4 1 3 5 0 W 44 19 13 8 0 0 0 0 0 7 0 0 0 0 10 4 0 0 0 19 7 6 0 0 7 8 7 8 0 U 2 3 4 1 5 0 3 1 1 2 3 0 4 2 1 1 4 0 2 3 1 2 2 0 1 2 1 3 1 0 d 143 5 4 3 2 1 35 0 . 0 3 . 6 1 . 2 1 . 9 2 . 3 5 18 3 . 1 0 . 0 4 . 1 2 . 2 1 . 7 4 40 1 . 8 4 . 3 0 . 0 2 . 4 3 . 4 3 27 10 . 1 2 . 5 2 . 2 0 . 0 3 . 1 2 23 2 . 4 1 . 1 3 . 3 5 . 1 0 . 0 1 Z Z Z Z Z Ztot Z Z Z Z Z
w
min
w
i,
j
d
i,
j
Z
j i,
Algoritma greedy
Algoritma star
40 0 6 2 9 3 1 0 1 2 7 8 3 0 4 4 10 5 2 0 3 4 1 3 5 0 W 43 19 13 8 43 43 0 0 0 0 0 0 26 19 7 7 0 0 0 0 17 4 13 10 4 0 0 0 40 32 8 19 7 6 0 0 30 30 0 7 8 7 8 0 U 2 3 5 4 1 0 1 1 1 1 1 0 1 1 1 1 1 0 1 1 1 1 1 0 1 1 1 1 1 0 d 83 5 4 3 2 1 20 0 . 0 1 . 6 1 . 2 1 . 9 1 . 3 5 11 1 . 1 0 . 0 1 . 1 2 . 1 1 . 7 4 19 1 . 8 1 . 3 0 . 0 1 . 4 1 . 4 3 20 10 . 1 1 . 5 2 . 1 0 . 0 3 . 1 2 13 1 . 4 1 . 1 3 . 1 5 . 1 0 . 0 1 Z Z Z Z Z Ztot Z Z Z Z ZADDITIONAL
42
Baruvka's Algorithm
Barůvka‘s Algorithm
1. For all vertices search the edge with the smallest weight
of this vertex and mark these edges
2. Search connected vertices (clusters) and replace them by
a “new“ vertex (cluster)
3. Remove the cycles and, if two vertices are connected by
more than one edge, delete all edges except the “cheapest“
i
Baruvka's Algorithm
C
F
E
A
B
D
5
6
4
3
4
2
1
2
3
2
Baruvka's Algorithm
C
F
E
A
B
D
5
6
4
3
4
2
1
2
3
2
Baruvka's Algorithm
C
F
E
A
B
D
5
6
4
3
4
2
1
2
3
2
C
iBaruvka's Algorithm
C
F
E
A
B
D
5
6
4
3
4
2
1
2
3
2
Baruvka's Algorithm
C
F
E
A
B
D
3
2
1
2
2
Baruvka's Algorithm
C
F
E
A
B
D
3
2
1
2
2
minimum- spanning tree
50
soal
2 3 1 4 6 5 15 20 24 11 13 18 16 12 17 22
Tentukan minimum spanning tree dengan
menggunakan algoritma kruskal, baruvka
dan prim
7 12
11