• Tidak ada hasil yang ditemukan

Minimum Spanning Trees algorithm

N/A
N/A
Protected

Academic year: 2021

Membagikan "Minimum Spanning Trees algorithm"

Copied!
50
0
0

Teks penuh

(1)

1

Minimum Spanning Trees

algorithm

(2)

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)

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)

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)

5

Kruskal's Algorithm

: a e c b d f 10 15 13 20 12 5 11 21 16

Langkah Sisi bobot 0 1 e-c 5 2 a-b 10 3 d-e 11 4 c-f 12 5 b-e 13

(6)

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)

7

(8)

8

(9)

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)

10

Contoh algoritma Kruskal

Langkah 1

Langkah 2

(11)

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

(12)

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)

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)

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)

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)

16

Algorithma Prim

a e c b d f 10 15 13 20 12 5 11 21 16

Langkah Sisi bobot 0 1 e-c 5 2 d-e 11 3 c-f 12 4 b-e 13 5 a-b 10

(17)

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 16

(18)

18 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)

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 3

(20)

20

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 7

(21)

21

(22)

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 (vS ) 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)

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 7

(24)

Problem 2

Cari minimum spanning tree menggunakan

Kruskal untuk graph berikut ini. Berapa costnya?

(25)

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?

(26)

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?

(27)

 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.)

(28)

Spanning tree dengan aliran

optimum

(29)

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)

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)

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)

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)

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)

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 U

(35)

35

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)

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)

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)

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)

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

(40)

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 Z

(41)

ADDITIONAL

(42)

42

(43)

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

(44)

Baruvka's Algorithm

C

F

E

A

B

D

5

6

4

3

4

2

1

2

3

2

(45)

Baruvka's Algorithm

C

F

E

A

B

D

5

6

4

3

4

2

1

2

3

2

(46)

Baruvka's Algorithm

C

F

E

A

B

D

5

6

4

3

4

2

1

2

3

2

C

i

(47)

Baruvka's Algorithm

C

F

E

A

B

D

5

6

4

3

4

2

1

2

3

2

(48)

Baruvka's Algorithm

C

F

E

A

B

D

3

2

1

2

2

(49)

Baruvka's Algorithm

C

F

E

A

B

D

3

2

1

2

2

minimum- spanning tree

(50)

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

Referensi

Dokumen terkait

Berdasarkan definisi tersebut bahwa lingkungan kerja fisik adalah segala sesuatu yang ada di sekitar tempat kerja karyawan lebih banyak berfokus pada benda-benda dan situasi

Mampu menggunakan data jam kerja produktif dan beban kerja untuk menghitung produktifitas tenaga kerja dan penetapan kebutuhan tenaga kerja standar untuk suatu

Sistem minimum mikrokontroler berfungsi untuk kontrol utama sistem dan pengiriman data, rangkaian komunikasi serial berfungsi untuk pengiriman data, sensor arus berfungsi

[r]

Perbedaan kategori itu terkait dengan pembentukan kata secara derivasional dan in- fleksional, sebagaimana dinyatakan Subroto (1985: 2) dengan mengutip pendapat Nida sebagai

Sudah saya sampaikan bahwa hukum pidana bertolak, tetap bertolak dari nilai moral, tetapi ada sebuah kelemahan untuk mengaitkan begitu saja karena namanya moralitas adalah

Dari hasil uji analisis regresi berganda di atas dapat diketahui bahwa secara bersama-sama jumlah kehadiran dan rata-rata jumlah bacaan siswa berpengaruh terhadap

Penelitian terhadap air baku yang diaplikasikan peroxone untuk mengoksidasi senyawa organik dan mangan dibutuhkan konsentrasi peroxone yang sama, namun waktu reaksi