BAB 2 LANDASAN TEORI
2.1 Teori Graf Teori graf merupakan pokok bahasan yang sudah tua usianya namun memiliki banyak terapan sampai saat ini. Graf digunakan untuk merepresentasikan objek-objek diskrit dan hubungan objek-objek tersebut. Representasi visual dari graf adalah dengan menyatakan objek sebagai noktah bulatan, titik atau verteks, sedangkan hubungan antara objek dinyatakan dengan garis atau edge (Munir, 2007).
2.1.1 Definisi Graf Definisi 2.1 Graf G didefinisikan sebagai pasangan himpunan (V, E), ditulis dengan G = (V, E) yang dalam hal ini adalah himpunan V adalah himpunan tidak kosong dari verteks-verteks dan E adalah himpunan edge yang menghubungkan sepasang verteks. Verteks pada graf dapat dinomori dengan huruf dan bilangan asli. Sedangkan sisi yang menghubungkan verteks u dan v dinyatakan dengan pasangan (u, v) atau dinyatakan dengan lambang e1, e2, e3,…. Dengan kata lain, jika e adalah sisi yang menghubungkan verteks u dan verteks v, maka e dapat ditulis sebagai e = (u, v).
Universitas Sumatera Utara
Contoh: 1 e4 e1
e3 e2
2
3 e6
e5 e7 4
Gambar 2.1 Graf sederhana
2.1.2 Jenis-jenis Graf Berdasarkan ada tidaknya loop atau edge ganda pada suatu graf, maka secara umum graf dapat dibedakan sebagai berikut: 1. Graf sederhana Graf yang tidak mengandung loop maupun edge ganda dinamakan graf sederhana. Pada graf sedehana ini, verteks adalah pasangan tidak terurut. Jadi menuliskan verteks (v, u) sama saja dengan (u, v). Dapat juga didefinisikan graf sederhana G = (V, E) terdiri dari himpunan tidak kosong verteks dan E adalah himpunan pasangan tidak terurut yang berbeda yang disebut dengan verteks. 2. Graf tak-sederhana Graf yang mengandung edge ganda atau loop dinamakan graf tak-sederhana. Graf tak-sederhana ada 2 jenis yaitu graf ganda dan graf semu. Graf ganda adalah yang mengandung verteks ganda. Edge ganda yang menghubungkan sepasang verteks biasa lebih dari dua buah. Verteks ganda dapat diasosiasikan sebagai pasangan tidak teurut yang sama. Dapat juga didefinisikan graf ganda G = (V, E) terdiri dari himpunan tidak kosong verteks dan E adalah himpunan ganda yang mengandung edge ganda. Graf semu adalah graf yang mengandung loop. Jumlah verteks pada graf disebut sebagai kardinalitas graf, dan dinyatakan dengan n = |V|, dan jumlah edge dinyatakan dengan m = |E|.
Universitas Sumatera Utara
Edge pada graf dapat mempunyai orientasi arah. Berdasarkan orientasi arah pada edge, graf dapat dibedakan sebagai berikut: 1. Graf tak-berarah Graf yang edge nya tidak mempunyai orientasi arah disebut graf tak-berarah. Pada graf tak-berarah, urutan pasangan verteks yang dihubungkan oleh edge tidak diperhatikan. Jadi (u, v) = (v, u) adalah edge yang sama. 2. Graf berarah Graf yang setiap edgenya diberikan orientasi arah disebut sebagai graf berarah dan edge berarah disebut busur. Pada graf berarah, (u, v) dan (v, u) menyatakan dua busur yang berbeda, dengan kata lain , (u, v) ≠ (v, u). Untuk busur (u, v), verteks u dinamakan initial veteks dan verteks v dinamakan terminal verteks. Contoh: 11
2
3
4
Gambar 2.2 Graf berarah
2.1.3 Terminologi Dasar Terminologi yang berkaitan dengan graf yang sering dipakai adalah sebagai berikut: 1. Bertetangga (Adjacent) Definisi 2.2 Dua buah verteks pada graf tak-berarah G dikatakan bertetangga bila keduanya terhubung langsung dengan sebuah edge. Dengan kata lain u bertetangga dengan v jika (u, v) adalah sebuah edge pada graf G. Pada graf berarah, edge berarah disebut busur. Jika (u, v) adalah busur, maka u dikatakan bertetangga dengan v dan v dikatakan tetangga dari u.
Universitas Sumatera Utara
Contoh:
1
2
3
4
Gambar 2.3 Graf bertetangga Pada graf di atas, verteks 1 bertetangga dengan verteks 2 dan 3, tetapi tidak betetangga dengan verteks 4. 2. Bersisian (Incident) Definisi 2.3 Untuk sembarang edge e = (u, v), edge e dikatakan bersisian dengan verteks u dan verteks v. Contoh: Pada Gambar 2.3, edge (2, 3) bersisian dengan verteks 2 dan 3, edge (2, 4) bersisian dengan verteks 2 dan 4, tetapi edge (1, 2) tidak bersisian dengan verteks 4. 3. Verteks Terpencil (Isolated) Definisi 2.4 Verteks terpencil adalah verteks yang tidak mempunyai edge yang bersisian dengannya atau dapat juga dinyatakan bahwa verteks terpencil adalah yang tidak satupun bertetangga dengan verteks lainnya. Contoh: 1
2
3
Gambar 2.4 Graf terpencil 4. Graf Kosong (Null Graph ) Definisi 2.5 Graf yang himpunan edgenya merupakan himpunan kosong disebut sebagai graf kosong dan ditulis sebagai Nn. Dalam hal ini n adalah jumlah verteks.
Universitas Sumatera Utara
Contoh: 1
2
4
3
5
Gambar 2.5 Graf kosong 5. Derajat (Degree) Definisi 2.6 Derajat suatu verteks pada graf tak-berarah adalah jumlah edge yang bersisian dengan verteks tersebut. Notasi d(v) menyatakan derajat verteks v. Verteks terpencil adalah verteks dengan d(v) = 0, karena tidak ada satupun edge yang bersisian dengan verteks tersebut. Loop dihitung berderajat dua. Secara umum, jika terdapat g buah loop dan e buah edge bukan loop yang bersisian dengan verteks v, maka derajat verteks v adalah d(v) = 2 g + e
(2.1)
Verteks yang berderajat satu disebut anting-anting. Dengan kata lain, antinganting hanya bertetangga dengan sebuah verteks. Contoh: Pada Gambar 2.3, d(1) = d(4) = 2 dan d(2) = d(3) = 3. 6. Lintasan (Path) Definisi 2.7 Lintasan yang panjangnya n dari verteks awal vo ke verteks tujuan vn di dalam graf G adalah barisan berselang-seling verteks dan edge-edge yang berbentuk vo, e1, v1, e2,,……. vn-1, en, vn sedemikian sehingga e1 = (vo, v1),
e2 =
(v1, v2),………en = (vn-1, vn) adalah edge-edge dari graf G. Contoh: Pada Gambar 2.3, lintasaan 1, 2, 4, 3 adalah lintasan satu, lintasan 1, 2, 4, 3, 1 adalah lintasan dua dan lintasan 1, 2, 4, 3, 2, adalah lintasan tiga. Jadi panjang lintasannya adalah 3.
Universitas Sumatera Utara
7. Siklus (Cycle) atau Sirkuit (Circuit) Definisi 2.8 Lintasan yang berawal dan berakhir pada verteks yang sama disebut sirkuit atau siklus. Contoh: Pada Gambar 2.3, sirkuitnya adalah 1, 2, 3, 1. 8. Terhubung (Connected) Definisi 2.9 Jika graf tak-berarah G disebut graf terhubung maka untuk setiap pasang verteks u dan v di dalam himpunan V terdapat lintasan dari u ke v (yang juga harus berarti ada lintasan dari u ke v). Jika tidak, maka G disebut graf takterhubung (disconnected graph). Contoh: 2 1
3
4
5
Gambar 2.6 Graf terhubung 9. Subgraf dan Komplemen Subgraf Definisi 2.10 Misalkan G = (V, E) adalah sebuag graf. G1 = (V1, E1) adalah subgraf dari G jika V1 bagian dari V dan E1 bagian dari E. Definisi 2.11. Komplemen dari subgraf terhadap graf G adalah graf G2 = (V2, E2 ) sedemikian sehingga E1 = E – E1 dan V2 adalah himpunan verteks anggota-anggota E2 bersisian dengannya. Contoh: 2
2 1
4
G
3
1
5
4
2 1
G1
5
3
G2
5
Gambar. 2.7 Subgraf dan Komplemen Subgraf
Universitas Sumatera Utara
10. Subgraf Merentang (Spanning Subgraph) Definisi 2.12
Subgraf G1 = (V1, E1) dari G = (V, E) dikatakan subgraf
merentang jika V1 = V (yaitu G1 mengandung semua verteks dari G). Contoh: 2
2 1
4
G
3
1
5
4
3
5
G1
Gambar 2.8 Subgraf merentang 11. Cut-Set Definisi 2.13 Cut-set dari graf terhubung G adalah himpunan edge yang dihapus dari G
menyebabkan G tidak terhubung. Jadi, cut-set selalu
menghasilkan dua buah komponen terhubung. Contoh: 1
1
3 6
2
5
4
3 6
2
5
4 Gambar 2.9 Gambar Cut-Set
12. Graf Berbobot (Weighted Graph) Definisi 2.14 Graf berbobot adalah graf yang setiap edgenya diberi sebuah harga (bobot). Contoh:
a
10
b 18
12
22
14
e
20 c
16
d
Gambar 2.10 Graf berbobot
Universitas Sumatera Utara
2.1.4 Graf Sederhana Khusus Graf sederhana khusus yang dijumpai pada banyak aplikasi antara lain sebagai berikut: 1. Graf Lengkap (Complete Graph) Graf lengkap adalah graf sederhana yang seteiap verteks mempunyai edge ke semua verteks lainya. Graf lengkap dengan n buah verteks dilambangkan dengan Kn. Setiap verteks pada Kn berderajat n – 1. Jumlah edge pada graf lengkap yang terdiri dari n buah verteks adalah n(n - 1)/2. Karena setiap edge terhitung dua kali untuk pasangan verteks yang bersisian dengannya, maka jumlah edge seluruhnya dibagi dua. Contoh:
Gambar 2.11 Graf lengkap K4 2. Graf Lingkaran Graf lingkaran adalah graf sederhana yang setiap verteks berderajat dua. Graf lingkaran dengan n verteks dilambangkan dengan Cn. Contoh:
Gambar 2.12 Graf lingkaran 3. Graf Teratur (Regular Graph) Graf yang setiap verteks mempunyai derajat yang sama disebut graf teratur. Apabila derajat setiap verteks adalah r, maka graf tersebut disebut sebagai graf teratur derajat r.
Universitas Sumatera Utara
Contoh:
Gambar 2.13 Graf teratur dengan n = 6 dan r = 3 4. Graf Bipartit (Bipartite Graph) Graf bipartite adalah graf G yang himpunan verteks dapat dikelompokkan menjadi dua bagian V1 dan V2, sedemikian sehingga setiap edge di dalam G menghubungkan sebuah verteks di V1 ke sebuah verteks V2. Dengan kata lain, setiap pasang verteks di V1 (demikian pula dengan verteks di V2) tidak bertetangga. Apabila setiap verteks di V1 bertetangga dengan semua verteks di V2, maka G(V1,V2) disebut sebagai graf bipartite lengkap, dilambangkan dengan Km, n. Jumlah edge pada graf bipartite lengkap adalah m x n. Contoh:
Gambar 2.14 Bipartit lengkap K2, 3
Universitas Sumatera Utara
2.1.5 Representasi Graf
Bila graf akan diproses dengan program komputer, maka graf harus direpresentasikan di dalam memori. Terdapat beberapa representasi yang mungkin untuk graf sebagai berikut: 1. Matriks Ketetanggaan (Adjacency Matrix) Matiks ketetanggaan adalah representasi graf yang paling umum. Misalkan G = (V, E) adalah graf dengan n verteks, n ≥ 1. Matriks ketetanggaan G adalah matriks dwimatra yang berukuran n x n. Misalkan matriks tersebut dinamakan A = [aij], jika verteks i dan j bertetangga, maka aij = 1, sebaliknya jika i dan j tidak bertetangga, maka aij =0. Contoh: 1
2
3
4
1 0 1 1 0
1 2 3 4
2 1 0 1 1
3 1 1 0 1
4 0 1 1 0
Gambar 2.15 Matriks ketetanggaan
2. Matriks Bersisian (Incidency Matrix) Matriks bersisian adalah matriks yang menyatakan kebersisian verteks dan edge. Contoh:
1 e1
e3
e2
2
3 e4
e5
1 2 3 4
e1 1 0 1 0
e2 1 0 1 0
e3 1 1 0 0
e4 0 1 0 1
e5 0 0 1 1
Gambar 2.16 Matriks bersisian 4
Universitas Sumatera Utara
3. Senarai Ketetanggaan (Adjency Matrix) Kelemahan matriks ketetanggaan adalah bila graf memiliki jumlah edge relative sedikit, karena matriksnya bersifat jarang (sparse), yaitu mengandung banyak elemen nol, sedangkan elemen bukan nol sedikit. Senarai ketetanggaan mengenumerasi verteks yang bertetangga dengan setiap verteks di dalam graf. 1
Contoh:
2
Senarai ketetanggaan 1: 2,3 2: 1, 3, 4 3: 1, 2, 4 4: 2, 3
3
4
Gambar 2.17 Senarai ketetanggaan
2.2 Pewarnaan Graf
Teori pewarnaan graf merupakan suatu cabang teori graf yang mempelajari cara mewarnai suatu graf sedemikian sehingga tidak terdapat dua verteks saling bertetangga pada graf tersebut yang berwarna sama. Terdapat beberapa
metode
pewarnaan graf, yaitu metode pewarnaan verteks, pewarnaan edge, dan pewarnaan region (Munir, 2007). Definisi 2.15 Pewarnaan verteks adalah pemberian warna pada verteks di dalam graf sedemikian sehingga verteks-verteks bertetangga mempunyai warna yang berbeda. Contoh:
1
2
5 7
3
6
4
Gambar 2.18 Pewarnaan verteks
Universitas Sumatera Utara
Definisi 2.16 Pewaranaan edge adalah pemberian warna pada edge di dalam graf sedemikian sehingga edge-edge bertetangga mempunyai warna yang berbeda. Contoh:
1
2
3
4
Gambar 2.19 Pewarnaan edge Definisi 2.17 Pewaranaan region adalah pemberian warna pada region di dalam graf sedemikian sehingga region-region bertetangga mempunyai warna yang berbeda. Contoh:
2
3 Merah Pink
Hijau
Biru
1
4 Pink
Hijau
Merah Biru
6
5
Gambar 2.20 Pewarnaan region Berhubung metode pewarnaan edge dan region memiliki konsep yang mirip dengan metode pewarnaan verteks, penulis hanya mempelajari metode pewarnaan verteks saja dalam penulisan ini. Pemberian sembarang warna pada verteks diperbolehkan asalkan berbeda dengan verteks tetangganya.
2.3
Algoritma Tabu Search Menurut Glover dan Laguna (1997) kata tabu atau “taboo” berasal dari bahasa
Tongan, suatu bahasa Polinesia yang digunakan oleh suku Aborigin pulau Tonga untuk mengindikasikan suatu hal yang tidak boleh “disentuh” karena kesakralannya.
Universitas Sumatera Utara
Tabu menunjukkan tidak boleh/terlarang untuk dilakukan (penting) yang berkaitan erat dengan memori sosial dari suatu kelompok masyarakat. Menurut kasus Webster, tabu berarti larangan yang dipaksakan oleh kebudayaan sosial sebagai suatu tindakan pencegahan atau sesuatu yang dilarang karena berbahaya. Algoritma tabu search pertama kali diperkenalkan oleh Glover sekitar tahun 1986. Glover menyatakan bahwa tabu search adalah salah satu prosedur metaheuristik tingkat tinggi untuk penyelesaian permasalahan optimisasi kombinatorial. Algoritma tabu search ini dirancang untuk mengarahkan metode-metode lain untuk keluar atau menghindari ke dalam solusi optimal yang bersifat lokal. Kemampuan algoritma tabu search dalam menghasilkan solusi yang mendekati optimal telah dimanfaatkan dalam beragam permasalahan di berbagai bidang seperti masalah pewarnaan graf. Struktur memori fundamental dalam algoritma tabu search dinamakan tabu list. Tabu list menyimpan atribut dari sebagian move (transisi solusi) yang telah diterapkan pada iterasi-iterasi sebelumnya. Algoritma tabu search menggunakan tabu list untuk menolak solusi solusi yang memenuhi atribut tertentu guna mencegah proses pencarian mengalami cycling pada daerah solusi yang sama, dan menuntun proses pencarian menelusuri daerah solusi yang belum dikunjungi. Tanpa menggunakan strategi ini, local search yang sudah menemukan solusi optimum local dapat terjebak pada daerah solusi optimum local tersebut pada iterasi-iterasi berikutnya. Perekaman solusi secara lengkap dalam sebuah forbidden list dan pengecekan apakah sebuah kandidat solusi tercatat dalam list. Jadi, tabu list hanya menyimpan langkah transisi (move) yang merupakan lawan atau kebalikan dari langkah yang telah digunakan dalam iterasi sebelumnya untuk bergerak dari satu solusi ke solusi berikutnya. Dengan kata lain tabu list berisi langkah-langkah yang mengembalikan solusi yang baru ke solusi yang lama.
Universitas Sumatera Utara
Pada tiap iterasi, dipilih solusi baru yang merupakan solusi terbaik dalam neighbourhood dan tidak tergolong sebagai tabu. Apabila solusi baru ini memiliki nilai fungsi objektif lebih baik dibandingkan solusi terbaik yang telah dicapai sebelumnya, maka solusi baru ini dicatat sebagai solusi terbaik yang baru. Algoritma tabu search memiliki kemampuan untuk keluar dari solusi optimum lokal, tetapi tabu search tidak dapat menentukan optimum global. Algoritma tabu search harus memiliki batasan maksimum jumlah iterasi dan ukuran tabu list yang ditentukan sendiri oleh individu yang menggunakan metode ini/administrator sistem. Jumlah iterasi yaitu banyaknya iterasi yang akan dilakukan untuk mengeksplorasi berbagai space search area. Semakin besar jumlah maksimum iterasi, semakin besar pula peluang untuk menentukan solusi optimal secara global, namun memerlukan waktu perhitungan yang lama. Berikut ini merupakan prosedur algoritma dasar tabu search adalah sebagai berikut: algoritma tabu search begin T:= [ ]; x:=Pilih solusi awal; x*:=x repeat Mencari solusi yang memenuhi x’ є N(x); if f(x’) > f(x*) then x*:=x’ x:=x’; Perbaharui Tabu list T; until kondisi berhenti terpenuhi: End;
Universitas Sumatera Utara
Langkah-langkah algoritma dasar tabu search adalah sebagai berikut: 1. Pilih solusi awal x. 2. Cari subset dari N (x) neighborhood x yang tidak dalam Tabu list. 3. Mencari yang terbaik (x ') dalam set N (x). 4. Jika f(x ') > f (x), maka set x = x'. 5. Memodifikasi Tabu list. 6. Jika kondisi berhenti terpenuhi kemudian berhenti, maka pergi ke langkah dua.
Flowchart dari algoritma tabu search adalah sebagai berikut:
Gambar 2.21 Flowchart algoritma Tabu Search Hal-hal tersebut dapat dikatakan sebagai bahan dasar dari metode algoritma tabu search yang nantinya akan digunakan untuk memecahkan masalah pewarnaan graf pada pembahasan selanjutnya.
Universitas Sumatera Utara