Kelompok 1 Anggota kelompok : Destia Anisya Ramdani (1710631140047) Nabila Aulia Gunanti (1710631140129) Nia fitriyah pangestu (1710631140132) Mata Kuliah : Sistem Transfortasi dan Distribusi Kelas :A GRAPH THEORY 2.1 Graphs and Multigraphs Graph G adalah tupel yang terdiri dari himpunan terbatas V simpul dan himpunan E tepi berhingga dimana setiap sisi adalah sepasang simpul yang tidak berurutan. Dua simpul yang terkait dengan sebuah tepi e disebut ujung-ujung dari e. Biasanya sering disimbolkan dengan (u, v), tepi di antaranya dua simpul u dan v. Kita juga menyatakan himpunan simpul dari graph G dengan V (G) dan himpunan tepi G oleh E (G). Sebuah simpul dari sebuah graph juga disebut sebagai simpul dari sebuah graph. Graph G biasanya digambarkan dengan merepresentasikan setiap titik dari G dengan sebuah titik atau sebuah lingkaran kecil dan setiap tepi G oleh ruas garis atau kurva di antara dua ujung ujungnya. Misalnya, Gambar 2.1 merepresentasikan grafik G di mana V (G) = {v 1, v2,. . . , v11} dan E (G) = {e1, e2,. . . , e17}. Kami sering menunjukkan jumlah simpul dari sebuah grafik G dengan n dan jumlah tepi G dengan m; yaitu, n = | V (G) | dan m = | E (G) |. Ada dua notasi yang akan digunakan yaitu n dan m untuk menunjukkan jumlah simpul dan jumlah tepi grafik kecuali jika timbul kebingungan. Jadi n = 11 dan m = 17 untuk grafik pada Gambar 2.1. Gambar 2.1 Simple graph dengan 11 simpul dan 17 sisi. Loop adalah tepi yang simpul ujungnya sama. Multiple edges adalah tepi dengan pasangan simpul-ujung yang sama. Jika grafik G tidak memiliki loop atau banyak sisi, maka G disebut graph sederhana (Simple Graph); jika tidak, ini disebut multigraph. Graph dalam Gambar 2.1 adalah graph sederhana (Simple Graph) karena tidak memiliki loop atau banyak sisi (Multiple edges). Di samping itu, graph pada Gambar 2.2 berisi satu lingkaran e5 dan dua set Multiple edges {e2, e3, e4} dan {e6, e7}. Gambar 2.2 Multigraph. Graph disebut sebagai directed graph atau digraph jika setiap sisi diasosiasikan dengan a arah, seperti yang diilustrasikan pada Gambar 2.3 (a). Seseorang dapat menganggap tepi terarah sebagai satu arah. Dengan demikian, kita dapat menganggap graph tak berarah sebagai graph di mana setiap sisi diarahkan di kedua arah. Kami menyebut graph dengan jika bobot (weighted graph) diberikan ke setiap simpul atau ke setiap sisi. Gambar 2.3 (b) mengilustrasikan graph tepi-tertimbang (edge-weighted graph) di mana bobot ditetapkan ke setiap tepi. Gambar 2.3 (a) Directed graph dan (b) edge-weighted graph. 2.2 Adjacency, Incidence, and Degree Misalkan e = (u, v) adalah sisi dari graph G. Kemudian dikatakan dua simpul u dan v berbatasan (Adjacency) dengan G, dan sisi e dikatakan bersisian dengan simpul u dan v simpul u disebut juga neighbor v di G dan sebaliknya. Pada graph di Gambar 2.1, simpul v1 dan v3 berdekatan; tepi e1 bersisian dengan simpul v1 dan v3. neighbor dari simpul v1 di G adalah v2, v3 v6, v9, dan v11. Derajat (degree) puncak v dalam graph G, dilambangkan dengan deg(v) atau d(v), adalah bilangan edge bersisian dengan v dalam G, dengan setiap loop pada v dihitung dua kali. Derajat dari simpul v1 pada grafik Gambar 2.1 adalah 5. Demikian pula dengan derajat dari simpul v 5 di Grafik Gambar 2.2 juga 5. Karena derajat dari suatu titik sudut menghitung tepi-tepi yang datangnya, maka jelaslah bahwa penjumlahan tersebut dari derajat semua simpul dalam graph terkait dengan jumlah total tepi pada graph. Faktanya lemma berikut ini, populer dengan sebutan “Degree-sum Formula” menunjukkan bahwa menjumlahkan derajat dari setiap simpul dari sebuah graph dihitung setiap tepi graph tepat dua kali. Lemma 2.2.1 (Degree-sum Formula) Misalkan G = (V, E) adalah graph dengan tepi m. ∑ ( ) Bukti Setiap sisi nonloop bersisian dengan tepat dua simpul berbeda dari G. Pada sebaliknya, setiap tepi loop dihitung dua kali dalam derajat simpul datangnya di G. Jadi, setiap sisi, apakah itu loop atau tidak, memberikan kontribusi dua untuk penjumlahan dari derajat simpul G. Lemma di atas, menurut Euler (1736), adalah alat penting dari teori graph dan kadangkadang disebut sebagai " First Theorem of Graph Theory" atau "Handshaking Lemma." Ini menyiratkan bahwa jika beberapa orang berjabat tangan, maka jumlah tangan terguncang harus bahkan karena setiap jabat tangan melibatkan tepat dua tangan. Pengikut akibat wajar langsung dari degree-sum formula. Lemma 2.2.2 Jumlah simpul ganjil dalam graph adalah bilangan genap. Bukti Misalkan G adalah graph dengan m sisi. Misalkan x adalah jumlah dari derajat genap simpul dan y adalah jumlah dari derajat simpul berderajat ganjil. Oleh Lemma 2.2.1 x + y = 2m. Karena x adalah jumlah dari bilangan bulat genap, x genap, dan karenanya y = 2m – x juga merupakan bilangan bulat genap. Karena y adalah jumlah dari bilangan bulat ganjil, jumlah penjumlahannya jumlahnya harus genap. Jadi, jumlah simpul ganjil harus genap. 2.1.1 Maximum and Minimum Degree Derajat maksimum (maximum degree) dari graph G, dilambangkan dengan (G), adalah nilai maksimum di antara derajat dari semua simpul G, yaitu, (G) = ( ) deg(v). Demikian pula, kami mendefinisikan derajat minimum (minimum degree) graph G dan menunjukkannya dengan δ (G), yaitu, δ (G) = ( ) deg(v). Maximum and minimum degree dari graph pada Gambar 2.1 adalah 5 dan 1, masing-masing. Misalkan G adalah graph dengan n simpul dan m sisi. Kemudian dengan rumus derajat-jumlah, derajat rata-rata dari sebuah simpul di G = 2.1.2 Regular Graphs dan karenanya δ (G) ≤ ≤ (G). Jika semua simpul pada graph G memiliki derajat yang sama, maka kita menyebut G graph beraturan (regular graph). Kita menyebutnya graph beraturan k jika derajat persekutuannya adalah k. Gambar 2.4 mewakili beberapa regular graph. Hanya graph dengan himpunan tepi kosong (memiliki himpunan simpul tidak kosong) 0-regular. Ini disebut null graph. Demikian pula, graph 1-reguler terdiri dari sekumpulan tepi sedemikian rupa sehingga tidak ada dua sisi yang bersisian dengan simpul yang sama. Graph yang terdiri dari sebuah daftar simpul sedemikian rupa sehingga setiap pasangan simpul yang berurutan berdekatan satu sama lain dan simpul pertama juga berdekatan dengan simpul terakhir, seperti yang diilustrasikan pada Gambar 2.4 (a), adalah graph 2-reguler. Graph seperti itu disebut siklus (cycle) atau siklus sederhana (simple cycle). Graph yang merupakan kumpulan dari siklus sederhana juga merupakan graph 2-reguler. Graph 3-reguler juga disebut cubic graph. Graph pada Gambar 2.4 (b) sebuah cubic graph. Graph khusus ini juga dikenal sebagai "Petersen graph" setelah nama Julius Petersen, yang membangunnya pada tahun 1898. Graph ini memiliki 10 simpul dan 15 sisi. Simpul graph Petersen dapat diberi label oleh dua subset elemen dari himpunan {1, 2, 3, 4, 5} sedemikian rupa sehingga label dari dua simpul yang berdekatan terputusputus, seperti yang diilustrasikan pada Gambar 2.5. Grafik Petersen menunjukkan beberapa properti yang menarik dan juga berfungsi sebagai sebuah contoh berukuran minimum dan contoh berlawanan untuk banyak masalah dalam teori graph. Doughnut graph [1] adalah contoh graph 5-reguler. P-doughnut graph memiliki persis 4p simpul. Gambar 2.4 (d) mengilustrasikan grafik p-donat untuk p = 4. Lainnya Contoh penting dari graph biasa adalah “d-dimensional hypercube” atau sederhananya “Hypercube.” Hypercube berdimensi-d memiliki 2d simpul dan masing-masing simpulnya memiliki derajat d. Gambar 2.4 (c) mengilustrasikan hypercube berdimensi-d untuk d = 4. Gambar 2.4 (a) A 2-regular graph (a simple cycle), (b) a 3-regular graph (Petersen graph), (c) a 4-regular graph (4-dimensional hypercube), dan (d) a 5-regular graph (a doughnut graph. Gambar 2.5 A labeled Petersen graph. Degree-sum formula menyiratkan dua corollaries berikut untuk regular graph. Corollary 2.2.3 Setiap regular graph dengan derajat ganjil memiliki bilangan genap sudut. Corollary 2.2.4 K-regular graph dengan n simpul memiliki nk / 2 sisi. 2.3 Subgraphs Sebuah subgraph dari graph G = (V, E) adalah graph G‟ = (V‟, E‟) sedemikian rupa sehingga V ⊆ V dan E‟ ⊆ E. Misalnya, graph pada Gambar. 2.6 (b)-(e) adalah subgraph dari graph dalam format Gambar 2.6 (a). Subgraph dapat diperoleh dari graph G dengan menghapus beberapa simpul dan tepi G. Misalkan e adalah tepi G. Kita menyatakan dengan G - e graph yang diperoleh dengan menghapus tepi e dari G. Lebih umum lagi, jika F adalah himpunan sisi-sisi dari G, kita menunjukkan graph G – F diperoleh dengan menghapus semua tepi di F dari G. Gambar 2.6 (a) menggambarkan graph G dan Gambar 2.6 (b) mengilustrasikan graph G −e6 yang diperoleh dengan menghapus tepi e6 dari G. Demikian pula, kita dapat mendefinisikan penghapusan simpul dari graph. Namun, menghapus sebuah simpul v dari graph G juga mensyaratkan bahwa kita juga menghapus sisi yang bersisian ke v di G. Misalkan v adalah puncak dari graph G. Kita menyatakan dengan G v graph yang diperoleh menghapus simpul v dan semua tepi datangnya dari G. Lebih umum lagi, jika W adalah himpunan dari simpul dari G, kami menunjukkan dengan G - W graph yang diperoleh dengan menghapus simpul di W (dan semua tepi insiden) dari G. Gambar 2.6 (a) mengilustrasikan graph G dan Gambar 2.6 (c) menggambarkan graph G - v7 yang diperoleh dengan menghapus simpul v7 dari G. Misalkan G = (V, E) adalah graph dan misalkan W adalah himpunan simpul dari G. A subgraph G‟ = (V‟, E‟) dari G disebut subgraph dari G yang diinduksi oleh W jika V‟ = W dan E‟ terdiri dari semua sisi e dari G sehingga kedua ujung ujung e berada di W. The Graph pada Gambar 2.6 (d) adalah subgraf dari graph Gambar 2.6 (a) yang diinduksi oleh himpunan simpul {v1, v2, v4, v6, v7}. Misalkan G = (V, E) adalah graph dan misalkan F adalah himpunan tepi dari G. A. subgraph G‟ = (V‟,E‟) dari G disebut subgraph dari G yang diinduksi oleh F jika E‟ = F dan V‟. terdiri dari semua simpul dari G yang masing-masing merupakan simpul ujung dari beberapa sisi di F. Grafik pada Gambar 2.6 (e) adalah subgraf dari grafik Gambar 2.6 (a) yang diinduksi oleh himpunan tepi {e5, e6, e7, e9, e11}. Gambar 2.6 (a) A Graph G, (b) - (e) subgraph dari. 2.4 Some Important Trivial Classes of Graphs 2.4.1 Null Graphs Null Graphs merupakan sebuah grafik tanpa tepi penghubung. Null graph dengan n simpul disimbolkan dengan Nn. Contohnya dapat dilihat pada gambar di bawah ini. Null graph N6 dengan 6 simpul 2.4.2 Complete Graphs Complete Graphs merupakan sebuah grafik dengan masing-masing pasangan simpul berbeda yang berdekatan. Complete graph disimbolkan dengan Kn. Kn memiliki n(n-1)/2 tepi. Contohnya dapat dilihat pada gambar di bawah ini. Complete Graph K6 dengan 6 simpul 2.4.3 Independent Set and Bipartite Graphs G = grafik (V,E). Himpunan bagian dari simpul V‟ ⊆ V disebut Independen pada G untuk tiap pasangan simpul u dan v. Tidak ada tepi pada G yang menghubungkan 2 simpul u dan v. Grafik G disebut bipartite apabila himpunan puncak V dari G dapat dipisah menjadi 2 himpunan-tidak-kosong V1 dan V2 dan tidak saling bergantung. V1 dan V2 disebut himpunan partite dari G. Tiap tepi dari grafk bipartite menggabungkan tepat 1 simpul V1 dan V2. Grafik G digunakan untuk menguji apakah grafik G tersebut tergolong bipartite dengan mempertimbangkan tiap kemungkinan berpartisi dari simpul G dan memeriksa apakah kedua partisi tersebut independen atau tidak. Untuk membuktikannya gunakan breadth first search (BFS) pada grafik G. Gambar bipartite: simpul warna hitam dan simpul warna putih maksudnya 2 independen partite. Gambar b adalah complete bipartite simbolnya K3,4 2.4.4 Path Graphs (Grafik jalur) Path graphs merupakan grafik G yang memiliki simpul simpul v1,v2,…vp dari G sedemikian rupa sehingga 1<i<p-1, ada tepi (Vi, Vi+1) pada G dan ini adalah satusatunya sisi di G. Ada 2 simpul Vi dan diatasnya yang disebut akhir simpul G. Contoh di bawah ini merupakan Path graph dengan 6 simpul, disimbolkan dengan Pn. Perhatikan bahwa derajat tiap simpul dari path graph adalah 2 kecuali 2 ujung simpul yang keduanya memiliki derajat satu. 2.4.5 Cycle Graphs (Grafik siklus) Cycle graph merupakan grafik yang dihasilkan dengan menggabungkan 2 ujung simpul dari path graph. Jadi derajat setiap simpul dari cycle graph adalah 2. Simbol cycle graph adalag Cn. 2.4.6 Wheel Graphs (Grafik roda) Wheel graph dengan n simpul dilambangkan dengan Wn. Diperoleh dari cycle graph Cn-1 dengan n-1 simpul dengan menambahkan simpul baru W dan menggabungkan tepi dari W ke masing masing simpul Cn-1. 2.5 Operations on Graphs 2.5.1 Union and Intersection of Graphs Misalnya G1 = (V1, E1) dan G2 = (V2. E2) adalah 2 grafik. Gabungan G1 dan G2 dilambangkan dengan G1 ∪ G2 yang ini merupakan (V3, E3). Sehingga V3 = V1 ∪ V2 dan E3 = E1 ∪ E2. (a) G1, (b) G2, (c) G1 ∪ G2, (d) G1 ∩ G2 Operasi pada grafik tersebut dapat digunakan untuk menyelesaikan banyak masalah dengan mudah. Misalkan ada h+g orang dalam satu pesta, h merupkan tuan rumah dan g merupakan tamu. Setiap orang berjabat tangan satu sama lain kecuali tidak ada tuan rumah yg berjabat tangan dengan tuan rumah lainnya. Berapa jumlah jabatan tangan? Misalnya h = simpul hitam, g = simpul putih, tepi grafik mewakili jabat tangan Total jabat tangan = n(n-1)/2 + m x n 2.5.2 Complement of a Graph Komplemen dari grafik G = (V,E) adalah grafik G = (V,E) yang lain dengan himpunan puncak yang sama, sehingga untuk sembarang pasangan simpul berbeda u, v V, (u, v) ̅. (a) Grafik G, (b) complement ̅ 2.5.3 Subdivisions Membagi tep (u, v) pada grafik G merupakan operasi menghapus tepi (u, v) dan menambahkan jalur u, w, v melalui simpul baru „w‟ derajat 2. G‟ = subdivisi G (a) Grafik G, (b) subdivisi grafik G atau disebut G‟ 2.5.4 Contraction of an Edge Contraction of an Edge (u, v) pada grafik G merupakan operasi penghapusan tepi (u, v) dan mengidentifikasi 2 simpul u dan v. Setelah u dan v dihapus ditambah simpul baru „w‟ dimana semua sisi bersisian dengan u dan v selain sisi (u, v) dibuat bersisian dengan w. (a) grafik G, (b) grafik yang diperoleh dari mengontrak tepi e pada grafik G, (c) Grafik yang telah disederhanakan setelah mengontrak tepi e. 2.6 Grafik Isomorfisma Jika terdapat isomorfisma antara dua grafik G1 dan G2, dapat dikatakan G1 isomorfik terhadap G2 dan tulislah G1 SG2. Gambar 2.15 menunjukkan dua grafik G1 dan G2 yang isomorfik satu sama lain. Isomorfisma ini dapat diketahui dengan memetakan simpul a,b,c,d dan e dari G1 ke simpul u,w,y,v dan X dari G2. Gambar 2.15 merupakan isomorfik. Grafik isomorfik ini dikenal sebagai Graf Petrsen. Perhatikanlah kedua grafik pada gambar. Jika memetakan simpul a,b,c,d dan e dari Gi ke simpul u,v,w,x dan y dari G2, maka kedua graf tersebut menjadi komplemen yang berbeda. Gambar 2.15 Dua pasang grafik isomorfik Komplemennya disebut saling melengkapi. Grafik pada gambar 2.15 bersifat mandiri. Demikian pula, P4 juga bersifat self-compliment. Untuk melihat apakah dua grafik G1 dan G2 isomorfik atau tidak, pendekatan trival akan mengambil semua permutasi yang mungkin dari simpul G2 untuk memeriksa apakah salah satu dari permutasi ini menginduksi isomorfisme. Tentunya, pendekatan ini memerlukan waktu eksponensial pada jumlah simpul.mengakhiri bagian ini dengan berikut, yang menunjukkan bahwa isomorfisme antar grafik memberikan kelas kesetaraan dibawah hubungan isomorfisme. Lemma 2.6.1 Relasi isomorfisme adalah relasi ekivalensi pada himpunan grafik. Bukti Sifat refleksivitas dari isomorfisme adalah sepele karena untuk setiap grafik G = (V,E) bijection f: V V yang memetakan setiap simpul v V ke dirinya sendiri memberikan isomorfisme. Kami sekarang membuktikan properti transitivitas isomorfisme. Misalkan f: V1 > V2 dan g: V2 -> V3 mendefinisikan isomorfisme dari G1 ke G2 dan dari G2 ke G3, dimana G1 =, G2 = dan G3 = adalah tiga grafik. Jadi, g o f mendefinisikan isomorfisme dari G1 ke G3. O Untuk banyak masalah, kami sering hanya membutuhkan sifat struktural dari grafik. 2.7 Urutan Derajat Bilangan bulat non negative berbeda dalam deret derajat dari suatu grafik disebut himpunan derajatnya. Pada gambar terdapat dua grafik dengan urutan derajat yang sama dikatakan ekivalen derajat. Setiap grafik memiliki urutan derajat. Cara mudah diperlukan berasal dari rumus derajat jumlah. Artinya, jumlah bilangan bulat dalam urutan harus genap. Asumsikan bahwa jumlah bilangan bulat dalam urutan tersebut genap. Buat loop di setiap simpul untuk memenuhi persyaratan derajat dari setiap simpul. Konstruksi grafik untuk urutan 5,4,3,2,1,1 diilustrasikan pada gambar. Memungkinkan loop membuat realisasi urutan derajat menjadi mudah. Gambar 2.18 menunjukkan grafik sederhana G dengan barisan grafik 3,3,3,2,1 dengan A= 3. Dapat dibuat grafik sederhana G‟ dan G dengan menambahkan simpul baru x dan menambahkan tepi x ke masing-masing A+1 simpul dengan derajat terbesar di G, seperti diilustrasikann pada gambar 2.18, dimana deret derajat G‟ adalah 4,4,4,4,3,1. Gambar 2.16 ilustrasi untuk deret derajat Gambar 2.17 diilustrasikan dari kontruksi urutan 5,4,3,2,,1 Gambar 2.18 (a) grafik G dengan derajat pengaruh 3,3,3,2,1 dan (b) gafik G dengan derajat urutan 4,4,4,4,3,1. Kemabilan dari implikasi diatas juga dianggap sebagai Havel dan Hakimi menunjukkan bahwa d adalah grafik jika dan hanya jika d adalah grafik. Maka dari itu, berdasarkan konstruksi diatas, kita dapat dengan mudah mengembangkan algorita rekursif unutk memeriksa apakah salah satu deret derajat adalah grafik atau tidak. Perhatikan bahwa dı = 0 adalah satusatunya urutan grafik 1 elemen. Langkah-langkah algoritma rekursif untuk menguji urutan grafik diilustrasikan pada gambar. Gambar 2.19 Ilustrasi untuk menguji realisasi urutan grafik Urutan jika d ' tidak urutan yang tidak bertambah. Misalnya, amati 1,0,1 + 1, 1,0 pada Gambar 2.19. 2.8 Struktur Data dan Representasi Graf Kita sudah terbiasa dengan salah satu cara merepresentasikan graf, i. Representasi grafis ini cocok untuk visualisasi grafik, namun tidak cocok jika kita ingin menyimpan grafik di komputer. Namun, ada cara lain untuk merepresentasikan grafik. Pada bagian ini, pertama-tama kami memberikan penjelasan singkat tentang beberapa struktur data dasar dan kemudian kami menunjukkan tiga metode untuk merepresentasikan grafik di komputer. Daftar adalah struktur data yang terdiri dari catatan homogen, dihubungkan bersama secara linier. Setiap rekaman berisi satu atau lebih item data dan satu atau lebih penunjuk. 2.8.1 Matriks Adjacency Misalkan G adalah sebuah grafik dengan himpunan puncak V = {V1, V2, ..., Un) dan himpunan tepi E = {C1, C2, ..., em}. Gambar 2.20 menunjukkan grafik dan Gambar 2.20 menggambarkan matriks ketetanggaannya. Perhatikan bahwa matriks ketetanggaan grafik selalu simetris. Jika G adalah graf sederhana, maka setiap entri A adalah nol atau satu dan diagonal utama matriks hanya berisi nol. Gambar 2.21 mengilustrasikan matriks ketetanggaan dari grafik sederhana pada Gambar. Matriks ketetanggaan menggunakan ruang O untuk merepresentasikan grafik n titik. Tidaklah ekonomis jika jumlah tepi pada grafik jauh lebih sedikit daripada jumlah maksimum n / 2. Gambar 2.20 (a) Grafik G, (b) representasi matriks ketetanggaan G, dan (c)matriks kejadian representasi G Gambar 2.21 (a) A simple graph G, (b)adjacenc representasi matriks y dari G, (c) insidensimatriks representasi G, dan (d) representasi daftar kedekatan G 2.8.2 Incidence Matrix Misalkan G adalah grafik dengan himpunan puncak V = {V1, V2, ..., Un} dan himpunan tepi E = {C1, C2, ..., 6m}. Gambar 2.20 menggambarkan matriks insiden dari grafik pada Gambar 2.21 menggambarkan matriks insiden dari grafik pada Gambar 2.8.3 Daftar Ketetanggaan Daftar Repesentasi dari G adalah larik n daftar, dimana untuk setiap simpul v dari G, ada daftar yang sesuai dengan v, yang berisi record untuk setiap representasia dari v. Gambar 2.21 mengilustrasikan daftar ketetanggaan dari grafik pada Gambar.