BAB 2 DEGREE CONSTRAINED MINIMUM SPANNING TREE Pada bab ini diberikan beberapa konsep dasar seperti beberapa definisi dan teorema sebagai landasan berfikir dalam melakukan penelitian ini dan akan mempermudah dalam hal pembahasan hasil utama pada bab berikutnya. Konsep dasar tersebut berkaitan dengan masalah yang dibahas dalam penelitian ini, yakni: konsep dasar graph, tree, dan degree constrained tree minimum spanning tree. 2.1 Konsep Dasar Graph Istilah baku graph diadopsi dari Vasudev, 2006. Suatu graph G =(V,E) merupakan himpunan objek V = {v 1,v 2,v 3,...} disebut verteks (disebut juga point atau node) dan himpunan E = {e 1,e 2,...} yang elemennya disebut edge (disebut juga line atau arc), sehingga untuk setiap edge e m dikenal sebagai penghubung pasangan verteks (v i,v j ). Verteks v i, v j yang dihubungkan oleh edge e m disebut verteks ujung dari e m. Suatu graph dapat direpresentasikan secara grafis dengan cara setiap verteks direpresentasikan sebagai titik dan setiap edge v i v j sebagai garis dari titik v i ke titik v j. Contoh 2.1a: Berikut diberikan representasi dari graph. v 2 v 1 v 4 v 3 Gambar 2.1 : Graph Dari gambar 2.1a dapat diketahui bahwa V (G) ={vuniversitas 1,v 2,v 3,v 4 } Sumatera dan E(G) Utara
5 = {v 1 v 1,v 1 v 2,v 1 v 3,v 1 v 4,v 2 v 3,v 2 v 4,v 3 v 3,v 3 v 4 }. Berdasarkan definisi, edge merupakan penghubung pasangan verteks v j,v k. Untuk suatu edge yang memiliki kedua verteks ujung yang sama disebut loop. Dari gambar 2.1a dapat dilihat bahwa edge v 1 dan v 3 merupakan loop. Jika untuk setiap edge pada graph G diberi suatu nilai atau bobot W = {w 1,w 2,..., w m }, maka graph tersebut dikatakan graph berbobot. Contoh 2.1b: Berikut diberikan representasi dari graph berbobot. v 2 e 4 = w 4 v 5 e 1 = w 1 e 5 = w 5 e 3 = w 3 v 1 e 2 = w 2 v 3 Gambar 2.2 : Graph Berbobot Graph yang tidak memiliki loop ataupun edge ganda disebut graph sederhana. Graph sederhana, dimana setiap verteks dihubungkan tepat satu edge ke verteks lainnya disebut graph lengkap. Contoh 2.1c: Berikut diberikan representasi dari gaph sederhana dan graph lengkap. v 1 v 2 v 1 v 2 v 4 v 3 v 5 v 3 a v 4 b Gambar 2.3 : (a)graph Lengkap dan (b) Graph Sederhana
6 2.1.1 Incident dan Degree Ketika verteks v i merupakan verteks ujung dari beberapa edge e j, v i dan e j dikatakan incident satu sama lain. Dua edge nonparalel dikatakan adjacent jika mereka incident pada verteks yang sama. Dengan cara yang sama, dua verteks dikatakan adjacent jika mereka merupakan verteks ujung dari edge yang sama. Sebagai contoh pada gambar 2.1a dapat dilihat bahwa v 1 v 2, v 1 v 3, v 1 v 4 merupakan incident pada v 1. Adjacent untuk v 1 adalah v 2, v 3, v 4. Sedangkan, v 1 dan v 3 adjacent untuk diri mereka sendiri. Jumlah edge incident dari suatu verteks v i, dengan edge yang merupakan loop dihitung 2 disebut degree dari verteks tersebut. Degree dari suatu verteks dinotasikan dengan deg G (v i ) atau deg v i atau d(v i ) atau d(v). Verteks yang tidak memiliki edge incident disebut verteks terisolasi. Sedangkan verteks yang berdegree satu disebut verteks pendent atau verteks ujung. Contoh 2.1.1: Berikut diberikan representasi dari verteks ujung dan verteks terisolasi v 1 v 2 v 5 v 4 v 3 Gambar 2.4 : verteks ujung dan verteks terisolasi Adapun degree dari setiap verteks pada gambar 2.3, d(v 1 ) = 1, disebut pendant verteks, dan d(v 2 )=3,d(v 3 )=2,d(v 4 ) = 3, dan d(v 5 ) = 0 karena tidak memiliki edge incident (v 5 disebut verteks terisolasi). Teorema 2.1 Untuk sebarang graph jumlah degree dari seluruh verteks G sama dengan dua kali jumlah edge di G.
7 Bukti: Diberikan graph G dengan n verteks v 1,v 2,..., v n dan e edge. Karena setiap edge memiliki tepat dua verteks v i dan v j (untuk loop, i = j), maka edge memberikan kontribusi 2 degree, yakni 1 degree untuk verteks v i dan 1 degree untuk verteks v j. Hal ini mengakibatkan penjumlahan degree dari seluruh verteks di G adalah dua kali dari edge di G, yaitu n d(v i )=2e i=1 Teorema 2.2 Banyak verteks berdegree ganjil pada suatu graph selalu genap. Bukti: Dari teorema 2.1, diketahui bahwa n d(v i )=2e i=1 Jika verteks yang berdegree ganjil dan berdegree genap dipisahkan, maka persamaan diatas dapat dibentuk menjadi n i=1 d(v i )= even d(v j )+ odd d(v k ) Karena n i=1 d(v i) adalah genap, dan even d(v j) juga genap, maka odd d(v k) juga suatu bilangan genap. Karena d(v k ) adalah ganjil, maka syarat agar jumlah seluruh d(v k ) genap, banyaknya v k haruslah genap. Hal ini membuktikan bahwa banyak verteks berdegree ganjil pada suatu graph selalu genap. 2.1.2 Walk, Path, dan Cycle Diberikan graph G dengan verteks v dan w. Sebuah walk dengan panjang m dari v ke w didefinisikan sebagai barisan edge dan dituliskan sebagai berikut: (v 0,v 1 ), (v 1 v 2 ),..., (v m 1 v m ) untuk m>0, v 0 = v dan v m = w. Sebuah walk biasa dinotasikan dengan v w w dan panjangnya dinotasikan dengan l(w).
8 Sebuah trail dari v ke w adalah walk dari v ke w tanpa perulangan edge. Sebuah path didefinisikan sebagai sebuah trail tanpa perulangan verteks. Path tertutup adalah path yang dimulai dan diakhiri dengan verteks yang sama. Sebuah cycle merupakan sebuah path tertutup, dan sebuah loop merupakan sebuah cycle dengan panjang 1. Contoh 2.1.2: Sebagai contoh masing-masing untuk walk, trail, path, cycle, dan loop dapat dilihat pada gambar berikut: v 1 v 2 v 3 v4 v 5 Gambar 2.5 : (5,8) Graph a. v 1 v 3 v 5 v 3 v 2 v 4 disebut walk. b. v 1 v 2 v 3 v 5 v 2 v 4 disebut trail, walk tanpa perulangan edge. c. v 1 v 2 v 4 v 5 disebut path, walk tanpa perulangan edge dan verteks. d. v 1 v 2 v 4 v 5 v 3 v 1 disebut cycle, Karena adanya perulangan pada verteks awal dan akhir disebut juga path tertutup. e. v 1 v 1 dan v 3 v 3 disebut loop, cycle dengan panjang 1.. 2.1.3 Subgraph Suatu subgraph dari G adalah graph yang memiliki verteks dan edge yang ada di G. Jika G dan T merupakan dua graph dengan himpunan verteks V (T ),
9 V (G) dan himpunan edge E(T ) dan E(G) sehingga V (T ) V (G) dan E(T ) E(G), maka T disebut subgraph G atau G disebut supergraph T. Contoh 2.1.3: Berikut diberikan representasi dari subgraph G. v 1 v 2 v 3 v 1 v 2 v 3 G : T : v 4 v 6 v 5 v 5 v 6 Gambar 2.6 : (G) Graph dan (T ) Subgraph Berdasarkan definisi, dapat dikatakan bahwa: 1. Setiap graph merupakan subgraph itu sendiri. 2. Sebuah subgraph dari subgraph G merupakan subgraph G. 3. Sebuah verteks tunggal di G merupakan subgraph G. 4. Sebuah edge tunggal di G, bersama dengan verteks ujungnya, juga merupakan subgraph G. 2.1.4 Graph Terhubung, Graph Tidak Terhubung, dan Komponen Diberikan graph G dengan v dan w merupakan dua verteks di G. Graph G dikatakan terhubung jika dan hanya jika diberikan sebarang dua verteks v dan w di G sedemikian hingga terdapat paling sedikit satu path dari v ke w. Selebihnya, G dikatakan tidak terhubung. Pada gambar 2.6 menunjukkan bahwa (a) adalah graph terhubung karena terdapat path dari satu verteks ke verteks yang lainnya, dan (b) adalah graph tak berhubung karena tidak terdapat path dari v 1 ke v 3. Dari gambar 2.3 dapat kita lihat bahwa graph tersebut terdiri dari dua bagian. Bagian Universitas pertama Sumatera adalah Utara
10 verteks v 1, v 2 dengan edge v 1 v 2, sedangkan bagian kedua adalah verteks v 3,v 4, dan v 5, dengan edge v 3 v 4, v 3 v 5, dan v 4 v 5. Masing-masing bagian ini disebut komponen. Contoh 2.1.4: Berikut diberikan representasi dari 2 buah graph terhubung dan tidak terhubung. v 5 v 5 v 1 v 2 v 1 v 2 v 8 v 9 v 4 v 3 v 4 v 3 v 6 v 7 a b Gambar 2.7 : (a) Graph terhubung dan (b) Graph tak berhubung Teorema 2.3 Suatu graph G dikatakan tidak terhubung jika dan hanya jika verteks himpunan V dapat dibagi ke dalam dua komponen tak kosong, himpunan bagian V 1 dan V 2 terpisah, sehingga tidak ada edge di G yang memiliki satu verteks ujung di dalam himpunan bagian V 1 begitu juga di himpunan bagian V 2. Bukti: Andaikan komponen ada. Anggap dua sembarang verteks a dan b di G, sehingga a V 1 dan b V 2. Tidak ada path yang bisa diantara verteks a dan b; sebaliknya terdapat paling sedikit satu edge dimiliki verteks ujung V 1 dan lainnya di V 2. Akibatnya jika komponen ada, G tidak terhubung. Dan sebaliknya, andaikan G menjadi graph tidak terhubung. Anggap sebuah verteks a di G. Andaikan V 1 menjadi himpunan seluruh verteks yang dihubungkan oleh path ke a. Karena G tidak terhubung, maka V 1 tidak memasukkan semua verteks G. Selebihnya verteks akan berbentuk(tak kosong) himpunan V 2. Tidak ada verteks di V 1 yang dihubungkan ke sebarang V 2 dengan sebuah edge. Hal ini berakibat adanya komponen.
11 Teorema 2.4 Jika suatu graph memiliki tepat dua verteks berdegree ganjil, pasti terdapat path yang menyertai dua verteks tersebut. Bukti: Andaikan G sebuah graph dengan seluruh verteksnya berdegree genap kecuali verteks v 1 dan v 2, yang berdegree ganjil. Berdasarkan teorema 2.2, hal ini berlaku untuk seluruh graph, oleh karenanya untuk setiap komponen graph tak terhubung, tak ada graph yang bisa memiliki jumlah ganjil dari verteks ganjil. Karenanya, di graph Gv 1 dan v 2 harus berada pada komponen yang sama, akibatnya pasti ada path diantara mereka. 2.1.5 Bridge Suatu edge v i v j pada graph G terhubung dikatakan bridge jika penghapusan edge v i v j mengakibatkan G menjadi tidak terhubung. Contoh 1.1.5: Berikut diberikan representasi dari bridge. v 1 v 2 v 6 v 7 v 4 v 3 v 5 v 8 v 9 Gambar 2.8 : Bridge v 3 v 5 merupakan bridge karena penghapusan edge v 3 v 5 akan menyebabkan graph menjadi tak terhubung. 2.2 Tree Suatu tree merupakan graph terhubung tanpa adanya cycle. Untuk graph tak terhubung dan tanpa cycle disebut forest. Suatu verteks tunggal juga termasuk tree yang disebut trivial tree.
12 Contoh 2.2a: Berikut diberikan representasi dari tree. a b c Gambar 2.9 : Tree Teorema 2.5 Hanya ada satu path antara setiap pasangan verteks di tree T. Bukti: Karena T terhubung, maka terdapat paling sedikit satu path diantara semua pasangan verteks di T. Sekarang anggap bahwa diantara dua verteks a dan b di T terdapat path yang berbeda. Penggabungan dari dua path yang berbeda akan menghasilkan cycle, karenanya T bukanlah tree. Sebaliknya, Teorema 2.6 Jika pada graph G hanya ada satu path diantara setiap pasangan verteks, maka G merupakan tree. Bukti: Adanya path diantara setiap pasangan verteks menjamin bahwa G terhubung. Suatu cycle di G (dengan dua atau lebih verteks) secara tidak langsung menyatakan bahwa terdapat paling sedikit satu pasangan verteks a, b sehingga terdapat dua path yang berbeda antara a dan b. Karena G hanya memiliki satu path diantara setiap pasangan verteks, maka G tidak bisa memiliki cycle. Oleh karena itu, G merupakan tree. Teorema 2.7 Suatu tree dengan n verteks memiliki n 1 edge. Bukti: Hasilnya akan diperlihatkan dengan induksi. Andaikan e k menjadi edge di T dengan verteks ujung v i dan v j, berdasarkan teorema 2.3, Universitas tidak ada Sumatera path lain Utara
13 diantara v i dan v j, kecuali e k. Oleh karenanya jika e k dihapus, maka T menjadi graph tak terhubung. Selanjutnya, T e k akan membentuk dua komponen, dan karena tidak ada cycle di T, maka masing-masing komponen tersebut merupakan tree. Kedua tree t 1 dan t 2, masnning-masing memiliki lebih sedikit dari n verteks, oleh karenanya dengan induksi, masing-masing memiliki edge lebih sedikit dari jumlah verteks di dalamnya. Dengan demikian T e k mengandung n 2 edge. Hal ini berakibat T memiliki tepat n 1 edge. Teorema 2.8 Untuk sebarang graph terhubung dengan n verteks dan n 1 edge merupakan tree. Bukti: Berdasarkan definisi graph terhubung, terdapat paling sedikit satu path di G, berdasarkan teorema 2.3 tidak ada path lain diantara v i dan v j, kecuali e k, berdasarkan definisi suatu tree merupakan graph terhubung tanpa adanya cycle. karenanya berdasarkan teorema 2.5, suatu tree dengan n verteks memiliki n 1 edge. Hal ini berakibat graph terhubung dengan n verteks dan n 1 edge merupakan tree. Teorema 2.9 Suatu graph merupakan tree jika dan hanya jika terhubung. Bukti: Andaikan graph G merupakan tree, berdasarkan definisi suatu tree merupakan graph terhubung tanpa adanya cycle. Andaikan G tidak terhubung, maka berdasarkan teorema 2.1 graph bukanlah tree. Hal ini berakibat bahwa untuk graph yang merupakan tree, haruslah graph terhubung. Teorema 2.10 Suatu graph G dengan n verteks, n 1 edge, dan tanpa cycle adalah terhubung. Bukti: Andaikan bahwa ada sedikit cycle graph G dengan n verteks dan n 1 edge yang tak terhubung. Pada kasus ini, G akan mengandung Universitas duasumatera atau lebih Utara
14 sedikit komponen cycle. Tanpa kehilangan sifat umumnya, andaikan G memiliki komponen g 1 dan g 2. Lalu tambahkan sebuah edge e dintara suatu verteks v 1 di g 1, dan v 2 di g 2. Karena tidak ada path diantara v 1 dan v 2 di G, tambahkan e tanpa membentuk cycle. Dengan demikian G e memiliki cycle sedikit, graph terhubung dari n verteks dan n edge, yang tidak mungkin trejadi. Hal ini berakibat graph G dengan n verteks, n 1 edge, dan tanpa cycle adalah terhubung. Berdasarkan teorema-teorema diatas, dapat disimpulkan bahwa suatu graph G dengan n verteks disebut tree, jika: 1. G terhubung dan tanpa cycle, atau 2. G terhubung dan memiliki n 1 edge, atau 3. G tanpa cycle dan memiliki n 1 edge, atau 4. Tepat terdapat satu path diantara setiap pasangan verteks di G, atau 5. G paling tidak merupakan graph terhubung. 2.2.1 Verteks Ujung dalam Tree Verteks ujung merupakan verteks dengan jumlah degree adalah 1. Teorema 2.11 Pada sebarang tree (dengan dua atau lebih verteks), terdapat paling sedikit dua verteks ujung. Bukti: Karena tree yang memiliki n verteks dan n 1 edge, maka 2(n 1) degree terbagi diantara n verteks. Karenanya tidak akan bisa ada verteks yang tidak memiliki degree, paling tidak harus memiliki dua verteks yang berdegree 1 dalam degree. Tentu saja ini hanya berlaku jika n 2. 2.2.2 Spanning tree Suatu tree T dikatakan spanning tree dari graph G terhubung, jika T adalah suatu
15 subgraph G dan T mengandung seluruh verteks G. Dengan kata lain, T dikatakan spanning tree jika T terhubung, mengandung n verteks G dan n 1 edge. Contoh 2.2.2: Berikut diberikan representasi dari spanning tree. G : T 1 : T 2 : T 3 : Gambar 2.10 : Spanning tree dari G Dari gambar 2.9, untuk (6,7) graph menghasilkan spanning tree dengan 6 verteks dan 5 edge. Untuk menemukan spanning tree dari graph G terhubung dapat dilakukan dengan cara yang sederhana. Jika G tidak memiliki cycle, maka G merupakan spanning tree itu sendiri. Jika G memiliki cycle maka hapus semua edge yang membentuk cycle, dengan G masih terhubung. Proposisi 2.12 Setiap graph terhubung memiliki paling sedikit satu spanning tree. Bukti: Andaikan G adalah suatu graph terhubung. Jika G bebas cycle, maka G itu sendiri merupakan spanning tree. Jika tidak, G memiliki paling sedikit satu cycle C 1. Dengan teorema 1.8 subgraph G tetap terhubung meski satu edge C 1 dihapus. Jika subgraph bebas cycle, maka subgraph tersebut merupakan spanning tree. Jika tidak, maka paling sedikit ada satu cycle di C 2, dan seperti sebelumnya, hapus edge di C 2 untuk memperoleh spanning tree. Jika tidak, lakukan seperti sebelummya hingga diperoleh subgraph T dari G yang terhubung dan bebas cycle. T juga mengandung seluruh verteks G karena tidak ada verteks Universitas di G yang Sumatera dihapus. Utara
16 Oleh karenanya T merupakan spanning tree untuk G. 2.3 Degree Constrained Minimum Spanning Tree Andaikan G merupakan graph terhubung, T merupakan subgraph dari G, d T (v i ) merupakan degree dari verteks v i yang ada di T, dan b i merupakan batasan degree di T. Degree constrained spanning tree T adalah menemukan spanning tree T di G, sehingga d T (v i ) b i, untuk setiap verteks v i di T. Contoh 1.2.4 Berikut diberikan graph G dimana T merupakan DCST dari G. T 1 : G d T (v i ) 2 T 2 : T 3 : d T (v i ) 3 d T (v i ) 4 Gambar 2.11 : DCST dari G Andaikan G =(V,E) adalah suatu graph berbobot terhubung tak berarah dimana V = {v 1,v 2,..., v n } adalah himpunan verteks dan E = {e 1,e 2,..., e m } himpunan edge di G. Andaikan W = {w 1,w 2,..., w m } mewakili bobot dari setiap edge, dimana bobot merupakan bilangan real nonnegatif. Subgraph dari G bisa dideskripsikan menggunakan vektor X = {x 1,x 2,..., x m }, dimana setiap element
17 x i didefenisikan oleh: 1, jika edge terpilih x i = 0, jika tidak terpilih. Andaikan T menjadi subgraph G, T dikatakan spanning tree dari G jika T terhubung, mengandung seluruh verteks G, dan tidak cycle. Kemudian anggap d(v i ) degree dari verteks v i di G dan K(v i ) himpunan degree pada G serta b i merupakan batasan degree d T (v i )dit, permasalahan degree constrained minimum spanning tree dapat diformulasikan ke dalam program integer sebagai berikut: Fungsi Tujuan: Kendala: Min z(x) = m w i x i i=1 m x i = V 1 (1) i=1 m x i N 1, N V, N 3 (2) i=1 x i K(v i ) x i b i, 1 b i V 1,i=1, 2,..., n (3) x i {0, 1}, x i E (4) Dari formulasi diatas, kendala pertama menyatakan bahwa hanya ada n 1 edge yang terpilih, karenanya kendala kedua menjamin bahwa edge yang diperoleh akan menghubungkan seluruh verteks tanpa terjadi cycle, sedangkan kendala ketiga merupakan batas degree yang dikehendaki. Untuk menyelesaikan DCMST yang diformulasikan diatas, maka untuk graph lengkap akan ada 2 n 1 ( n 2) kendala. Bagaimanapun, untuk n = 30, cara ini sangat tidak praktis. Misalnya untuk graph lengkap dengan 30 verteks akan ada 2 30 1 ( ) 30 = 2 1, 07 10 9 kendala. Jika untuk setiap Universitas kendala Sumatera yang ada Utara
18 dapat ditemukan dalam sepersepuluh detik, maka paling tidak akan dibutuhkan waktu 3,4 tahun untuk dapat menuliskan seluruh kendala sebelum perhitungan dilakukan. Pada dasarnya persoalan DCMST merupakan perkembangan dari permasalahan minimum spanning tree dengan syarat memenuhi batasan degree yang diberikan. Karenanya algoritma yang biasa digunakan untuk menyelesaikan minimum spanning tree dapat pula digunakan untuk menyelesaikan permasalahan DCMST. Salah satunya adalah algoritma Kruskal. Ning, Ma, dan Xiong (2008) menggunakan algoritma Kruskal untuk menyelesaikan permasalahan DCMST dengan terlebih dahulu menggunakan teknik reduksi untuk mengurangi ukuran graph dengan cara menghilangkan edge yang dianggap tidak perlu. Algoritma Kruskal pertama kali diperkenalkan pada tahun 1956 oleh Joseph Kruskal untuk menyelesaikan minimum spanning tree. Algoritma Kruskal ditulis kembali pada tahun 1957 oleh Loberman dan Weinberger, namun pencantuman nama mereka ditolak (Erickson, 2011). Pada algoritma Kruskal, awalnya seluruh edge diurutkan mulai bobot terkecil hingga terbesar. Lalu pemilihan edge dimulai dari bobot yang terkecil tersebut. Seluruh verteks v i yang ada di G dimasukkan ke T tanpa memasukkan edge, dengan kata lain pada awalnya tidak ada edge di T. Karena pemilihan edge berdasarkan nilai dari bobot setiap edge, maka pada prosesnya akan dihasilkan beberapa tree (forest). Untuk setiap edge (v j,v k ) yang telah terurut dilakukan hal berikut, jika verteks v j dan v k berada pada dua tree yang berbeda, maka tambahkan (v j,v k )keforest, kombinasikan dua tree ke dalam tree tunggal. Proses dihentikan jika edge (v j,v k ) tepat berjumlah V 1.
19 Berikut diberikan algoritma Kruskal(Erickson, 2011): KRUSKAL (V, E): Mulai: 1. Urutkan e i E berdasarkan ukuran bobot 2. T (V, ) 3. untuk setiap verteks v i V MASUKKANHIMPUNAN(V ) 4. untuk i 1ke E a. (v j,v k ) tandai edge ke i di E b. jika PENEMUAN(v j ) PENEMUAN(v k ) GABUNGKAN(v j,v k ) tambahkan (v j,v k )ket c. jika (v j,v k ) = V 1 hasil T Akhir Waktu terburuk yang diperlukan algoritma Kruskal untuk melakukan proses dari tahap awal hingga menghasilkan minimum spanning tree adalah O(E log V ). Teorema 2.13 Untuk graph G berbobot terhubung, algoritma Kruskal menghasilkan minimum spanning tree. Bukti: Andaikan G graph berbobot terhubung dengan p edge, dan andaikan T subgraph yang dihasilkan oleh algoritma Kruskal. Pasti, T merupakan spanning tree G (karenanya memiliki p 1 edge), katakanlah: E(T )={e 1,e 2,..., e p 1 }. dimana w(e 1 ) w(e 2 )... w(e p 1 ). Sehingga bobot T adalah: p 1 w(t )= w(e i ). i=1
20 Andaikan sebaliknya, bahwa T bukan merupakan minimum spanning tree. Maka di G masih terdapat minimum spanning tree, pilih salah satu, katakanlah H yang memiliki jumlah edge paling mirip dengan T. Ini berarti tree H dan T tidak identik. Jadi, terdapat paling sedikit satu edge di T yang tidak ada di H. Andaikan e i (1 i p 1) menjadi edge pertama T yang tidak di H, dan definisikan G 0 = H + e i, maka G 0 memiliki tepat satu cycle C. Karena T tidak cycle, maka terdapat e 0 di C yang tidak ada di T. Graph T 0 = G 0 e 0 juga spanning tree di G dan w(t 0 )=w(h)+w(e i ) w(e 0 ) Karena w(h) w(t 0 ), maka w(e 0 ) w(e i ). Oleh algoritma Kruskal, e i merupakan edge dengan bobot paling minimum sehingga {e 1,e 2,..., e i 1 } {e i } tidak cycle. Bagaimanapun {e 1,e 2,..., e i 1,e 0 } adalah subgraph H dan tidak cycle, sehingga w(e i ) = w(e 0 ). Hal ini berakibat w(t 0 ) = w(h), yang secara tidak langsung menyatakan bahwa T 0 juga minimum spanning tree G. Akan tetapi T 0 memiliki lebih banyak edge yang sama dengan T daripada H dengan T, yang kontradiksi dengan asumsi.. Karena permasalahan dari DCMST merupakan permasalahan menemukan spanning tree T di G dengan total panjang edge minimum dan degree dari setiap verteks memenuhi batas maksimum yang diberikan, maka untuk menyelesaikan DCMST dengan algoritma Kruskal perlu dilakukan modifikasi.