13 0 825 KB
2. Jenis-jenis Graf Tertentu Ada beberapa graf khusus yang sering dijumpai. Beberapa diantaranya adalah sebagai berikut. a.
Graf Lengkap (Graf Komplit) Graf lengkap ialah graf sederhana yang setiap titiknya mempunyai
sisi ke semua titik lainnya atau semua titiknya bertetangga dengan semua titik lainnya. Graf lengkap dengan π titik dilambangkan dengan πΎπ .
πΎ1
πΎ2
πΎ3
πΎ4
Gambar 6. Graf lengkap πΎπ b. Graf Bipartisi Graf bipartisi πΊ adalah graf yang himpunan titiknya dapat dikelompokkan menjadi dua himpunan bagian π1 dan π2 , sedemikian sehingga setiap sisi di dalam πΊ menghubungkan sebuah titik di π1 ke sebuah titik di π2 , dan dinyatakan sebagai πΊ (π1 , π2 ). Dengan kata lain, setiap pasang titik π1 (demikian pula dengan titik-titik di π2 ) tidak bertetangga. Apabila setiap titik di π1 bertetangga dengan semua titik di π2 , maka πΊ (π1, π2 ) disebut sebagai graf bipartisi lengkap. Jika π1 terdiri dari π titik dan π2 terdiri dari π titik, maka graf bipartisi lengkap dilambangkan dengan πΎπ,π . π1
π2
π1
π2
(π)
(π)
Gambar 7. (a) graf bipartisi, (b) graf bipartisi lengkap πΎ2,2
13
c.
Graf Teratur (Graf Reguler) Graf yang setiap titiknya mempunyai derajat yang sama disebut graf
teratur atau graf reguler. Apabila derajat setiap titik adalah π, maka graf tersebut disebut sebagai graf teratur atau graf reguler derajat π atau dapat ditulis graf teratur-π (graf reguler-π). Jumlah sisi pada graf teratur adalah
ππ 2
.
Contoh graf teratur ditunjukkan di bawah ini.
Gambar 8. Graf teratur-3 d. Graf Sikel Graf sikel adalah graf sederhana yang setiap titiknya berderajat dua. Graf sikel dengan n titik dilambangkan dengan πΆπ . Contoh graf sikel ditunjukkan di bawah ini.
C3 e.
C4
C5
Graf Planar dan Graf Bidang Graf G disebut graf planar (planar graph) jika G dapat digambar
pada bidang datar sedemikan hingga sisi-sisinya tidak ada yang berpotongan kecuali mungkin pada titik-titik ujung dari sisi-sisi tersebut. Sedangkan graf bidang (plane graph) adalah graf yang digambar pada bidang datar sedemikan hingga sisi-sisinya tidak ada yang berpotongan kecuali mungkin pada titik-titik ujung dari sisi-sisi tersebut. Dengan demikian, graf planar adalah graf yang dapat digambar sebagai graf bidang. Graf bidang pasti graf planar tetapi sebaliknya tidak berlaku.
14
Gambar πΊ1 , πΊ2 , dan πΊ3 adalah graf planar, tetapi πΊ1 bukan graf bidang.
Perhatikan graf bidang G berikut. a e b
d c
f
Graf bidang G di atas membagi bidang menjadi 6 daerah yang masingmasing disebut βmukaβ (face), yaitu: muka a, muka b, muka c, muka d, muka e, dan muka f. Himpunan muka dari graf bidang G dinotasikan dengan πΉ(πΊ). Untuk graf G di atas himpunan mukanya adalah πΉ (πΊ ) = {π, π, π, π, π, π }. Banyaknya sisi di G yang membatasi suatu muka f adalah dari G disebut derajat muka f tersebut dan dinotasikan π(π). Jembatan (sisi pemutus) graf G dihitung dua kali dalam menghitung derajat muka. Sebuah sisi e di graf G disebut jembatan (sisi pemutus) jika penghapusan sisi e tersebut mengakibatkan subgraf G-e mempunyai komponen lebih banyak daripada graf G. Untuk graf G di atas derajat masing-masing muka adalah π (π) = 7, π (π) = 4, π (π ) = 3, π(π ) = 3, π(π) = 3, dan π (π ) = 4.
f.
Graf Euler dan Graf semi-Euler Sebuah sirkuit di graf G yang memuat semua sisi G disebut sirkuit
Euler. Jika graf G memuat sirkuit Euler, maka graf G disebut graf Euler.
15
Sebuah jejak-buka yang memuat semua sisi graf disebut jejak Euler. Graf G disebut graf semi-Euler jika G memuat jejak Euler.
Teorema 5 Misalkan G graf terhubung. Graf G Euler jika dan hanya jika setiap titik G berderajat genap.
Teorema 6 Misalkan G graf terhubung. Graf G semi-Euler jika dan hanya jika G memuat tepat dua titik berderajat ganjil.
Untuk mencari sirkuit Euler pada graf Euler G, dimulai dari sembarang titik v di G dan akan berakhir di titik v tersebut juga. Jejak Euler pada graf semi-Euler, berawal di sebuah titik berderajat ganjil dan berakhir di sebuah titik berderajat ganjil lainnya. Berikut contoh graf Euler dan graf semi-Euler.
G2
G1
Gambar 9. πΊ1 graf Euler dan πΊ2 graf semi-Euler g.
Graf Hamilton dan Semi-Hamilton Misalkan G adalah sebuah graf. Sebuah sikel yang memuat semua
titik di G disebut sikel Hamilton. Jika G memuat sikel Hamilton, maka G disebut graf Hamilton. Sebuah lintasan yang memuat semua titik di G disebut lintasan Hamilton. Sebuah graf G disebut graf semi-Hamilton jika graf G bukan graf Hamilton dan graf tersebut memuat lintasan Hamilton. Perhatikan tiga graf di bawah ini.
16
Graf πΊ1 tidak memuat lintasan Hamilton, πΊ2 memuat lintasan Hamilton tetapi tidak memuat sikel Hamilton dan πΊ3 memuat sikel Hamilton. Dengan demikian, πΊ2 adalah graf semi-Hamilton dan πΊ3 adalah graf Hamilton. h. Pohon Pohon (tree) adalah graf terhubung yang tidak memiliki sikel. Berikut adalah contoh-contoh pohon.
π1
π2
π3
π4
Sifat-sifat Pohon Misalkan G = (V, E) adalah graf sederhana dan banyak titiknya n buah. Pernyataan-pernyataan di bawah ini adalah ekivalen. 1) G adalah pohon. 2) Setiap pasang titik di G terdapat tepat satu lintasan. 3) G terhubung dan memiliki n β 1 buah sisi. 4) G tidak mengandung sikel dan memiliki n β 1 buah sisi. 5) G terhubung dan semua sisinya adalah jembatan.
Graf bobot (weighted graph) G adalah sebuah graf yang setiap sisinya dikaitkan dengan sebuah bilangan real. Bobot sisi e ditulis sebagai w(e). Bobot graf G, ditulis w(G), adalah jumlah bobot semua sisi di G. Graf bobot G pada Gambar 10 mempunyai bobot π€(πΊ ) = 2 + 3 + 2 + 1 = 8.
17
3
2
1 2
G Gambar 10. Graf bobot
Dari sebuah graf terhubung dapat diperoleh sebuah graf bagian yang memuat semua titik di G yang berupa pohon. Sebuah graf bagian yang memuat semua titik di G yang berupa pohon disebut pohon rentang (spanning tree). Graf pada Gambar 10 di atas kemungkinan pohon rentangnya adalah sebagai berikut.
3
2
1
3
2
1 2
T1
1 2
T2
T3
Masing-masing pohon rentang tersebut mempunyai bobot π€(π1 ) = 6, π€ (π2) = 5, dan π€(π3 ) = 6. Perhatikan bahwa pohon rentang π2 memiliki bobot minimal di antara pohon rentang-pohon rentang yang diperoleh dari G. Pohon rentang yang memiliki bobot minimal tersebut disebut pohon rentang minimal (minimum spanning tree). Untuk mendapatkan pohon rentang minimal dari sebuah graf bobot G di atas dengan cara: dicari semua pohon rentangnya, baru kemudian dihitung bobot masing-masing pohon rentang tersebut, dan yang punya bobot minimal itulah yang merupakan pohon rentang minimal. Cara mendapatkan pohon rentang minimal dengan cara seperti itu tentu tidak efektif dan efisen sebab membutuhkan pekerjaan dan waktu yang banyak. Untuk mencari sebuah pohon rentang minimal dari graf bobot G, pada bahasan ini akan digunakan dua algoritma, yaitu algoritma Kruskal dan algoritma Prim. Dengan menerapkan algoritma Kruskal atau algoritma Prim tersebut akan diperoleh sebuah pohon rentang minimal. Berikut penjelasan kedua algoritma itu. 18
Algoritma Kruskal Dalam algoritma ini, pertama pilih sisi di G yang memiliki bobot terkecil di antara sisi-sisi G yang bukan loop. Untuk menghindari sikel, dipilih dari sisi yang tersisa yang memiliki bobot terkecil yang tidak membentuk sikel dengan sisi yang telah terpilih. Ulangi lagi proses pengambilan sisi dengan bobot terkecil di antara sisi-sisi yang belum dipilih, asalkan tidak membentuk sikel dengan sisi yang telah terpilih. Jika graf tersebut memiliki π titik, proses tersebut dihentikan setelah memilih π β 1 sisi. Sisi-sisi tersebut membentuk graf bagian T yang tidak memiliki sikel dari G dan T adalah pohon rentang minimal dari G. Langkah-langkah tersebut dapat dituliskan sebagai berikut.
Algoritma Kruskal Langkah 1. Pilih π1 , sebuah sisi di G sehingga π€(π1 ) sekecil mungkin dan π1 bukan loop. Langkah 2. Jika sisi-sisi π1 , π2 , β¦ , ππ telah dipilih, lalu pilih sebuah sisi ππ+1, yang belum terpilih sedemikian sehingga (i) graf bagian
dari G yang dikonstruksi oleh sisi-sisi
π1 , π2 , β¦ , ππ+1 tidak memiliki sikel dan (ii) π€(ππ+1 ) adalah terkecil. Langkah 3. Jika G memiliki π titik, hentikan langkah tersebut setelah memilih π β 1 sisi. Jika belum terpilih π β 1, ulangi langkah 2.
Algoritma Prim Pada algoritma ini untuk menemukan pohon rentang minimal, pertama dipilih sebarang titik π£1 pada graf bobot G. Kemudian pilih satu sisi dengan bobot terkecil dari G yang bukan loop dan yang terkait dengan π£1 , misalnya π1 = π£1 π£2 . Kemudian pilih sisi dengan bobot terkecil di G yang terkait dengan π£1 atau π£2 tetapi titik ujung lain dari sisi tersebut adalah selain titik π£1 atau π£2 . Misalkan pilih sisi π2 = π£π π£3 dengan π β {1,2} tetapi π£3 β 19
π£1 , π£2 . Ulangi proses pengambilan sisi dengan bobot terkecil yang berujung di titik yang telah terpilih sebelumnya dan ujung lainnya dari sisi tersebut adalah titik dari G yang bukan ujung dari sisi yang sudah terpilih. Jika graf G memiliki n titik, dipilih sampai π β 1 sisi. Langkah-langkah algoritma Prim tersebut adalah sebagai berikut. Algoritma Prim Langkah 1. Pilih sebarang titik π£1 di G. Langkah 2. Pilih sebuah sisi π1 = π£1 π£2 di G sehingga π£2 β π£1 dan π1 memiliki bobot terkecil di antara sisi-sisi G yang terkait dengan π£1 . Langkah 3. Jika sisi π1 , π2 , β¦ , ππ telah dipilih dengan titik-titik ujung dari sisi-sisi tersebut adalah titik-titik π£1 , π£2 , β¦ , π£π+1 , selanjutnya pilih sisi ππ+1 = π£π π£π dengan π£π β {π£1 , π£2 , β¦ , π£π+1 } dan π£π β {π£1 , β¦ , π£π+1 } sedemikian sehingga ππ+1 memiliki bobot terkecil di antara sisi-sisi G yang salah satu ujung sisi tersebut di {π£1 , β¦ , π£π+1 }. Langkah 4. Hentikan langkah tersebut setelah π β 1 sisi telah dipilih. Jika tidak, ulangi langkah 3.
Contoh. Carilah sebuah pohon rentang minimal pada graf bobot G di bawah ini.
Penyelesian: Dengan menerapkan algoritma Kruskal atau Prim diperoleh sebuah pohon 20
rentang minimal T sebagai berikut.
Pohon rentang minimal T Bobot pohon rentang minimal T di atas adalah π€(π) = π€(π1 ) + π€(π2 ) + π€(π3 ) + π€ (π4 ) + π€(π5 ) = 2 + 1 + 1 + 3 + 3 = 10. Pada graf bobot G tersebut memuat bentuk pohon rentang minimal yang tidak tunggal. Untuk melancarkan penggunaan algoritma Kruskal atau Prim, coba Anda cari bentuk lainnya tersebut.
21