Studi Pewarnaan Graf Menggunakan Algoritma Tabu Search

(1)

STUDI PEWARNAAN GRAF MENGGUNAKAN ALGORITMA TABU SEARCH SKRIPSI

Diajukan untuk melengkapi tugas dan memenuhi syarat mencapai gelar Sarjana Sains

SUPARDI 090823016

DEPARTEMEN MATEMATIKA

FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM UNIVERSITAS SUMATERA UTARA

MEDAN 2011


(2)

PERSETUJUAN

Judul : STUDI PEWARNAAN GRAF MENGGUNAKAN ALGORITMA TABU SEARCH

Kategori : SKRIPSI

Nama : SUPARDI

Nomor Induk Mahasiswa : 090823016

Program Studi : SARJANA (S1) MATEMATIKA

Departemen : MATEMATIKA

Fakultas : MATEMATIKA DAN ILMU PENGETAHUAN

ALAM (FMIPA) UNIVERSITAS SUMATERA UTARA

Diluluskan di

Medan, Agustus 2011 Komisi Pembimbing :

Pembimbing 2 Pembimbing 1

Drs. Sawaluddin, M.IT Drs. Bambang Irawan, M.Sc

NIP. 19591231 199802 1 001 NIP. 19470421 197603 1 001

Diketahui/ Disetujui oleh

Departemen Matematika FMIPA USU Ketua,

Prof. Dr. Tulus, M.Si. NIP.19620901 198803 1 002


(3)

PERNYATAAN

STUDI PEWARNAAN GRAF MENGGUNAKAN ALGORITMA TABU SEARCH

SKRIPSI

Saya mengakui bahwa skripsi ini adalah hasil kerja saya sendiri, kecuali beberapa kutipan dan ringkasan yang masing-masing disebutkan sumbernya.

Medan, Agustus 2011

Supardi 090823016


(4)

PENGHARGAAN

Dengan segala kerendahan hati penulis memanjatkan puji dan syukur kehadirat Allah SWT yang Maha Pengasih dan Penyayang atas rahmat dan perlindungan-Nya, yang membuat penulis mampu mengerjakan dan menyelesaikan penulisan skripsi ini.

Ucapan terima kasih penulis sampaikan kepada Drs. Bambang Irawan, M.Sc, dan Drs. Sawaluddin, M.IT selaku Dosen pembimbing atas arahan, nasehat, motivasi, dan kepercayaan yang diberikan kepada penulis dalam mengerjakan skripsi ini. Ucapan terima kasih juga disampaikan kepada Drs. Partano Siagian, M.Sc dan Drs. Marihat Situmorang, M.Kom selaku Dosen pembanding yang banyak memberikan saran dan masukan dalam penyelesaian skripsi ini. Ucapan terima kasih juga penulis sampaikan kepada Prof. Dr. Tulus, M.Si. dan Dra. Mardiningsih, M.Si. selaku Ketua dan Sekretaris Departemen Matematika FMIPA USU, Bapak dan Ibu Dosen di Departeman Matematika FMIPA USU, dan Staf Administrasi Departeman Matematika FMIPA USU. Terkhusus, penulis mengucapkan terima kasih kepada Ibunda tercinta, Tasmi dan keluarga besar Bapak dari Ibunda, Tamijan atas doa, kasih sayang, kepercayaan, serta dukungannya baik secara moril maupun materil, yang menjadi sumber inspirasi dan motivasi bagi penulis untuk tetap dapat menjadi seseorang yang pantas kalian banggakan. Juga untuk Adik penulis tersayang Sulastri dan Irwansyah yang selalu memberikan semangat dan dukungannya. Terima kasih kepada sahabat-sahabat penulis khususnya Ibnu Haris Lubis, Novi Yuanda Lubis, Muhammad Haikal, Riko Azhari, Maysaroh Lubis, dan Abdul Syukur, atas doa, perhatian, dan dukungannya selama ini bagi penulis. Terima kasih kepada teman-teman Mahasiswa Matematika Ekstensi S1 angkatan 2009 khususnya Azi Rianto, Azwar Syarif, Bayu Asmara, Oky Ferdiansyah, Oktavianus Barus, Andre Setiawan, Rudi Irawan, dan Leila Mawaddah untuk persahabatan, kebersamaan, dukungan, dan motivasinya bagi penulis selama perkuliahan dan penulisan skripsi ini.

Demikian penulis sampaikan, semoga Allah SWT memberikan curahan rahmat, nikmat dan kasih sayang-Nya kepada semua pihak yang telah membantu penulis.

Medan, Agustus 2011 Penulis


(5)

ABSTRAK

Pewarnaan verteks pada graf adalah teknik mewarnai verteks sehingga tidak ada verteks-verteks yang bertetangga memiliki warna yang sama. Hal ini juga dikaitkan dengan penggunaan warna seminimal mungkin. Teknik pewarnaan graf merupakan salah satu subjek yang menarik dan terkenal dalam bidang graf. Teori-teori yang berhubungan dengan hal tersebut telah banyak dikembangkan dan berbagai algoritma dengan kelebihan dan kekurangan masing-masing telah dibuat untuk menyelesaikannya. Terdapat banyak algoritma yang dapat digunakan untuk menyelesaikan permasalahan pewarnaan graf. Salah satu algortima yang dapat diimplementasikan adalah algoritma tabu search. Algoritma ini dikembangkan pertama kali oleh Glover yang merupakan heuristik untuk mengatasi optimum lokal. Fungsi objektif dalam pewarnaan graf adalah meminimumkan konflik pewarnaan, yaitu verteks-verteks bertetangga yang berwarna sama.


(6)

STUDY OF GRAPH COLORING PROBLEM USING TABU SEARCH ALGORITHM

ABSTRACT

Vertices coloring in graph is a technique to apply color on vertices so that there aren’t any neighborhood vertices applied with same color. It is also related with minimum color using. Graph coloring technique is one of interesting and famous subject on graph. Any related theory and algorithms were developed with its overplus and deficiency. It means that the lecture can’t do on the same time. There are many algorithms that can be used to solve graph coloring problem. One of the algorithm can be implemented is tabu search algorithm. This algorithm first developed by Glover that is a heuristic strategy to solve local optimum. Objective function on graph coloring problem is to minimize coloring conflict, that is any neighborhood vertices that have same color.


(7)

DAFTAR ISI

Halaman

Persetujuan ii

Pernyataan iii

Penghargaan iv

Abstrak v

Abstract vi

Daftar Isi vii

Daftar Gambar viii

Bab 1 Pendahuluan

1.1 Pendahuluan 1

1.2 Perumusan Masalah 2

1.3 Batasan Masalah 3

1.4 Tinjauan Pustaka 4

1.5 Tujuan Penelitian 4

1.6 Kontribusi Penelitian 5

1.7 Metode Penelitian Bab 2 Landasan Teori

2.1 Teori Graf 6

2.2 Pewarnaan Graf 18

2.3 Algoritma Tabu Search 18

Bab 3 Pembahasan

3.1 Masalah Pewarnaan Graf 24

3.2 Algoritma Tabu Search untuk Masalah Pewarnaan Graf 28

3.2.1 Neighborhood N 30

3.2.2 Manajemen Tabu list 30

3.2.3 Implementasi Algoritma 31

Bab 4 Kesimpulan dan Saran

4.1 Kesimpulan 35

4.2 Saran 35


(8)

DAFTAR GAMBAR

Halaman

Gambar 2.1 Graf sederhana 6

Gambar 2.2 Graf berarah 8

Gambar 2.3 Graf bertetangga 9

Gambar 2.4 Graf terpencil 9

Gambar 2.5 Graf kosong 10

Gambar 2.6 Graf terhubung 11

Gambar 2.7 Subgraf dan Komplemen Subgraf 12

Gambar 2.8 Subgraf merentang 12

Gambar 2.9 Gambar Cut-Set 13

Gambar 2.10 Graf berbobot 13

Gambar 2.11 Graf lengkap K4 14

Gambar 2.12 Graf lingkaran 14

Gambar 2.13 Graf teratur dengan n= 6 dan r = 3 15

Gambar 2.14 Bipartit lengkap K2, 3 15

Gambar 2.15 Matriks ketetanggaan 16

Gambar 2.16 Matriks bersisian 17

Gambar 2.17 Senarai ketetanggaan 17

Gambar 2.18 Pewarnaan graf 18

Gambar 2.19 Flowchartalgoritma tabu search 19

Gambar 3.1 Graf pewarnaan optimal 24

Gambar 3.2 Graf dengan 8 verteks 25

Gambar 3.3 Graf dengan 8 verteks dan 3 warna 26

Gambar 3.4 Graf G = (5, 7) dan matriks ketetanggaannya 31 Gambar 3.5 Sniping contoh program graf G = (5, 7) 31

Gambar 3.6 Graf G = (5, 7) dan χ(G) = 3 32

Gambar 3.7 Graf G = (10, 8) 32

Gambar 3.8 Matrik ketetanggaan graf G = (10, 8) 33

Gambar 3.9 Sniping contoh program graf G = (10, 8) 33


(9)

ABSTRAK

Pewarnaan verteks pada graf adalah teknik mewarnai verteks sehingga tidak ada verteks-verteks yang bertetangga memiliki warna yang sama. Hal ini juga dikaitkan dengan penggunaan warna seminimal mungkin. Teknik pewarnaan graf merupakan salah satu subjek yang menarik dan terkenal dalam bidang graf. Teori-teori yang berhubungan dengan hal tersebut telah banyak dikembangkan dan berbagai algoritma dengan kelebihan dan kekurangan masing-masing telah dibuat untuk menyelesaikannya. Terdapat banyak algoritma yang dapat digunakan untuk menyelesaikan permasalahan pewarnaan graf. Salah satu algortima yang dapat diimplementasikan adalah algoritma tabu search. Algoritma ini dikembangkan pertama kali oleh Glover yang merupakan heuristik untuk mengatasi optimum lokal. Fungsi objektif dalam pewarnaan graf adalah meminimumkan konflik pewarnaan, yaitu verteks-verteks bertetangga yang berwarna sama.


(10)

STUDY OF GRAPH COLORING PROBLEM USING TABU SEARCH ALGORITHM

ABSTRACT

Vertices coloring in graph is a technique to apply color on vertices so that there aren’t any neighborhood vertices applied with same color. It is also related with minimum color using. Graph coloring technique is one of interesting and famous subject on graph. Any related theory and algorithms were developed with its overplus and deficiency. It means that the lecture can’t do on the same time. There are many algorithms that can be used to solve graph coloring problem. One of the algorithm can be implemented is tabu search algorithm. This algorithm first developed by Glover that is a heuristic strategy to solve local optimum. Objective function on graph coloring problem is to minimize coloring conflict, that is any neighborhood vertices that have same color.


(11)

BAB 1

PENDAHULUAN

1.1 Pendahuluan

Seiring dengan berkembangnya ilmu pengetahuan, penyelesaian suatu masalah dapat ditangani oleh suatu algoritma. Jenis masalah dapat berkisar dari masalah yang mudah sampai masalah yang kompleks, seperti masalah pewarnaan graf, pencarian rute terpendek, penjadwalan dan lain sebagainya. Kesulitan suatu masalah berasal dari tidak mungkinnya menghasilkan algoritma yang memberikan hasil yang eksak dalam waktu komputasi yang cepat. Masalah-masalah demikian memerlukan banyak perhitungan serta dengan semakin besarnya ukuran masalah, misalnya pada pewarnaan graf yang merupakan cabang teori graf.

Teori graf merupakan suatu pokok bahasan yang sudah tua usianya namun mempunyai banyak terapan bagi seluruh masyarakat sampai saat ini. Salah satu teori graf yang memiliki kontribusi besar bagi perkembangan ilmu pengetahuan adalah pewarnaan graf. Pada masa awal penemuan teori graf, pewarnaan graf telah menjadi masalah yang banyak menarik perhatian matematikawan dunia, pasalnya dalam sejarah perkembangan teori graf, teori mengenai pewarnaan graf selalu berubah sepanjang waktu.

Pewarnaan graf merupakan suatu cabang teori graf yang mempelajari cara mewarnai suatu graf. Jadi, pewarnaan graf adalah pemberian warna terhadap verteks-verteks graf dimana dua buah verteks-verteks yang berdampingan tidak boleh mempunyai warna yang sama.


(12)

Masalah pewarnaan graf merupakan konsep dari graf tak berarah. Diberikan suatu graf tak berarah G(V, E), untuk mewarnakan n verteks dengan mencoba semua kemungkinan yang ada, sehingga setiap verteks yang berdekatan pada graf G menerima warna yang berbeda, disebut sebagai masalah pewarnaan graf. Pewarnaan graf secara tepat dengan jumlah yang minimum pada umumnya merupakan pekerjaan yang rumit, misalnya untuk mewarnakan graf dengan banyak verteks pada umumnya merupakan pekerjaan yang sulit dan perlu dicari solusinya.

Salah satu cara untuk menyelesaikan masalah pewarnaan graf adalah dengan menggunakan metode heuristik. Istilah heuristik berasal dari bahasa Yunani, heuriskin, yang artinya mencari atau menemukan. Metode heuristik sesuai untuk menangani masalah yang sulit untuk dipecahkan. Metode heuristik tidak memiliki algoritma pencarian solusi optimum yang pasti tetapi memiliki kaidah yang dapat mengekplorasi ruang pencarian solusi optimum atau mendekati.

Malguti (2010) menyatakan bahwa dari sekian banyaknya algoritma yang ada untuk menyelesaikan permasalahan pewarnaan graf, algoritma tabu search merupakan salah satu pilihan yang tepat. Algoritma tabu search adalah salah satu metode heuristik untuk penyelesaian permasalahan optimisasi (Glover, 1995).

Jadi, permasalahan pewarnaan graf dapat diselesaikan dengan menggunakan algoritma tabu search. Berdasarkan penjelasan tersebut, dalam skripsi ini akan membahas tentang: “Studi Pewarnaan Graf Menggunakan Algoritma Tabu Search”.

1.2 Perumusan Masalah

Berdasarkan pendahuluan, didapat rumusan masalah yaitu bagaimana menyelesaikan masalah pewarnaan graf menggunakan algoritma tabu search.


(13)

1.3 Pembatasan Masalah

Pada penelitian ini terdapat beberapa batasan masalah sebagai berikut: 1. Graf yang digunakan adalah graf tak berarah.

2. Pewarnaan graf yang akan diimplementasikan yaitu hanya pada bagian pewarnaan verteks saja.

3. Hasil yang ingin dicapai adalah graf dengan setiap verteks yang terhubung oleh suatu edge menerima warna berbeda.

1.4 Tinjauan Pustaka

Secara matematis graf g adalah pasangan himpunan (V, E), ditulis dengan notasi G(V, E), yang dalam hal ini V adalah himpunan tidak kosong dari verteks dan E adalah himpunan edge yang menghubungkan sepasang verteks. Terdapat beberapa jenis masalah pewarnaan graf yaitu pewarnaan verteks, pewarnaan edge, dan pewarnaan region. Pewarnaan verteks adalah memberi warna pada verteks didalam graf sedemikian sehingga dua verteks bertetangga mempunyai warna yang berbeda(Munir, 2007).

Masalah pewarnaan graf merupakan konsep dari graf tak berarah. Diberikan suatu graf tak berarah G(V, E), bagaimana mewarnakan n verteks dengan k warna tertentu sedemikian sehingga dua verteks yang berdekatan menerima warna yang berbeda disebut masalah pewarnaan graf. Pada masalah pewarnaan graf yang menarik adalah menentukan minimum jumlah warna yang digunakan untuk mewarnakan graf. Graf G yang memerlukan k warna yang berbeda untuk melakukan pewarnaan yang tepat, disebut k kromatik graf dan bilangan k disebut dengan bilangan kromatik dari graf G(Deo, 1986).


(14)

Algoritma tabu search pertama kali diperkenalkan oleh Glover sekitar tahun 1986. Glover menyatakan bahwa algoritma tabu search adalah salah satu prosedur heuristik untuk penyelesaian permasalahan optimisasi kombinatorial. Algoritmatabu search ini dirancang untuk mengarahkan metode-metode lain untuk keluar atau menghindari solusi optimal yang bersifat lokal. Kemampuan algoritma tabu search dalam menghasilkan solusi yang mendekati optimal telah dimanfaatkan dalam beragam permasalahan di berbagai bidang mulai bidang penjadwalan hingga bidang telekomunikasi(Glover, 1995).

1.5 Tujuan Penelitian

Tujuan dari penelitian ini adalah sebagai berikut:

1. Untuk menyelesaikan masalah pewarnaan graf menggunakan algoritma tabu search.

2. Untuk mencari solusi optimum dari masalah pewarnaan graf menggunakan algoritma tabu search.

1.6 Kontribusi Penelitian

Kontribusi setelah melakukan penelitian ini, penulis berharap penelitian ini dapat digunakan sebagai informasi dan wawasan pengetahuan tentang teori graf dan algoritma, khususnya tentang pewarnaan graf dan algoritma tabu search.Penulisan ini juga dapat digunakan untuk bahan pembanding yang ingin mengetahui lebih banyak tentang masalah pewarnaan graf dan algoritma tabu search serta dapat diaplikasikan dalam kehidupan nyata seperti masalah penjadwalan kuliah, penjadwalan pekerjaan, penjadawalan job shop, pewarnaan pada peta, pengaturan lampu lalu lintas, penggunaan frekwensi radio, penyimpanan barang, pengaturan jalan raya, dan lain sebagainya.


(15)

1.7 Metode Penelitian

Metode penelitian ini digunakan sebagai pedoman dalam melaksanakan penelitian agar hasil yang dicapai tidak menyimpang dari tujuan yang telah ditentukan sebelumnya. Penulis mengumpulkan data dengan studi literature yaitu menggunakan sumber-sumber otentik dari buku, jurnal, artikel, dan browsing internet untuk mendapatkan data dan informasi yang berkaitan dengan judul yang diambil. Metode penelitian ini bersifat literatur yaitu memperkenalkan teori graf, definisi graf, jenis-jenis graph, terminologi dasar graf, graf sederhana khusus, representasi matriks graf, pewarnaan graf, algoritma tabu search, membahas masalah pewarnaan graf, membahas algoritma tabu search untuk masalah pewarnaan graf dan mengimplementasikan algoritma tabu search ke dalam sebuah program komputer dengan menggunakan bahasa pemrograman Java.


(16)

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 verteksu dan verteksv, maka e dapat ditulis sebagai e = (u, v).


(17)

3 2

1

1

4 e1

e2

e4 e3

e7 e6

e5

Contoh:

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,


(18)

3 2

1 1

4

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), verteksu dinamakan initial veteks dan verteksv dinamakan terminal verteks. Contoh:

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.


(19)

3 2

1

4

3 2

1

Contoh:

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 verteksu dan verteksv.

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:

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.


(20)

3 2

1

4 5

Contoh:

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 verteksv adalah

d(v) = 2 g + e (2.1)

Verteks yang berderajat satu disebut anting. Dengan kata lain, anting-anting 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 voke verteks tujuan vn di dalam graf G adalah barisan berselang-seling verteks dan edge-edge yang berbentuk vo, e1,v1,e2,,…….vn-1, en, vnsedemikian 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


(21)

3 2 1 4 5 3 2 1 4 5 2 1 4 5 3 2 1 5 G G

1 G2

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 verteksu 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 tak-terhubung (disconnected graph).

Contoh:

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 dariV 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 E2bersisian dengannya.


(22)

3 2 1 4 5 3 2 1 4 5 G G 1 3 2 1 4 5 6 3 2 1 4 5 6 b a c e d 10 12 14 16 18 20 22

10. Subgraf Merentang (Spanning Subgraph)

Definisi 2.12 Subgraf G1 = (V1, E1) dari G = (V, E) dikatakan subgraf merentang jika V1= V (yaitu G1mengandung semua verteks dari G).

Contoh:

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:

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).


(23)

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


(24)

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 V1ke sebuah verteksV2. Dengan kata lain, setiap pasang verteks di V1 (demikian pula dengan verteks di V2) tidak bertetangga. Apabila setiap verteks di V1bertetangga 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 xn.

Contoh:


(25)

3 2 4 1 3 2 1 e1 e2 e3 e5 e4

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 verteksi danj bertetangga, maka aij= 1, sebaliknya jika i dan j tidak bertetangga, makaaij =0.

Contoh:

Gambar 2.15 Matriks ketetanggaan

2. Matriks Bersisian (Incidency Matrix)

Matriks bersisian adalah matriks yang menyatakan kebersisian verteks dan edge.

Contoh:

1 2 3 4

1 0 1 1 0

2 1 0 1 1

3 1 1 0 1

4 0 1 1 0

e1 e2 e3 e4 e5

1 1 1 1 0 0

2 0 0 1 1 0

3 1 1 0 0 1


(26)

1 2

3 5

7

3 2

4 1

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. Contoh:

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:

Senarai ketetanggaan 1: 2,3 2: 1, 3, 4 3: 1, 2, 4 4: 2, 3


(27)

3 2

1

4

Merah

Biru Hijau

Pink Merah

Biru Hijau

Pink

2 3

4

5 6

1

Definisi 2.16 Pewaranaan edge adalah pemberian warna pada edge di dalam graf sedemikian sehingga edge-edge bertetangga mempunyai warna yang berbeda.

Contoh:

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:

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


(28)

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.


(29)

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;


(30)

Langkah-langkah algoritma dasar tabu search adalah sebagai berikut: 1. Pilih solusi awal x.

2. Cari subset dari N (x) neighborhood xyang tidak dalam Tabu list. 3. Mencari yang terbaik (x ') dalam set N (x).

4. Jika f(x ') > f (x), maka setx = 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 Flowchartalgoritma 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.


(31)

C1

1 2

3 4

5 6

7 8

C3

1 2

3 4

5 6

7 8

C2

1 2

3 4

5 6

7 8

BAB 3

PEMBAHASAN

3.1 Masalah Pewarnaan Graf

Masalah pewarnaan graf merupakan konsep dari graf tak berarah. Diberikan suatu graf tak berarah G(V, E), bagaimana mewarnakan n verteks dengan k warna tertentu sedemikian sehingga dua verteks yang berdekatan menerima warna yang berbeda disebut masalah pewarnaan graf. Pada masalah pewarnaan graf yang menarik adalah menentukan minimum jumlah warna atau pewarnaan optimal yang digunakan untuk mewarnakan graf (Deo, 1986).

Gambar 3.1. Graf pewarnaan optimal

Pada Gambar 3.1, pewarnaan pada C1menggunakan empat warna, pewarnaan pada C2 menggunakan 3 warna dan pewarnaan pada C3 hanya menggunakan dua


(32)

2

1

6

5 3

4

7

2

1

6

5 3

4

7

2

1 5

3

4

Salah satu algoritma yang cukup dikenal secara luas untuk menangani permasalahan pewarnaan graf adalah algoritma Welch-Powell. Prosedur dari algoritma Welch-Powell dan contohnya sebagai berikut:

Gambar 3.2 Graf dengan 7 verteks

1. Urutkan semua verteks berdasarkan derajatnya, dari derajat besar ke derajat kecil yaitu 4, 2, 3, 6, 7, 1, 5.

2. Ambil warna pertama (misalnya biru), warnai verteks pertama yang sudah di urutkan berdasarkan derajatnya tadi.

3. Kemudian warnai verteks berikutnya yang tidak berdampingan dengan verteks pertama tadi dengan warna yang masih sama (biru).


(33)

2

1

6

5 3

4

7

4. Kemudian lanjutkan dengan warna ke dua, dan seterusnya sampai semua verteks telah diberi warna.

Gambar 3.3 Graf dengan 7 verteks dan 3 warna

Di dalam teori pewarnaan graf, khususnya untuk metode pewarnaan verteks, jumlah minimum warna yang dibutuhkan sedemikian sehingga dapat melakukan pewarnaan graf dinamakan bilangan kromatik graf dan dilambangkan dengan χ(G). Suatu graf G yang memerlukan k warna yang berbeda untuk melakukan pewarnaan yang tepat, disebut k kromatik graf dan bilangan k disebut dengan bilangan kromatik dari graf Gdan dilambangkan dengan χ(G)= χ(k) (Lipschuts dan Lipson, 2002).

Terdapat beberapa sifat mengenai bilangan kromatik ini (Deo, 1986) antara lain:

1. Graf yang terdiri dari verteks-verteks yang terpisah atau terpencil adalah χ(G) = 1.

2. Graf dengan satu atau lebih edge paling kurang mempunyai χ(G) = 2.

3. Jika graf lengkap yang terdiri dari n verteks adalah χ(G) = n, maka semua verteksnya saling berbatasan. Oleh karena itu graf yang memuat graf lengkap dengan r verteks mempunyai paling sedikit χ(G) = r. Sebagai contoh, setiap graf yang mempunyai triangle adalah χ(G) = 3.

4. Jika n adalah bilangan genap, maka graf yang terdiri dari hanya satu sirkuit dengan n ≥ 3 verteks adalah χ(G) = 2 dan jika n adalah bilangan ganjil, maka χ(G) = 3.


(34)

Misalkan G = (V, E) merupakan suatu graf dengan V dan E yang masing-masing verteks dan edge ditetapkan dan k merupakan suatu bilangan bulat positif maka diperoleh beberapa definisi masalah pewarnaan graf sebagai berikut:

Definisi 3.1 Pewarnaan graf dank pewarnaan dari graf Gadalah k kromatik graf jika dan hanya jika terdapat sedikitnya satu pewarna verteks yang menggunakan k warna, yaitu fungsic: V→ {1, 2,…..,k} untuk {i,j} ∈E, c(i) ≠c(j).

Definisi 3.2 Representasi pewarnaan ditunjukkan dengan fungsi c: V →{1, 2, …, k} oleh c= (c(1), c(2), …,c(| V |). Cadalah solusi untuk masalah pewarnaan (G, K). Selain itu, cdikatakan sebagai pewarnaan yang tepat jika dan hanya jikac(i) ≠c(j), ∀ {i, j} E. Jika tidak, makacadalah pewarnaan yang tidak tepat.

Definisi 3.3 Suatu k pewarnaan c = (c (1), c (2),..., c (| V |)) adalah suatu partisi {c1, c2,. . . ,ck} pada Vuntuk xV, xcic(x) = i.Pada bagian ini,ciadalah warna ikelas disebabkan cpewarnaan, yaitu himpunan verteksimemiliki warna dalamc. Definisi 3.4 Mengingat konfigurasic, disebut konflik (atau tepi bertentangan) setiap tepi yang memiliki kedua ujung sama warna dalamc. Set konflik dinotasikan dengan cE (c) dan jumlah konflik (yaitu | cE (c) | juga disebut sebagai jumlah konflik c) adalah tujuan fungsif(c). Sebuah simpul bertentangan adalah titikvV, yang terdapat suatu edge {v, u} dalamcE(c).

Pada tulisan ini menguraikan permasalahan k pewarnaan, yaitu diberikannya suatu graf G dan suatu bilangan bulat k, dengan tujuan untuk memperoleh suatu k pewarnaan yang diperbolehkan. Dilihat dari persoalan optimisasi, objeknya adalah untuk menentukan suatu k pewarnaan dengan meminimalisasi jumlah konflik f(c).


(35)

3.2 AlgoritmaTabu Searchuntuk Masalah Pewarnaan Graf

Konsep dasar dari algoritma tabu search untuk masalah pewarnaan graf adalah pengefektifan proses pencarian solusi dengan cara mencari best solution pada setiap tahap pewarnaan verteks. Pada beberapa tahap pewarnaan dapat dikategorikan sebagai langkah tabu (dilarang) karena akan menghasilkan local optimaldan juga karena akan mengakibatkan langkah pengulangan kembali pencarian ke solusi yang pernah ditemukan sebelumnya. Langkah-langkah ini kemudian dimasukkan ke dalam daftar yang disebut dengan tabu list. Proses pencariannya itu sendiri dilakukan dengan cara menentukan solusi awal dan kemudian dilakukan gerakan (move) ke solusi-solusi berikutnya (neighborhood) dan baru berhenti sampai kriteria penghentian (stopping conditions) tercapai. Metode ini yang akan digunakan untuk menyelesaikan masalah pewarnaan graf.

Hal utama pada algoritma tabu search dalam masalah pewarnaan graf yaitu memeriksa apakah neighborhood dalam graf merupakan tabu atau tidak, hal tersebut tidak cukup dengan menguji status tabupada proses pewarnaan yang akan dihasilkan menuju verteks neighborhood saja. Stopping condition adalah untuk menemukan pewarnaan yang dibolehkan atau untuk mencapai jumlah maksimum pewarnaan. Hal yang paling penting dalam algoritma tabu search adalah neighborhood N dan manajemen tabu list.

3.2.1 Neighborhood N

Diberikan suatu persoalan pewarnaan (G (V, E), k), pencarian daerah Ω terdiri dari seluruh pewarnaan yang mungkin pada G, sehingga |Ω| = |V|k. Suatu fungsi ketanggaan sederhana N: Ω →2 Ω – {Ø} dapat didefinisikan sebagai berikut. Untuk semua atau sebarang konfigurasi c ∈ Ω, suatu tetangga c’ diperoleh dengan mengganti warna pada suatu verteks bertentangan pada c.


(36)

3.2.2 ManajemenTabu List

Terdapat beberapa versi pada dasar algoritma dalam beberapa literatur, namun pada intinya dijelaskan bahwa semua algortima menggunakan kedudukan tabu list (Tℓ). Pada persoalan dalam tulisan ini, bersifat dinamis disesuaikan oleh suatu fungsi yang berdasarkan pada fungsi objektif.

Berikut ini merupakan prosedur algoritma tabu search untuk masalah pewarnaan graf sebagai berikut:

algoritma tabu search

input: graf(V, E){input jumlah verteks dan edge} input:k {jumlah warna untuk mewarnai verteks-verteks}

(C boleh melakukan pewarnaan jika dan hanya jika c(i)≠ c(j) dimana [i,j] ∈ E)

return value:

f(c)best =; {f(c)best adalah solusi pewarnaan terbaik yang diperoleh} begin

{Buat solusi awal c yang feasibel dengan menggunakan suatu metode heuristik tertentu atau secara acak}

f(c):=(c);{f(c) adalah solusi pewarnaan sekarang} tabu_list := null;

repeat

f(c) := f(c)best;

move:=tukar[i][j]{melakukan pertukaran atau perpindahan dari verteks q ke verteks r}

candidate(c) := (c’ ∈N(c): merupakan move dari Neighborhood c ke c’ yang tidak tergolong elemen dari tabu list atau memenuhi kriteria aspirasi};

(pilih c* ∈candidate(c): c* adalah solusi yang memiliki jumlah pewarnaan minimum);

(simpan move yang berlawanan ke dalam tabu list,yaitu yang mengubah c ke c*);

set c := c*; {bentuk move c(i):=k} if ((c) < f(c)) then

f(c)best := c; f(c) :=(c);

until (stopping_condition = TRUE); return(f(c)best);


(37)

Langkah-langkah algoritma tabu search untuk masalah pewarnaan graf dan contohnya adalah sebagai berikut:

1. Langkah satu

Representasikan grafG = (V, E) ke dalam bahasa pemrograman dan nilai k pewarnaan yang akan digunakan:

misalkan:

V = {1, 2, 3, 4, 5}

E = {e1, e2, e3, e3, e4, e5, e6, e7} k = [5]; {k merupakan kandidat solusi} = {1, 2, 3, 4, 5}

dimana c(1) = merah; c(2) = hijau; c(3) = biru c(4) = kuning; c(5) = ungu. jika edge antara verteks i dan verteks j terhubung, maka masukan nilai 1, jika tidak, maka masukan nilai 0 sebagai berikut:

edge[1][2] = 1; edge[2][4] = 0; edge[1][3] = 1; edge[2][5] = 0; edge[1][4] = 0; edge[3][4] = 1; edge[1][5] = 1; edge[3][5] = 1; edge[2][3] = 1; edge[4][5] = 1; 2. Langkah dua

Pilih solusi awalf(c)untuk solusi pewarnaan sekarang dan f(c)bestuntuk solusi pewarnaan terbaik yang dilakukan.

Pada penelitian ini menggunakan metode heuristic untuk membuat solusi awal dengan menggunakan algoritma Greedy.

Prosedur algoritma Greedy adalah sebagai berikut: 1. Inisialisai himpunan solusi dengan himpunan kosong.

2. Urutkan verteks berdasarkan jumlah edge tebanyak (pengurutan dari besar ke kecil).

3. Melakukan pemilihan verteks yang akan diwarnai dengan fungsi seleksi verteks.


(38)

5. Periksa kelayakan warna yang dipilih menggunakan langkah 3. Jika layak warna yang dipilih, maka masukkan ke himpunan solusi.

6. Periksa apakah solusi sudah melilputi perwarnaan seluruh verteks. Jika sudah seluruh verteks, maka berhenti. Jika belum, maka kembali ke langkah 3.

Urutkan verteks sesuai derajat paling tinggi ke rendah: Himpunan c= {v3, v2, v4, v1, v5}

lakukan pewarnaan verteks: c= [3, 2, 4, 1, 5]

hasil solusi awal: f(c) = [c];

f(c)=[3, 2, 4, 1, 5]; didapat solusi awal yaitu: f(c)best = f(c);

f(c)best=[3, 2, 4, 1, 5];

masukkan nilai solusi awal ke dalam tabu list: tabu_list= [3, 2, 4, 1, 5];

3. Langkah tiga

Lakukan pencarian solusi neighborhood c (N(c))dan move ke solusi baru: c’= kandidat solusi yang belum ada di tabu list;

c*= solusi yang memiliki jumlah pewarnaan minimum

c*:= 3; {Membatasi jumlah warna untuk pewarnaan optimum} c* = c;

move= tukar (c[i]c[j]); dimana c[i] ≠ c[j]; set c = c*;

c = [3, 2, 1, 4, 3];

masukkan nilai c ke dalam tabu list: tabu_list= [];

4. Langkah empat


(39)

f(c):= [3, 2, 1, 4, 3]; jika (c < f(c)), maka f(c)best := f(c); f(c) := c;

jika stopping conditiontidak terpenuhi, maka kembali ke f(c)best; f(c)best := f(c);

f(c)best := [3, 2, 1, 4, 3]

masukkan nilai f(c)bestke dalam tabu list: tabu_list:= [];

c’= kandidat solusi pewarnaan yang bukan elemen tabu list c’ = [];

c*= solusi pewarnaan sekarang; c* = move[i][j];

c*= [3, 2, 1, 1, 3];

masukkan nilai c*ke dalam tabu list: tabu_list= [];

solusi pewarnaan lama := solusi pewarnaan sekarang; f(c) := c*;

f(c):= [3, 2, 1, 1, 3]; jika (c < f(c)), maka f(c)best := f(c); f(c) := c;

jika stopping conditiontidak terpenuhi, maka kembali ke langkah f(c)best: f(c)best := f(c);

f(c)best:= [3, 2, 1, 1, 3];

masukkan nilai f(c)bestke dalam tabu list: tabu_list:= [];

c’ = kandidat solusi pewarnaan yang bukan elemen tabu list c’= [];

c*= solusi pewarnaan sekarang; c* = move[i][j];


(40)

tabu_list= [];

solusi pewarnaan lama := solusi pewarnaan sekarang; f(c) := c*;

f(c):= [1, 2, 3, 1, 2]; jika (c < f(c)),maka f(c)best := f(c); f(c):= [1, 2, 3, 1, 2];

jika stopping conditionterpenuhi, maka berhenti.

3.3 Implementasi Algoritma

Pada penulisan ini, algoritma tabu search diimplementasikan ke dalam sebuah program komputer dengan menggunakan bahasa pemrograman Java. Penulis memilih Java karena beberapa alasan yaitu paradigma pemrograman berorientasi objek sangat mendekati permasalahan-permasalahan yang dijumpai di dunia nyata, bahasa pemrograman berorientasi objek seperti Java akan menjadi standar dalam industri perangkat lunak di seluruh dunia di masa depan dan sifat Java yang berorientasi objek akan menjadi tren untuk bahasa-bahasa pemrograman lain di masa mendatang (Nugroho, 2008).

Tujuan penulis mengimplementasikan algoritma adalah sebagai alat bantu untuk menunjukkan bahwa algoritma tabu search dapat menyelesaikan masalah pewarnaan graf. Hasil yang akan dicapai adalah verteks-verteks yang bertetangga tidak mempunyai warna yang sama dan penggunaan jumlah warna yang minimum.


(41)

3 2

1

4 5

Contoh:

1. Diberikan graf G = (V, E) dengan V dan E yang masing-masing verteks dan edge ditetapkan sebagai berikut:

Gambar 3.4 Graf G = (5, 7) matriks ketetanggaannya

Gambar 3.5 Matrik ketetanggaan graf G = (5, 7)

1 2 3 4 5

1 0 1 1 0 0

2 1 0 1 1 0

3 1 1 0 1 1

4 0 1 1 0 1


(42)

3 2

1

4 5

Hasil dari sniping contoh program adalah sebagai berikut:

Gambar 3.5 Sniping contoh program graf G = (5, 7)

Hasil output dari contoh program adalah sebagai berikut:

Hasil output dari contoh program adalah sebagai berikut:


(43)

1

2 3 4

5

6

7 8

9 10

2. Diberikan graf G = (V, E) dengan V dan E yang masing-masing verteks dan edge ditetapkan sebagai berikut:

Gambar 3.7 Graf G = (10, 8)

1 2 3 4 5 6 7 8 9 10

1 0 1 0 0 0 0 1 0 1 1

2 1 0 0 0 0 0 0 1 0 0

3 0 1 0 1 0 1 0 0 0 1

4 0 0 1 0 1 0 0 1 0 0

5 0 0 0 1 0 1 1 0 1 0

6 0 0 1 0 1 0 1 0 0 0

7 1 0 0 0 0 1 0 1 0 0

8 0 1 0 1 0 0 1 0 1 0

9 1 0 0 0 1 0 0 1 0 1

10 1 0 1 0 0 0 0 0 1 0


(44)

1

2 3 4

5

6

7 8

9 10

Hasil dari sniping contoh program adalah sebagai berikut:

Gambar 3.9 Sniping contoh program graf G = (10, 8)

Hasil output dari contoh program adalah sebagai berikut:


(45)

BAB 4

KESIMPULAN DAN SARAN

4.1 Kesimpulan

Berikut merupakan kesimpulan dalam penulisan ini adalah sebagai berikut:

1. Hal yang paling penting dalam algoritma tabu search untuk menyelesaikan masalah pewarnaan graf adalah neighborhood dan manajemen tabu list.

2. Masalah pewarnaan graf pada penelitian ini menentukan minimum jumlah warna atau pewarnaan optimal yang digunakan untuk mewarnakan graf.

4.2 Saran

Berikut ini merupakan saran Penulis dan berharap sebaiknya:

1. Pembaca dapat melanjutkan pembahasan tersebut dalam studi kasus.

2. Pembaca dapat mengaplikasikan penelitian ini ke dunia nyata dengan pengembangan yang lebih baik sehingga dapat lebih bermanfaat, seperti membangun sebuah aplikasi pewarnaan graf untuk penjadwalan mahasiswa dan dosen menggunakan bahasa pemrograman Java, penerapan pewarnaan graf dalam penggunaan frekwensi radio, apliksai pewarnaan graf dalam penyimpanan bahan senyawa kimia berbahaya dan lain sebagainya.


(46)

DAFTAR PUSTAKA

Deo, Narsingh. 1986. Graph Theory with Aplications to Engineering and Computer Science. New Delhi: Prentice Hall of India.

Glover, Fred. 1995. Tabu Search Fundamentals and Uses. Colorado. University of Colorado.

Glover, F. and Laguna, M. 1997. Tabu Search. Kluwer, Norwell, MA.

Jaziri, Wassim. 2008. Local Search Techniques Focus on Tabu Search.Tunisia. University of Sfax.

Lipschutz, Seymour dan Lars Lipson, Mars.2002.Matematika Diskrit Jilid 2. Jakarta: Salemba Teknika.

M. Syslo, Maciej, dan Deo, Narsingh. 1983. Discrete Optimization Algorithms. United States of Amerika: Prentice-Hall.

Munir, Rinaldi. 2005. Matematika Diskrit Edisi 3. Bandung: Informatika Bandung.

Malguti, Enrico. 2010. Tabu Search for the Graph Coloring Problem (extended). Italy. University of Bologna.

Nugroho, Adi. 2008. Algoritma dan Struktur Data dengan Java. Yogyakarta: ANDI.


(1)

3 2

1

4 5

Contoh:

1. Diberikan graf G = (V, E) dengan V dan E yang masing-masing verteks dan edge ditetapkan sebagai berikut:

Gambar 3.4 Graf G = (5, 7) matriks ketetanggaannya

Gambar 3.5 Matrik ketetanggaan graf G = (5, 7)

1 2 3 4 5

1 0 1 1 0 0

2 1 0 1 1 0

3 1 1 0 1 1

4 0 1 1 0 1


(2)

3 2

1

4 5

Hasil dari sniping contoh program adalah sebagai berikut:

Gambar 3.5 Sniping contoh program graf G = (5, 7)

Hasil output dari contoh program adalah sebagai berikut:


(3)

1

2 3 4

5

6

7 8

9 10

2. Diberikan graf G = (V, E) dengan V dan E yang masing-masing verteks dan edge ditetapkan sebagai berikut:

Gambar 3.7 Graf G = (10, 8)

1 2 3 4 5 6 7 8 9 10

1 0 1 0 0 0 0 1 0 1 1

2 1 0 0 0 0 0 0 1 0 0

3 0 1 0 1 0 1 0 0 0 1

4 0 0 1 0 1 0 0 1 0 0

5 0 0 0 1 0 1 1 0 1 0

6 0 0 1 0 1 0 1 0 0 0

7 1 0 0 0 0 1 0 1 0 0

8 0 1 0 1 0 0 1 0 1 0

9 1 0 0 0 1 0 0 1 0 1

10 1 0 1 0 0 0 0 0 1 0


(4)

1

2 3 4

5

6

7 8

9 10

Hasil dari sniping contoh program adalah sebagai berikut:

Gambar 3.9 Sniping contoh program graf G = (10, 8)


(5)

BAB 4

KESIMPULAN DAN SARAN

4.1 Kesimpulan

Berikut merupakan kesimpulan dalam penulisan ini adalah sebagai berikut:

1. Hal yang paling penting dalam algoritma tabu search untuk menyelesaikan masalah pewarnaan graf adalah neighborhood dan manajemen tabu list.

2. Masalah pewarnaan graf pada penelitian ini menentukan minimum jumlah warna atau pewarnaan optimal yang digunakan untuk mewarnakan graf.

4.2 Saran

Berikut ini merupakan saran Penulis dan berharap sebaiknya:

1. Pembaca dapat melanjutkan pembahasan tersebut dalam studi kasus.

2. Pembaca dapat mengaplikasikan penelitian ini ke dunia nyata dengan pengembangan yang lebih baik sehingga dapat lebih bermanfaat, seperti membangun sebuah aplikasi pewarnaan graf untuk penjadwalan mahasiswa dan dosen menggunakan bahasa pemrograman Java, penerapan pewarnaan graf dalam penggunaan frekwensi radio, apliksai pewarnaan graf dalam penyimpanan bahan senyawa kimia berbahaya dan lain sebagainya.


(6)

DAFTAR PUSTAKA

Deo, Narsingh. 1986. Graph Theory with Aplications to Engineering and Computer Science. New Delhi: Prentice Hall of India.

Glover, Fred. 1995. Tabu Search Fundamentals and Uses. Colorado. University of Colorado.

Glover, F. and Laguna, M. 1997. Tabu Search. Kluwer, Norwell, MA.

Jaziri, Wassim. 2008. Local Search Techniques Focus on Tabu Search.Tunisia. University of Sfax.

Lipschutz, Seymour dan Lars Lipson, Mars.2002.Matematika Diskrit Jilid 2. Jakarta: Salemba Teknika.

M. Syslo, Maciej, dan Deo, Narsingh. 1983. Discrete Optimization Algorithms. United States of Amerika: Prentice-Hall.

Munir, Rinaldi. 2005. Matematika Diskrit Edisi 3. Bandung: Informatika Bandung.

Malguti, Enrico. 2010. Tabu Search for the Graph Coloring Problem (extended). Italy. University of Bologna.

Nugroho, Adi. 2008. Algoritma dan Struktur Data dengan Java. Yogyakarta: ANDI.