TB 1 DESAIN DAN ANALISIS ALGORITMA
KELAS: L
Oleh :
Kelompok 3
Maryamah 135150201111008
Vivilia Putri A 135150201111230
Weni Agustina 135150201111019
Riza Rizqiana 135150207111019
Sema Yuni F 135150201111189
Dosen Pengampu: Ratih Kartika Dewi, S.T, M.Kom.
PROGRAM TEKNOLOGI INFORMASI DAN ILMU KOMPUTER
UNIVERSITAS BRAWIJAYA
2014
Review Paper
Judul :
STUDI MINIMUM SPANNING TREE DENGAN ALGORITMA PRIM DAN KRUSKAL
Nama Pengarang :
Hadyan Ghaziani Fadli
Nama Jurnal :
Studi Minimum Spanning Tree Dengan Algoritma Prim Dan Kruskal
Masalah :
Untuk kendaraan motor seperti mobil, menghubungkan beberapa kota besar mungkin akan dihubungkan secara langsung dengan jalan tol. Namun pada umumnya, seperti pada jalan kereta api, untuk penghematan pembuatan jalan, rel kereta api dibuat tidak langsung, seperti jalan tol menghubungkan 2 kota yang cukup jauh secara langsung. Namun, melalui kota-kota yang beradi diantaranya, jadi jalan ini sekaligus menghubungkan kota-kota yang ada diantara kota asal dan kota tujuan kita.
Untuk menentukan jalur mana yang akan dipakai agar efisien maka diperlukan cara untuk mendapatkan jalur terpendek. Karenanya pencarian sebuah jalan dengan jarak minimal sangatlah dibutuhkan khususnya dalam dunia transportasi di dunia. Pada Tahun 1926, seorang Czech scientist, Otakar Boruvka menemukan sebuah algoritma yang dikenal dengan Boruvks's Algoritma. Seiring berjalannya waktu, ada 2 algoritma lain yang lebih umum untuk dipakai yaitu Algoritma Prim da Algoritma Kruskal.
Walaupun ada lebih dari 1 algoritma yang berbeda, namun jalan yang didapat akan sama panjangnya. Metode yang dipakai oleh ketiga Algoritma ini adalah metode Minimum Spanning Tree.
Algoritma
Algoritma Prim
Algoritma Prim adalah suatu algoritma di dalam teori graf yang bertujuan menemukan Minimum Spanning tree untuk menghubungkan graf berbobot.
Ini berarti algoritma ini menemukan subset dari sebuah tepi yang membentuk sebuah Tree diminimalkan. Jika graf tidak terhubung, maka ini hanya akan menemukan sebuah Minimum Spanning Tree menjadi satu jalur untuk komponen yang terhubung.
Algoritma ini ditemukan pada tahun 1930 oleh seorang ahli matematika Vojtech Jamik, dan kemudian dipublikasikan oleh seorang computer scientist Robert C. Prim pada tahun 1957 dan ditemukan kembali oleh Dijkstra pada tahun 1959. Oleh karena itu, terkadang Algoritma ini juga disebut DJP algoritma atau algoritma Jamik.
Alur dan Cara Kerja Algoritma Prim
Alur :
Ini adalah sebuah graf berbobot yang asli, ini bukan sebuah Tree karena definisi sebuah Tree tidak memiliki sirkuit, dan diagram ini memiliki sirkuit. Nama yang lebih benar untuk diagram ini adalah sebuah graf atau network. Nomer didekat busur adalah bobotnya. Tidak satupun dari titik sudut yang diberi highlight dan vertex D dipilih sebagai starting point.Ini adalah sebuah graf berbobot yang asli, ini bukan sebuah Tree karena definisi sebuah Tree tidak memiliki sirkuit, dan diagram ini memiliki sirkuit. Nama yang lebih benar untuk diagram ini adalah sebuah graf atau network. Nomer didekat busur adalah bobotnya. Tidak satupun dari titik sudut yang diberi highlight dan vertex D dipilih sebagai starting point.
Ini adalah sebuah graf berbobot yang asli, ini bukan sebuah Tree karena definisi sebuah Tree tidak memiliki sirkuit, dan diagram ini memiliki sirkuit. Nama yang lebih benar untuk diagram ini adalah sebuah graf atau network. Nomer didekat busur adalah bobotnya. Tidak satupun dari titik sudut yang diberi highlight dan vertex D dipilih sebagai starting point.
Ini adalah sebuah graf berbobot yang asli, ini bukan sebuah Tree karena definisi sebuah Tree tidak memiliki sirkuit, dan diagram ini memiliki sirkuit. Nama yang lebih benar untuk diagram ini adalah sebuah graf atau network. Nomer didekat busur adalah bobotnya. Tidak satupun dari titik sudut yang diberi highlight dan vertex D dipilih sebagai starting point.
885577991111776615159955AAGGFFEEDDCCBB
8
8
5
5
7
7
9
9
11
11
7
7
6
6
15
15
9
9
5
5
A
A
G
G
F
F
E
E
D
D
C
C
B
B
Kedua, pilih vertex terdekat dengan D : A memiliki jarak 5 dengan D, B memiliki jarak 9, E memiliki jarak 15, dan F memiliki jarak 6. Dari semuanya 5 adalah jarak terpendek, jadi kita highlight vertex A dan busur DA.Kedua, pilih vertex terdekat dengan D : A memiliki jarak 5 dengan D, B memiliki jarak 9, E memiliki jarak 15, dan F memiliki jarak 6. Dari semuanya 5 adalah jarak terpendek, jadi kita highlight vertex A dan busur DA.
Kedua, pilih vertex terdekat dengan D : A memiliki jarak 5 dengan D, B memiliki jarak 9, E memiliki jarak 15, dan F memiliki jarak 6. Dari semuanya 5 adalah jarak terpendek, jadi kita highlight vertex A dan busur DA.
Kedua, pilih vertex terdekat dengan D : A memiliki jarak 5 dengan D, B memiliki jarak 9, E memiliki jarak 15, dan F memiliki jarak 6. Dari semuanya 5 adalah jarak terpendek, jadi kita highlight vertex A dan busur DA.
885577991111776615159955AAGGFFEEDDCCBB
8
8
5
5
7
7
9
9
11
11
7
7
6
6
15
15
9
9
5
5
A
A
G
G
F
F
E
E
D
D
C
C
B
B
Vertex berikutnya adalah vertex yang terdekat ke D atau A. B memiliki jarak 9 dari D dan 7 dari A, E memiliki jarak 15 dan F memiliki jarak 6. Jadi F yang memiliki jarak terpendek. Sehingga kita highlight vertex F dan sisi DF.Vertex berikutnya adalah vertex yang terdekat ke D atau A. B memiliki jarak 9 dari D dan 7 dari A, E memiliki jarak 15 dan F memiliki jarak 6. Jadi F yang memiliki jarak terpendek. Sehingga kita highlight vertex F dan sisi DF.
Vertex berikutnya adalah vertex yang terdekat ke D atau A. B memiliki jarak 9 dari D dan 7 dari A, E memiliki jarak 15 dan F memiliki jarak 6. Jadi F yang memiliki jarak terpendek. Sehingga kita highlight vertex F dan sisi DF.
Vertex berikutnya adalah vertex yang terdekat ke D atau A. B memiliki jarak 9 dari D dan 7 dari A, E memiliki jarak 15 dan F memiliki jarak 6. Jadi F yang memiliki jarak terpendek. Sehingga kita highlight vertex F dan sisi DF.
885577991111776615159955AAGGFFEEDDCCBB
8
8
5
5
7
7
9
9
11
11
7
7
6
6
15
15
9
9
5
5
A
A
G
G
F
F
E
E
D
D
C
C
B
B
Algoritma yang disebutkan diatas, vertex B, yang memiliki jarak 7 dari A, di highlight. Disini , sisi DB di highlight warna merah, karena kedua vertex yaitu B dan D telah di hilghlight, jadi ini tidak bisa digunakanAlgoritma yang disebutkan diatas, vertex B, yang memiliki jarak 7 dari A, di highlight. Disini , sisi DB di highlight warna merah, karena kedua vertex yaitu B dan D telah di hilghlight, jadi ini tidak bisa digunakan
Algoritma yang disebutkan diatas, vertex B, yang memiliki jarak 7 dari A, di highlight. Disini , sisi DB di highlight warna merah, karena kedua vertex yaitu B dan D telah di hilghlight, jadi ini tidak bisa digunakan
Algoritma yang disebutkan diatas, vertex B, yang memiliki jarak 7 dari A, di highlight. Disini , sisi DB di highlight warna merah, karena kedua vertex yaitu B dan D telah di hilghlight, jadi ini tidak bisa digunakan
885577991111776615159955AAGGFFEEDDCCBB
8
8
5
5
7
7
9
9
11
11
7
7
6
6
15
15
9
9
5
5
A
A
G
G
F
F
E
E
D
D
C
C
B
B
Dalam kasus ini, kita dapat memilih antara C, E dan G. C memiliki jarak 8 dai B, E memiliki jarak v dari B dan G memiliki jarak 11 dari F. E yang terdekat.jadi kita highlight E dan sisi EB. Dia sisi lainnya telah di highlight merah, artinya kedua vertices gabungan itu telah dipakaiDalam kasus ini, kita dapat memilih antara C, E dan G. C memiliki jarak 8 dai B, E memiliki jarak v dari B dan G memiliki jarak 11 dari F. E yang terdekat.jadi kita highlight E dan sisi EB. Dia sisi lainnya telah di highlight merah, artinya kedua vertices gabungan itu telah dipakai885577991111776615159955AAGGFFEEDDCCBB
Dalam kasus ini, kita dapat memilih antara C, E dan G. C memiliki jarak 8 dai B, E memiliki jarak v dari B dan G memiliki jarak 11 dari F. E yang terdekat.jadi kita highlight E dan sisi EB. Dia sisi lainnya telah di highlight merah, artinya kedua vertices gabungan itu telah dipakai
Dalam kasus ini, kita dapat memilih antara C, E dan G. C memiliki jarak 8 dai B, E memiliki jarak v dari B dan G memiliki jarak 11 dari F. E yang terdekat.jadi kita highlight E dan sisi EB. Dia sisi lainnya telah di highlight merah, artinya kedua vertices gabungan itu telah dipakai
8
8
5
5
7
7
9
9
11
11
7
7
6
6
15
15
9
9
5
5
A
A
G
G
F
F
E
E
D
D
C
C
B
B
Disin, vertices yang masih tersedia adalah C dan G. C memiliki jarak5 dari E dan G memiliki jarak 9 dari E. C yang dipilih. Jadi kita highlight sisi EC, dan BC juga kita highlight merahDisin, vertices yang masih tersedia adalah C dan G. C memiliki jarak5 dari E dan G memiliki jarak 9 dari E. C yang dipilih. Jadi kita highlight sisi EC, dan BC juga kita highlight merah
Disin, vertices yang masih tersedia adalah C dan G. C memiliki jarak5 dari E dan G memiliki jarak 9 dari E. C yang dipilih. Jadi kita highlight sisi EC, dan BC juga kita highlight merah
Disin, vertices yang masih tersedia adalah C dan G. C memiliki jarak5 dari E dan G memiliki jarak 9 dari E. C yang dipilih. Jadi kita highlight sisi EC, dan BC juga kita highlight merah
885577991111776615159955AAGGFFEEDDCCBB
8
8
5
5
7
7
9
9
11
11
7
7
6
6
15
15
9
9
5
5
A
A
G
G
F
F
E
E
D
D
C
C
B
B
Vertex G adalah vertex terakhir. Ini berjarak 11 dari F, dan 9 dari E. E yang terdekat , jadi kita highlight sisi EG. Sekarang semua vertices telah di highlight, sebuah Minimum Spanning Tree di tamppilkan dengan warna hijau, dalam kasus ini bobotnya adalah 39.Vertex G adalah vertex terakhir. Ini berjarak 11 dari F, dan 9 dari E. E yang terdekat , jadi kita highlight sisi EG. Sekarang semua vertices telah di highlight, sebuah Minimum Spanning Tree di tamppilkan dengan warna hijau, dalam kasus ini bobotnya adalah 39.
Vertex G adalah vertex terakhir. Ini berjarak 11 dari F, dan 9 dari E. E yang terdekat , jadi kita highlight sisi EG. Sekarang semua vertices telah di highlight, sebuah Minimum Spanning Tree di tamppilkan dengan warna hijau, dalam kasus ini bobotnya adalah 39.
Vertex G adalah vertex terakhir. Ini berjarak 11 dari F, dan 9 dari E. E yang terdekat , jadi kita highlight sisi EG. Sekarang semua vertices telah di highlight, sebuah Minimum Spanning Tree di tamppilkan dengan warna hijau, dalam kasus ini bobotnya adalah 39.
885577991111776615159955AAGGFFEEDDCCBB
8
8
5
5
7
7
9
9
11
11
7
7
6
6
15
15
9
9
5
5
A
A
G
G
F
F
E
E
D
D
C
C
B
B
Cara Kerja :
Membuat sebuah tree yang mengandung vertex tunggal, pilih yang berbobot minimum.
Membuat sebuah set (yang belum tercakup) yang mengandung semua vertices yang
lain di dalam graf.
Membuat sebuah set (fringe vertices) yang di inisialisasi kosong.
Loop (jumlah vertices -1) :
Memindahkan tiap vertices yang belum tercakup dan secara langsung terhubung kepada node terakhir, menambahkan ke fringe set.
Untuk setiap titik di set sisi, menentukan jika sebuah sisi menghubungkan vertices dengan node terakhir ysng ditambahkan jika iya, maka jika sisi tersebut memiliki bobot lebih kecil dari sisi sebelumnya yang menghubungkan vertex ke Tree yang telah terbuat. Memasukkan sisi baru ini melalui node terakhir yang ditambahkan sebagai rute terbaik di Tree yang telah dibuat.
Memilih sisi dengan bobot minimum yang menghubungkan vertex dalam fringe set ke vertex pada Tree yang sudah terbuat.
Menambahkan sisi tersebut ke Tree dan memindahkan fringe vertex dalam fringe set ke sebuah vertex dalam Tree yang sudah terbuat.
Meng-update node terakhir yang ditambahkan untuk menjadi fringe vertex yang baru ditambahkan.
Hanya " V " -1, dimana " V " adalah jumlah dari vertices dalam graf, pengulangan diperlukan. Sebuah Tree menghubungkan " V " -1 sisi dan tiap pengulangan dari algoritma yang dideskripsikan diatas tertarik dalam tepat 1 sisi.
Implementasi yang simple menggunakan representasi adjacency matrix graph dan mencari sebuah barisan bobot untuk mencari sisi dengan bobot minimum.
Algoritma Kruskal
Algoritma Kruskal pertama kali dipopulerkan oleh Joseph Kruskal pada tahun 1959. Algoritma Kruskal adalah sebuah algoritma dalam teori grf yang mencari sebuah Minimum Sanning Tree untuk sebuah graf yang berbobot dan yang terhubung. Ini berarti mencari subset dari sisi yang membentuk sebuah Tree yag menampung setiap vertex, dimana total bobot dari semua sisi dalam Tree adalah minimum. Jika graf tidak terhubung, kemudian ini mencari sebuah Minimum Spanning Forest (sebuah Minimumu Spanning Tree untuk tiap komponen yang terhubung). Algoritma Kruskal adalah suatu contoh dari Algoritma Greedy.
Perbedaan prinsip antara algoritma prim dan Kruskal adalah jika pada algoritma prim sisi yang dimasukkan ke dalam Tree harus bersisian dengan sebuah simpul di Tree, maka pada algoritma kruskal sisi yang dipilih tidak perlu bersisian dengan sebuah simpul di Tree, asalkan penambahan sisi tersebut tidak membentuk cycle.
Kedua algoritma ini berbeda dalam metodologinya, tetapi keduanya mempunyai tujuan menemukan minimum spanning
Algoritma Kruskal menggunakan edge, dan
Algoritma Prim menggunakan vertex yang terhubung
Alur dan Cara Kerja Algoritma Kruskal :
Alur :
Ini adalah graf asli. Angka-Angka dekat sisi menandai bobot mereka. Tidak satupun dari sisi di HighlightIni adalah graf asli. Angka-Angka dekat sisi menandai bobot mereka. Tidak satupun dari sisi di Highlight
Ini adalah graf asli. Angka-Angka dekat sisi menandai bobot mereka. Tidak satupun dari sisi di Highlight
Ini adalah graf asli. Angka-Angka dekat sisi menandai bobot mereka. Tidak satupun dari sisi di Highlight
885577991111776615159955AAGGFFEEDDCCBB
8
8
5
5
7
7
9
9
11
11
7
7
6
6
15
15
9
9
5
5
A
A
G
G
F
F
E
E
D
D
C
C
B
B
AD dan CE adalah sisi yang paling pendek, dengan panjangnya 5, dan AD ditetapkan sebagai awal, jadi kita beri highlightAD dan CE adalah sisi yang paling pendek, dengan panjangnya 5, dan AD ditetapkan sebagai awal, jadi kita beri highlight
AD dan CE adalah sisi yang paling pendek, dengan panjangnya 5, dan AD ditetapkan sebagai awal, jadi kita beri highlight
AD dan CE adalah sisi yang paling pendek, dengan panjangnya 5, dan AD ditetapkan sebagai awal, jadi kita beri highlight
885577991111776615159955AAGGFFEEDDCCBB
8
8
5
5
7
7
9
9
11
11
7
7
6
6
15
15
9
9
5
5
A
A
G
G
F
F
E
E
D
D
C
C
B
B
CE sekarang adalah sisi terpendek yang tidak membentuk loop, dengan panjang 5, maka kita highlight.CE sekarang adalah sisi terpendek yang tidak membentuk loop, dengan panjang 5, maka kita highlight.
CE sekarang adalah sisi terpendek yang tidak membentuk loop, dengan panjang 5, maka kita highlight.
CE sekarang adalah sisi terpendek yang tidak membentuk loop, dengan panjang 5, maka kita highlight.
885577991111776615159955AAGGFFEEDDCCBB
8
8
5
5
7
7
9
9
11
11
7
7
6
6
15
15
9
9
5
5
A
A
G
G
F
F
E
E
D
D
C
C
B
B
Sisi selanjutnya , DF dengan panjang 6, di highlight menggunakan metode yang samaSisi selanjutnya , DF dengan panjang 6, di highlight menggunakan metode yang sama
Sisi selanjutnya , DF dengan panjang 6, di highlight menggunakan metode yang sama
Sisi selanjutnya , DF dengan panjang 6, di highlight menggunakan metode yang sama
885577991111776615159955AAGGFFEEDDCCBB
8
8
5
5
7
7
9
9
11
11
7
7
6
6
15
15
9
9
5
5
A
A
G
G
F
F
E
E
D
D
C
C
B
B
Sisi terpendek berikutnya adalah AB dan BE, keduanya memiliki panjang 7, AB dipilih, dai di highlight, Sisi BD di Highlight merah, karena ini akan membentuk loop ABDSisi terpendek berikutnya adalah AB dan BE, keduanya memiliki panjang 7, AB dipilih, dai di highlight, Sisi BD di Highlight merah, karena ini akan membentuk loop ABD
Sisi terpendek berikutnya adalah AB dan BE, keduanya memiliki panjang 7, AB dipilih, dai di highlight, Sisi BD di Highlight merah, karena ini akan membentuk loop ABD
Sisi terpendek berikutnya adalah AB dan BE, keduanya memiliki panjang 7, AB dipilih, dai di highlight, Sisi BD di Highlight merah, karena ini akan membentuk loop ABD
885577991111776615159955AAGGFFEEDDCCBB
8
8
5
5
7
7
9
9
11
11
7
7
6
6
15
15
9
9
5
5
A
A
G
G
F
F
E
E
D
D
C
C
B
B
Proses berlanjut dengan meng- highlight ke sisi terpendek berikutnya, BE dengan panjang 7. akan lebih banyak sisi yang di highlight dengan merah dalam stage ini : BC, DE dan FEProses berlanjut dengan meng- highlight ke sisi terpendek berikutnya, BE dengan panjang 7. akan lebih banyak sisi yang di highlight dengan merah dalam stage ini : BC, DE dan FE
Proses berlanjut dengan meng- highlight ke sisi terpendek berikutnya, BE dengan panjang 7. akan lebih banyak sisi yang di highlight dengan merah dalam stage ini : BC, DE dan FE
Proses berlanjut dengan meng- highlight ke sisi terpendek berikutnya, BE dengan panjang 7. akan lebih banyak sisi yang di highlight dengan merah dalam stage ini : BC, DE dan FE
885577991111776615159955AAGGFFEEDDCCBB
8
8
5
5
7
7
9
9
11
11
7
7
6
6
15
15
9
9
5
5
A
A
G
G
F
F
E
E
D
D
C
C
B
B
Terakhir, proses berakhir dengan sisi EG dengan panjang 9, dan Minimum Spanning Tree telah ditemukanTerakhir, proses berakhir dengan sisi EG dengan panjang 9, dan Minimum Spanning Tree telah ditemukan885577991111776615159955AAGGFFEEDDCCBB
Terakhir, proses berakhir dengan sisi EG dengan panjang 9, dan Minimum Spanning Tree telah ditemukan
Terakhir, proses berakhir dengan sisi EG dengan panjang 9, dan Minimum Spanning Tree telah ditemukan
8
8
5
5
7
7
9
9
11
11
7
7
6
6
15
15
9
9
5
5
A
A
G
G
F
F
E
E
D
D
C
C
B
B
Cara Kerja :
Membuat sebuah Forest F (set dari Tree) yang tiap vertex dalam graf adalah Tree pemisah.
Membuat sebuah set S yang mengandung semua sisi di dalam graf.
While S tidak kosong :
Membuang sebuah sisi dengan bobot minimum dari S
Jika sebuah sisi menghubungkan dua Tree yang berbeda, kemudian menambahkan ini ke dalam Forest, mengkombinasikan dua Tree ke dalam 1 Tree
Dilain pihak membuang sisi tersebut Dalam terminasi dari algoritma ini, Forest hanya memiliki satu komponen dan membentuk sebuah Minimum Spanning Tree dari graf.
Implementasi
Source code utama yang berisi algoritma
Algoritma Prim
Graph.java
public void Prim( )
{
int i, j, k, x, y;
boolean[] RuteDilewati = new boolean[Nodes]; int[] predNode = new int[Nodes];
// dimulai pada node awal = 0 pada sebuah vertex
RuteDilewati[0] = true;
for ( k = 1; k < Nodes; k++ )
{
RuteDilewati[k] = false;
}
predNode[0] = 0;
printSeluruhRute( RuteDilewati );
for (k = 1; k < Nodes; k++)
{
x = y = 0;
for ( i = 0; i < Nodes; i++ )
for ( j = 0; j < Nodes; j++ )
{
if ( RuteDilewati[i] && !RuteDilewati[j] &&
Jarak[i][j] < Jarak[x][y] )
{
x = i;
y = j;
}
}
System.out.println("Jarak Min : (" +
+ x + "," +
+ y + ")" +
"Jarak = " + Jarak[x][y]);
predNode[y] = x;
RuteDilewati[y] = true;
printSeluruhRute( RuteDilewati );
System.out.println();
}
printRuteMin( predNode );
}
Algoritma Kruskal
Graph.cpp
void KruskalMST(struct Graph* graph){
int V = graph->V;
struct Edge result[V];
int e = 0;
int i = 0;
qsort(graph->edge, graph->E, sizeof(graph->edge[0]),
myComp);
struct subset *subsets = (struct subset*) malloc( V *
sizeof(struct subset));
for (int v = 0; v < V; ++v){
subsets[v].parent = v;
subsets[v].rank = 0;
}
while (e < V - 1) {
struct Edge next_edge = graph->edge[i++];
int x = find(subsets, next_edge.src);
int y = find(subsets, next_edge.dest);
if (x != y) {
result[e++] = next_edge;
Union(subsets, x, y);
}
}
printf("Following are the edges in the constructed MST\n");
for (i = 0; i < e; ++i)
printf("%d -- %d == %d\n", result[i].src, result[i].dest, result[i].weight);
return;
}
Screenshoot: tampilan hasil program
Algoritma Prim
Algoritma Kruskal
Analisis kompleksitas
Penentuan n
Algoritma Prim
n = 8.
Algoritma Kruskal
Pada algoritma kruskal ini kita menginputkan n = v-i
Basic operation & alasan pemilihan
Algoritma Prim
for ( i = 0; i < Nodes; i++ )
for ( j = 0; j < Nodes; j++ )
Alasan : Karena for i dan for j sering dieksekusi dalam program algoritma prim.
Algoritma Kruskal
While (e < V-1)
Alasan : eksekusi dilakukan berulang-ulang sesuai dengan nilai edge dan vertex yang diinputkan. Jika nilai yang diinputkan 5 maka eksekusi akan dilakukan 5 kali.
Proses memperoleh C(n)
Penentuan kelas OOG
Algoritma Prim
Cn=i=1 n-m.j=1n-m1
= i=1n-m1 (n-m-1+1)
= i=1n-m1 (n-m)
= n-m-1+1(n-m)
= n-mn-m
= n2-nm-nm-m2
= n2-2nm-m2
Tn=nn-m+1
Algoritma Kruskal
Best case : Cn = i=111
e= edge dan v = vertex
Dengan kondisi e = v-1 dapat ditulis e log v
Waktu untuk 2e untuk menemukan operasinya adalah = log v
Untuk operasi v-1= n
Sehingga total running time
T(n) = e log v + 2e log v + n
T(n) = (e+v) log n
Notasi asymptotic
Algoritma Prim
O(nn-m+1)
Algoritma Kruskal
Best case = O (1)
T (n) = O ((n+m)log n )
Catatan Dosen Pengampu
Kelas : TIF-L
Kelompok : 03
1
Pemilihan paper acuan
Jur
Int
Al>1
2
Review
Jud+Nam
Mslh Ut
Desc Al
3
Kompleksitas
N
Bo
C(n)
OOG
ASYM
4
Implementasi
Cde
Scrst
5
Lain2
Rap
Tep
Jumlah
Ini adalah sebuah graf berbobot yang asli, ini bukan sebuah Treekarena definisi sebuah Tree tidak memiliki sirkuit, dan diagramini memiliki sirkuit. Nama yang lebih benar untuk diagram iniadalah sebuah graf atau network. Nomer didekat busur adalahbobotnya. Tidak satupun dari titik sudut yang diberi highlight danvertex D dipilih sebagai starting point.Ini adalah sebuah graf berbobot yang asli, ini bukan sebuah Treekarena definisi sebuah Tree tidak memiliki sirkuit, dan diagramini memiliki sirkuit. Nama yang lebih benar untuk diagram iniadalah sebuah graf atau network. Nomer didekat busur adalahbobotnya. Tidak satupun dari titik sudut yang diberi highlight danvertex D dipilih sebagai starting point.(Ratih Kartika Dewi, S.T, M.Kom.)
Ini adalah sebuah graf berbobot yang asli, ini bukan sebuah Tree
karena definisi sebuah Tree tidak memiliki sirkuit, dan diagram
ini memiliki sirkuit. Nama yang lebih benar untuk diagram ini
adalah sebuah graf atau network. Nomer didekat busur adalah
bobotnya. Tidak satupun dari titik sudut yang diberi highlight dan
vertex D dipilih sebagai starting point.
Ini adalah sebuah graf berbobot yang asli, ini bukan sebuah Tree
karena definisi sebuah Tree tidak memiliki sirkuit, dan diagram
ini memiliki sirkuit. Nama yang lebih benar untuk diagram ini
adalah sebuah graf atau network. Nomer didekat busur adalah
bobotnya. Tidak satupun dari titik sudut yang diberi highlight dan
vertex D dipilih sebagai starting point.