Bab 2
LANDASAN TEORI
2.1. Konsep Dasar Graf
Definisi Graf Suatu graf G terdiri atas himpunan yang tidak kosong dari elemen–elemen yang disebut titik atau simpul (vertex), dan suatu daftar pasangan vertex yang tidak terurut disebut sisi (edge). Himpunan vertex dari suatu graf G dinotasikan dengan V, dan daftar himpunan edge dari graf tersebut dinotasikan dengan E. Untuk selanjutnya suatu graf G dapat dinotasikan dengan G = (V, E). (Wilson, R. J dan Watkhins, J. J, 1990).
2.1.1. Jenis-jenis Graf Graf dapat dikelompokkan menjadi beberapa kategori (jenis) bergantung dari sudut pandang pengelompokannya. Pengelompokkan graf dapat dipandang berdasarkan ada tidaknya sisa ganda, berdasarkan jumlah simpul, atau berdasarkan orientasi arah pada sisi.
Berdasarkan ada tidaknya gelang atau sisi ganda pada suatu graf, maka graf dapat digolongkan menjadi:
Universitas Sumatera Utara
2.1.1.1. Graf Sederhana (simple graph) Graf sederhana merupakan graf yang tidak mengandung gelang maupun sisi ganda. Graf sederhana ini sangat dekat dengan situasi-situasi yang ada di sekitar. Oleh karena itu, untuk memudahkan persoalan graf sederhana dikelompokkan dikelompokkan lagi menjadi
beberapa jenis yaitu:
2.1.1.1.1. Graf Lengkap (complete graph) Graf lengkap adalah graf sederhana yang tiap simpulnya mempunyai sisi ke semua simpul lainnya. Graf lengkap dengan n buah simpul dilambangkan dengan Kn
berderajat n-1. Berikut ini Gambar enam buah buah graf lengkap.
K1
K2
K3
K4
K5
K6
Gambar 2.1 Graf Lengkap Jumlah sisi pada graf lengkap yang terdiri dari n buah simpul adalah n(n-1)/2.
2.1.1.1.2. Graf Lingkaran Graf lingkaran adalah graf sedehana yang setiap simpulnya berderajat dua. Graf
lingkaran dengan n simpul dilambangkan dengan Cn. Jika simpul-simpul pada Cn adalah V1, V2, V3,…,Vn, maka sisi-sisinya adalah (V1, V2), (V2, V3),…,(Vn-1, V n), dan (Vn, V1). Dengan kata lain, ada sisi dari simpul terakhir Vn ke simpul pertama V1.
Universitas Sumatera Utara
Gambar 2.2 Graf Lingkaran
2.1.1.1.3. Graf Teratur (regular graph) Graf yang setiap simpulnya mempunyai derajat yang sama disebut graf teratur. Apabila derajat setiap simpul adalah r, maka graf tersebut disebut sebagai graf teratur derajat r.
Gambar 2.3 Graf Teratur Berderajat 3
2.1.1.2. Graf Tak Sederhana (unsimple graph) Graf tak sederhana merupakan graf yang mengandung gelang maupun sisi ganda. Berdasarkan jumlah simpul, suatu graf secara umum dapat digolongkan menjadi:
2.1.1.3. Graf Berhingga (limited graph) Graf berhingga adalah graf yang jumlah simpulnya n berhingga.
Universitas Sumatera Utara
2.1.1.4. Graf Tak Berhingga (unlimited graph) Graf tak berhingga adalah graf yang jumlah simpulnya n tak-hingga. Berdasarkan ada tidaknya orientasi arah pada sisi, graf dapat digolongkan menjadi:
2.1.1.5. Graf Tak-Berarah (undirected graph atau undigraph) Graf tak berarah merupakan graf yang sisinya tidak mempunyai orientasi arah. Pada graf tak berarah, urutan pasangan simpul yang dihubungkan oleh sisi tidak diperhatikan. Jadi (Vi, Vj) = (Vj, Vi).
Gambar 2.4 Graf tak berarah
2.1.1.6. Graf Berarah (directed graph atau digraph) Graf berarah merupakan graf yang setiap sisinya diberikan orientasi arah. Sisi pada graf berarah biasanya disebut busur (arc).
Gambar 2.5 Graf berarah
Universitas Sumatera Utara
2.1.3. Istilah dalam Graf Beberapa istilah yang biasa digunakan dalam graf.
2.1.3.1. Bertetangga (adjacent) Jika dua buah simpul pada graf tak berarah G dikatakan bertetangga, maka ke duanya terhubung langsung dengan sebuah sisi. Dengan kata lain jika Vi bertetangga dengan Vk, maka (Vi , Vk) adalah sebuah sisi pada graf G. 1
2
3
4
Gambar 2.6 Graf Tak Berarah
Pada Gambar 2.6 simpul 4 bertetangga dengan simpul 2 dan 3, tetapi tidak bertetangga dengan simpul 1.
2.1.3.2. Bersisian (incident) Untuk sembarang sisi e = (Vi , Vk), sisi e dikatakan bersisian dengan simpul Vi dan simpul Vk. Pada Gambar 2.6 sisi (2,3) bersisian dengan simpul 2 dan simpul 3, tetapi sisi (2,4) tidak bersisian dengan simpul 1.
2.1.3.3. Derajat (degree) Derajat suatu simpul pada graf tak-berarah adalah jumlah sisi yang bersisian dengan simpul tersebut.
Universitas Sumatera Utara
Notasi: d(v) menyatakan derajat simpul v Pada Gambar 2.6 dapat dilihat bahwa, d(1) = d(4) = 2 dan d(2) = d(3) =3 d(5) = 0 Pada graf berarah, derajat simpul v dinyatakan dengan d in(v) dan d out(v) yang dalam hal ini: a.
din(v) = derajat masuk = jumlah busur yang masuk ke simpul v
b.
dout(v) = derajat keluar = jumlah busur yang ke luar dari simpul v dan
c.
d(v) = din(v) + dout(v)
2.1.3.4. Jalan (walk) Jika u dan v adalah dua simpul (vertex) dalam graf G, maka sebuah jalan (walk) u-v adalah urutan bolak-balik simpul (vertex) dan sisi (edges) dimulai dari u dan berakhir di simpul v.
Gambar 2.7 adalah contoh sebuah jalan (walk) a-e: a,b,c,b,e. Dengan kata lain, mulai dari simpul (vertex) a dan berjalan ke simpul (vertex) b. Dari b jalan ke c dan kemudian kembali ke b lagi. Kemudian jalan diakhiri di e. Perhatikan bahwa simpul berturut-turut di jalan-jalan yang berdekatan satu sama lain.Dalam jalan (walk) diperbolehkan mengulang simpul (vertex) dan sisi (edges). Jumlah sisi dari sebuah jalan (walk) disebut panjangnya (length). Panjang dari jalan (walk) a,b,c,b,e adalah 4. a
b c
g
d f
e
Gambar 2.7 Jalan (walk) dalam graf
Universitas Sumatera Utara
2.1.3.5. Jejak (trail) Jejak (trail) dalam graf adalah sebuah jalan (walk) yang sisinya (edges) tidak diulang. Sebagai contoh, jalan (walk) a-b: a,b, c, d, f, g, b pada Gambar 2.7 adalah jejak (trail). Dalam hal ini tidak ada sisi (edges) yang diulang tapi berisi satu simpul (vertex) berulang yaitu b .
2.1.3.6. Lintasan (path) Sebuah jalan (walk) dalam graf tanpa simpul (vertex) yang diulang disebut lintasan (path). Tanpa simpul (vertex) yang diulang sebuah lintasan (path) tidak dapat memiliki sisi (edges) yang diulang dari itu lintasan (path) dapat disebut juga dengan jejak (trail).
Sebuah lintasan (path) yang awal dan akhir adalah simpul (vertex) yang sama disebut sirkuit (cycle). Sebagai contoh jalan (walk) a,b,c,e,a pada Gambar 2.7 adalah sirkuit (cycle).
2.1.4. Representasi Matrik dari Suatu Graf Dengan mempertimbangkan keterhubungan antara suatu simpul (vertex) dengan simpul (vertex) yang lain, ataupun suatu simpul (vertex) dengan garis (edge), sebuah graf G dapat direpresentasikan ke dalam bentuk matrik, baik adjency matrix maupun incidence matrix. Sedangkan distance matrix (matrik jarak) dapat digunakan untuk menyatakan bobot dari setiap garis (edge) yang ada dalam suatu graf G baik berupa jarak, waktu maupun biaya.
Adapun representasi matrik yang akan dijelaskan pada skripsi ini adalah matrik jarak.
Universitas Sumatera Utara
2.1.4.1. Matrik Jarak (distance matrix) Matrik jarak (distance matrix) dari suatu graf G dengan n simpul (vertex) dan dinotasikan dengan W = (wij) berordo n x n di mana:
Panjang dari (vi ,vj), untuk (vi ,vj) ∈ E wij ∞ , untuk lainnya
Dengan panjang dari (vi ,vj) adalah bobot dari setiap garis (edge) yang ada pada graf G tersebut, baik berupa jarak, waktu maupun biaya. Pada graf berarah matrik jaraknya tidak simetris dan pada graf tidak berarah matrik jaraknya simetris.
2.2. Pohon (Tree)
Definisi Pohon (Tree) Dalam graf G = (V, E), sebuah lintasan (path) yang awal dan akhir adalah simpul (vertex) yang sama disebut sirkuit (cycle). Jika tidak memiliki sirkuit, maka graf tersebut dinamakan hutan (forest). Dalam sebuah hutan, simpul (vertex) berderajat satu disebut titik akhir atau daun (leaf). Hutan yang terhubung adalah pohon (tree). (David Joyner, Minh Van Nguyen dan Nathann Cohen, 2010)
Universitas Sumatera Utara
Gambar 2.8 Contoh-contoh Tree
2.3. Spanning Tree Sebuah pohon rentangan (spanning tree) dari graf tak berarah yang terdiri dari n titik (nodes) adalah pasangan n-1 garis (edges) yang menghubungkan semua titik (nodes).
Teorema 2.1. Jika T = (V,E) adalah sebuah graf dengan n simpul (vertex), maka pernyataan berikut adalah ekuivalen: 1.
T adalah sebuah pohon (tree)
2.
T tidak sirkuit dan mempunyai n-1 sisi (edges)
3.
T terhubung dan mempunyai n-1 sisi (edges)
4.
Setiap sisi (edges) dari T adalah titik potong (cut set)
5.
Untuk setiap u,v Є V hanya satu lintasan (path) u-v
6.
Untuk setiap sisi (edges) e yang baru, yang bergabung T + e mempunyai satu sirkuit (cycle).
2.4. Minimum Spanning Tree Minimum spanning tree adalah sebuah pohon rentangan (spanning tree) dari graf berbobot yang memiliki jumlah bobot sisi terkecil yang menghubungkan semua vertex dalam tree tersebut dari semua kemungkinan pohon rentangan (spanning tree) yang bisa dibuat.
Universitas Sumatera Utara
Minimum spanning tree merupakan teknik yang digunakan untuk mencari jalur terpendek dari sebuah lintasan, dengan kata lain adalah teknik yang digunakan untuk mencari solusi membangun sebuah jaringan agar tidak memakan banyak jalur seperti pemasangan kabel, rute penerbangan serta penugasan.
Contoh pembentukan pohon rentangan (spanning tree) dari sebuah graf dapat dilihat pada Gambar 2.9:
Spanning Tree-1 Graf Terhubung
Spanning Tree-2
Spanning Tree-4
Spanning Tree-3
Gambar 2.9 Sebuah Graf yang menjadi spanning tree
Permasalahan umum dari minimum spanning tree adalah mencari minimum spanning tree dari setiap ruas (edge) suatu graf yang membentuk pohon (tree). Untuk mendapatkan solusi yang diharapkan, akan dipilih ruas menurut kriteria optimisasi yang menghasilkan jarak minimum. Untuk masalah minimum spanning tree, syarat graf dapat dicari minimum spanning tree-nya adalah:
a. Graf harus terhubung. b. Ruasnya punya bobot/nilai terkecil c. Tidak membentuk sirkuit
Universitas Sumatera Utara
Teknik yang umum digunakan untuk mendapatkan pohon rentangan minimal adalah algoritma Solin dan Kruskal (Astuti, 2005).
a. Algoritma Solin adalah: 1. Urutkan ruas dari G menurut bobotnya, dari besar ke kecil. 2. Lakukan penghapusan ruas berdasarkan urutan yang sudah dilakukan, dengan ketentuan bahwa penghapusan ruas tersebut tidak menyebabkan graf menjadi tidak terhubung.
b. Algoritma Kruskal adalah: 1. Urutkan ruas dari G menurut bobotnya, dari kecil ke besar. 2. Lakukan penambahan ruas berdasarkan urutan yang sudah dilakukan, dengan ketentuan bahwa penambahan ruas tersebut tidak menyebabkan adanya sirkuit.
2.5. Algoritma Semut Algoritma semut dikembangkan oleh Marco Dorigo (1996) yang merupakan teknik probabilistik untuk menyelesaikan masalah komputasi dengan menemukan jalur terbaik melalui grafik. Algoritma ini terinspirasi oleh perilaku semut dalam menemukan jalur dari koloninya menuju makanan. Algoritma semut, atau Ant Colony Optimization, sebagai sebuah simulasi multi agen yang menggunakan metafora alami semut untuk menyelesaikan problem ruang fisik (Dorigo, 1996).
Algoritma Semut diadopsi dari perilaku koloni semut yang dikenal sebagai sistem semut yang secara alamiah mampu menemukan rute terpendek dalam jalan dari sarang ke tempat-tempat sumber makanan. Koloni semut dapat menemukan rute terpendek antara sarang dan sumber makanan berdasarkan jejak kaki pada lintasan yang telah dilalui. Semakin banyak semut yang melalui suatu lintasan, akan semakin jelas bekas jejak kakinya. Hal ini akan menyebabkan lintasan yang dilalui semut dalam jumlah sedikit, semakin lama akan semakin berkurang kepadatan semut yang melewatinya, atau bahkan akan tidak dilewati sama sekali. Sebaliknya lintasan yang
Universitas Sumatera Utara
dilalui semut dalam jumlah banyak, semakin lama akan semakin bertambah kepadatan semut yang melewatinya, atau bahkan semua semut akan melalui lintasan tersebut.
Gambar 2.10 menunjukkan jalan semut dalam menemukan jalur terpendek dari sarang ke sumber makanan.
L
R
L
R
a
L
c
b
R
L
d
R
Gambar 2.10 Perjalanan Semut
Gambar 2.10.a menunjukkan ada 2 kelompok semut yang akan melakukan jalan. Satu kelompok bernama L yaitu kelompok yang berangkat dari arah kiri yang merupakan sarang semut dan kelompok lain yang bernama kelompok R yang berangkat dari kanan yang merupakan sumber makanan. Ke dua kelompok semut dari titik berangkat sedang dalam posisi pengambilan keputusan jalan sebelah mana yang akan diambil. Kelompok semut L membagi dua kelompok lagi. Sebagian melalui jalan atas dan sebagian melalui jalan bawah. Hal ini juga berlaku pada kelompok semut R . Gambar 2.10.b dan Gambar 2.10.c menunjukkan bahwa kelompok semut berjalan pada kecepatan yang sama dengan meninggalkan feromon atau jejak kaki di jalan yang telah dilalui. Feromon yang ditinggalkan oleh kumpulan semut yang melalui jalan atas telah mengalami banyak penguapan karena semut yang melalui jalan atas berjumlah lebih sedikit dari pada jalan yang di bawah. Hal ini dikarenakan
Universitas Sumatera Utara
jarak yang ditempuh lebih panjang daripada jalan bawah. Sedangkan feromon yang berada di jalan bawah, penguapannya cenderung lebih lama. Karena semut yang melalui jalan bawah lebih banyak daripada semut yang melalui jalan atas.
Gambar 2.10.d menunjukkan bahwa semut-semut yang lain pada akhirnya memutuskan untuk melewati jalan bawah karena feromon yang ditinggalkan masih banyak. Sedangkan feromon pada jalan atas sudah banyak menguap sehingga semutsemut tidak memilih jalan atas tersebut. Jika semakin banyak semut yang melalui jalan bawah, maka semakin banyak semut yang mengikutinya. Demikian juga jika semakin sedikit semut yang melalui jalan atas, maka feromon yang ditinggalkan semakin berkurang bahkan hilang. Dari sinilah kemudian terpilihlah jalur terpendek antara sarang dan sumber makanan.
Dalam algoritma semut, diperlukan beberapa variabel dan langkah-langkah untuk menentukan jalur terpendek yaitu:
Langkah 1:
a. Inisialisasi harga parameter-parameter algoritma. Parameter-parameter yang diinisialisasikan adalah: 1. Intensitas jejak semut antar kota dan perubahannya (ηij) 2. Banyak kota (n) termasuk koordinat (x,y) atau jarak antar kota (dij) 3. Kota berangkat dan kota tujuan 4. Tetapan siklus-semut (Q) 5. Tetapan pengendali intensitas jejak semut (α), nilai α ≥ 0 6. Tetapan pengendali visibilitas (β), nilai β ≥ 0 7. Visibilitas antar kota = 1/ dij (ηij) 8. Banyak semut (m) 9. Tetapan penguapan jejak semut (ρ), nilai ρ harus > 0 dan < 1 untuk mencegah
Universitas Sumatera Utara
jejak feromon yang tak terhingga. 10. Jumlah siklus maksimum (NCmax) bersifat tetap selama algoritma dijalankan, sedangkan ηij akan selalu diperbaharui harganya pada setiap siklus algoritma mulai dari siklus pertama (NC=1) sampai tercapai jumlah siklus maksimum (NC=NCmax) atau sampai terjadi konvergensi. b. Inisialisasi kota pertama setiap semut. Setelah inisialisasi ηij dilakukan, kemudian m semut ditempatkan pada kota pertama tertentu secara acak.
Langkah 2:
Pengisian kota pertama ke dalam tabulist. Hasil inisialisasi kota pertama setiap semut dalam langkah 1 harus diisikan sebagai elemen pertama tabulist. Hasil dari langkah ini adalah terisinya elemen pertama tabulist setiap semut dengan indeks kota tertentu, yang berarti bahwa setiap tabulist (1) bisa berisi indeks kota antara 1 sampai n sebagaimana hasil inisialisasi pada langkah 1.
Langkah 3:
Penyusunan rute kunjungan setiap semut ke setiap kota. Koloni semut yang sudah terdistribusi ke sejumlah atau setiap kota, akan mulai melakukan jalan dari kota pertama masing-masing sebagai kota asal dan salah satu kota-kota lainnya sebagai kota tujuan. Kemudian dari kota ke dua masing-masing, koloni semut akan melanjutkan jalan dengan memilih salah satu dari kota-kota yang tidak terdapat pada tabulist sebagai kota tujuan selanjutnya. Jalan koloni semut berlangsung terus menerus sampai semua kota satu persatu dikunjungi atau telah menempati tabulist. Jika s menyatakan indeks urutan kunjungan, kota asal dinyatakan sebagai tabulist (s) dan kota-kota lainnya dinyatakan sebagai {N-tabulist}, maka untuk menentukan kota tujuan digunakan persamaan probabilitas kota untuk dikunjungi sebagai berikut:
Universitas Sumatera Utara
......................................(2.1)
Langkah 4: a. Perhitungan panjang rute setiap semut. Perhitungan panjang rute tertutup (length closed tour) atau Lk setiap semut dilakukan setelah satu siklus diselesaikan oleh semua semut. Perhitungan ini dilakukan
berdasarkan tabulist masing-masing dengan persamaan berikut:
Lk=dtabuk n , tabuk 1 + dtabuk s , tabuk s 1 ................................(2.2) dengan dij adalah jarak antara kota i ke kota j yang dihitung berdasarkan persamaan: 2
2
dij= √ (xi− xj) + (yi− yj) ...........................................................................................(2.3) b. Pencarian rute terpendek. Setelah Lk setiap semut dihitung, akan didapat harga minimal panjang rute tertutup setiap siklus atau LminNC dan harga minimal panjang rute tertutup secara keseluruhan adalah atau Lmin. c. Perhitungan perubahan harga intensitas jejak kaki semut antar kota. Koloni semut akan meninggalkan jejak-jejak kaki pada lintasan antar kota yang dilaluinya. Adanya penguapan dan perbedaan jumlah semut yang lewat, menyebabkan kemungkinan terjadinya perubahan harga intensitas jejak kaki semut antar kota. Persamaan perubahan ini adalah:
................................................(2.4) dengan ∆τij adalah perubahan harga intensitas jejak kaki semut antar kota setiap semut yang dihitung berdasarkan persamaan:
Universitas Sumatera Utara
..................................................(2.5) untuk (i,j) ∈ kota asal dan kota tujuan dalam tabulist.
Langkah 5: a. Perhitungan harga intensitas jejak kaki semut antar kota untuk siklus selanjutnya. Harga intensitas jejak kaki semut antar kota pada semua lintasan antar kota ada kemungkinan berubah karena adanya penguapan dan perbedaan jumlah semut yang melewati. Untuk siklus selanjutnya, semut yang akan melewati lintasan tersebut harga intensitasnya telah berubah. Harga intensitas jejak kaki semut antar kota untuk siklus selanjutnya dihitung dengan persamaan: τij=ρ τ0 + ∆τij …...………………………..........................(2.6) b. Atur ulang harga perubahan intensitas jejak kaki semut antar kota. Untuk siklus selanjutnya perubahan harga intensitas jejak semut antar kota perlu diatur kembali agar memiliki nilai sama dengan nol.
Langkah 6:
Jika jumlah siklus maksimum belum tercapai atau belum terjadi konvergensi, maka kosongkan tabulist dan ulangi langkah 2. Tabulist perlu dikosongkan untuk diisi lagi dengan urutan kota yang baru pada siklus selanjutnya, Algoritma diulang lagi dari langkah 2 dengan harga parameter intensitas jejak kaki semut antar kota yang sudah diperbaharui.
Untuk menganalisis algoritma semut dalam mencari nilai optimal menggunakan sebuah graf yang fully connected (setiap node memiliki busur ke node yang lain) dan bidirectional (setiap jalur bisa ditempuh bolak-balik dua arah). Setiap busur memiliki bobot yang menunjukkan jarak antara dua buah node yang dihubungkan oleh busur
Universitas Sumatera Utara
tersebut. Algoritma ini menggunakan sistem multi agen, yang berarti mengerahkan seluruh koloni semut yang masing-masingnya bergerak sebagai agen tunggal. Setiap semut menyimpan daftar tabu yang memuat node yang sudah pernah ia lalui. Sebuah koloni semut diciptakan dan setiap semut ditempatkan pada masing-masing node secara merata untuk menjamin bahwa tiap node memiliki peluang untuk menjadi titik awal dari jalur optimal yang dicari. Setiap semut selanjutnya harus melakukan tour semut yaitu jalan mengunjungi semua node pada graf tersebut.
2.5. Update Feromon Trail Setelah semua semut menyelesaikan tour-nya masing–masing, feromon kemudian diupdate. Dalam Ant System, aturan pembaruan Feromon global (Dorigo, M., Maniezzo, V., dan Colorni, A., 1996) diimplementasikan menurut persamaan 2.7 sebagai berikut:
τ ij
(1-ρ) . τ ij +
dengan τ =
τ …………………………….......................(2.7)
dimana (ij) Є tour yang dilakukan oleh semut k.
0 sebaliknya. Ck adalah panjang tour yang dilalui oleh semut k . 0 < ρ ≤ 1 adalah sebuah parameter tingkat evaporasi feromon, dan m adalah jumlah dari semut. Untuk memastikan bahwa semut mengunjungi n titik yang berbeda, diberikan tabu list pada masing–masing semut, yaitu sebuah struktur data yang menyimpan titik–titik yang telah dikunjungi semut dan melarang semut mengunjungi kembali titik–titik tersebut sebelum mereka menyelesaikan sebuah tour. Ketika sebuah tour selesai, tabulist digunakan untuk menghitung solusi yang ditemukan semut pada tour tersebut. Tabulist kemudian dikosongkan dan semut kembali bebas memilih titik tujuannya pada tour berikutnya.
Universitas Sumatera Utara
Universitas Sumatera Utara