PENERAPAN ALGORITMA GENETIK PADA PENYELESAIAN MASALAH PEWARNAAN GRAF Desi Aristia Firdiani [email protected] Pembimbing I : Manahan Siallagan, S.Si.,M.T. Pembimbing II : Irawan Afrianto, S.T. Fakultas Teknik dan Ilmu Komputer, Jurusan Teknik Informatika Universitas Komputer Indonesia Abstrak Perkembangan ilmu pengetahuan untuk menyelesaikan suatu masalah yang dapat ditangani oleh suatu algoritma yang efisien semakin luas. Jenis masalah dapat berkisar dari masalah yang mudah sampai ke masalah yang kompleks, seperti masalah pewarnaan graf. Masalah pewarnaan graf merupakan salah satu konsep dalam graf tak berarah, bagaimana mewarnakan setiap verteks pada suatu graf tak berarah sehingga setiap verteks yang terhubung oleh edge menerima warna yang berbeda. Pewarnaan secara tepat dengan jumlah warna yang minimum pada umumnya merupakan pekerjaan yang rumit, masalah tersebut merupakan salah satu masalah yang termasuk NP-Complete yang sulit ditemukan solusinya. Salah satu cara untuk menyelesaikan masalah Pewarnaan graf adalah dengan menggunakan metode heuristik. Algoritma genetik merupakan suatu metode penyelesaian masalah yang didasarkan pada metode heuristik, dimana mekanisme kerjanya menirukan proses evolusi biologi Darwin. Dengan menggunakan penyandian yang tepat dan pendefinisian fungsi fitness yang jelas maka algoritma genetik dapat dengan mudah diimplementasikan serta dengan menerapkan mekanisme seleksi, perkawinan silang, mutasi, dan update generasi secara tepat maka algoritma genetik dapat memberikan solusi untuk masalah pewarnaan graf. Kata kunci : verteks, edge, Np-Complete, fitness, Algoritma Genetik merupakan suatu metode penyelesaian masalah yang didasarkan pada metode heuristik. I. Pendahuluan Pada graf 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. Pewarnaan graf secara tepat dengan jumlah warna yang minimum, misalnya untuk sebuah pewarnaan yang menggunakan 3 macam warna untuk mewarnakan graf dengan 50 verteks pada umumnya merupakan pekerjaan yang rumit dan perlu dicari solusinya. Masalah diatas merupakan masalah yang termasuk kelompok masalah yang disebut dengan masalah NP-complete yaitu masalah yang sulit ditemukan solusinya. Salah satu cara untuk menyelesaikan masalah NP-complete adalah dengan menggunakan metode heuristik. Ciri algoritma heuristik adalah selalu menemukan solusi yang baik tetapi tidak harus yang terbaik, serta cepat dan mudah untuk diimplementasikan. Algoritma genetik II. Landasan Teori Teori-teori yang digunakan dalam membahas masalah pewarnaan graf dengan algoritma genetik. 2.1Terminologi Graf Graf didefinisikan sebagai suatu pasangan himpunan (V,E), dimana V merupakan himpunan berhingga dan tidak kosong dari simpul-simpul (verteks, points, nodes). Sedangkan E merupakan himpunan sisi (edges atau arcs) yang menghubungkan sepasang simpul. Maka graf G dapat ditulis singkat dengan notasi G = (V,E). Sebuah edge dikatakan berinsidensi (bersisian) jika kedua verteks terhubung oleh edge tersebut. Sebagai contoh edge (vj, vk) berinsidensi dengan verteks vj dan verteks vk. 1 Untuk edge (vj, vk), verteks vj dinamakan verteks asal (initial vertex) dan verteks vk dinamakan verteks terminal (terminal vertex). Dua verteks dikatakan berdekatan (adjacent) jika keduanya dihubungkan oleh sebuah edge. Selain itu, untuk edge (vj, vk), verteks vj dikatakan berdekatan ke (adjacent to) verteks vk, sedangkan verteks vk dikatakan berdekatan dari (adjacent from) verteks vj. Sebuah verteks dinamakan terasing atau terisolasi (isolated vertex) jika tidak ada edge yang bersisian dengannya. Banyaknya edge yang bertemu pada verteks v disebut derajat verteks v. dengan sekumpulan solusi, yang disebut populasi. Setiap individu dalam satu populasi disebut kromosom. Kromosom ini merupakan suatu solusi yang masih berbentuk simbol. Populasi awal dibangun secara acak, sedangkan populasi berikutnya merupakan hasil evolusi kromosom-kromosom mealalui iterasi yang disebut dengan istilah generasi. Pada setiap generasi, kromosom akan melalui proses evaluasi dengan menggunakan alat ukur yang disebut dengan fungsi fitness. Nilai fitness dari suatu kromosom akan menunjukkan kualitas kromosom dalam populasi tersebut. Generasi berikutnya dikenal dengan istilah anak (offspring) yang terbentuk dari gabungan dua kromosom generasi sekarang yang bertindak sebagai induk (parent) dengan menggunakan operator penyilangan (crossover). Selain operator penyilangan, suatu kromosom juga dapat dimodifikasi dengan menggunakan operator mutasi. Populasi generasi baru dibentuk dengan cara menyeleksi nilai fitness dari kromosom induk (parent) dan nilai fitness dari kromosom anak (offspring), serta menolak kromosom-kromosom yang lainnya sehinggga ukuran populasi (jumlah kromosom dalam satu populasi) konstan. Setelah melalui beberapa generasi, maka algoritma ini akan konvergen ke kromosom terbaik. 2.2 Pewarnaan Graf Masalah pewarnaan graf merupakan konsep dari graf tak berarah (undirected graph). Diberikan suatu graf tak berarah G(V,E), bagaimana mewarnakan setiap verteks v V dengan k warna tertentu sedemikian sehingga dua verteks yang berdekatan menerima warna yang berbeda, disebut sebagai masalah pewarnaan graf (graph coloring problem). Biasanya graf dapat diwarnakan secara tepat dengan banyak cara yang berbeda, seperti pada gambar 2.1 menggambarkan tiga pewarnaan graf yang berbeda. III Analisis dan Perancangan Sistem Dalam bab ini akan dibahas beberapa hal diantaranya analisis penerapan algoritma genetik untuk memberikan gambaran bagaimana algoritma genetik ini dapat digunakan dalam menyelesaikan masalah pewarnaan graf yang merupakan suatu masalah optimasi, juga disajikan suatu perancangan sistem perangkat lunak untuk masalah pewarnaan graf. Gambar 2.1 Pewarnaan graf yang tepat 2.3 Algorima Genetik Pada bagian ini dibahas mengenai hal-hal pokok dari algoritma genetik. 3.1 Analisis Masalah dengan Algoritma Genetik Penerapan algoritma genetik dalam pencarian hasil masalah pewarnaan, Dalam pelaksanaannya terdiri dari beberapa proses yaitu : 1. Representasi Kromosom Kromosom dalam algoritma genetik untuk masalah pewarnaan graf ini menggunakan representasi pengkodean nilai bilangan bulat dalam bentuk larik yang tidak berurut. Dalam hal ini kromosom menyatakan semua kemungkinan warna terhadap verteks dalam graf. 2.3.1 Definisi Algoritma Genetik Algoritma Genetik adalah algoritma pencarian heuristik yang didasarkan atas mekanisme evolusi biologis. Keberagaman pada evolusi biologis adalah variasi dari kromosom antar individu organisme. Variasi kromosom ini akan mempengaruhi laju reproduksi dan tingkat kemampuan organisme untuk tetap hidup. 2.3.2 Prinsip Kerja Algoritma Genetik Berdasarkan konsep biologi dan evolusi Darwin, dalam menyelesaikan suatu masalah, algoritma genetik memulai pekerjaannya 2 1 2 3 4 kromosom terbaik mendapatkan fitness N (jumlah kromosom dalam populasi). Seleksi rangking digunakan untuk memilih dua orang tua yang nantinya akan dilakukan proses crossover terhadap kedua orang tua yang terpilih. Kedua orang tua yang terpilih ini, diambil dari fitness terbaik pertama dan fitness terbaik kedua dari hasil setelah dirangking. 5 6 7 8 9 10 Gambar 3.1 Contoh representasi kromosom yang mungkin dengan graf 3-coloring 5. Crossover . Untuk skripsi ini, operator perkawinan silang yang digunakan adalah perkawinan silang 1-titik. Dalam perkawinan silang 1-titik ini, satu titik dipilih secara acak sebagai titik perkawinan silang. Gen-gen dari kedua orang tua ditukar pada titik tersebut kemudian diberikan ke keturunannya. Pada masalah graf 3-coloring digunakan 3 macam warna dengan ketiga macam warna yang digunakan tersebut menyatakan allele dari gen. Allele dari gen tersebut dinyatakan dengan bilangan bulat 0, 1 dan 2 dimana angka tersebut menyatakan warna yang berbeda-beda. Sehingga kromosom merupakan suatu barisan bilangan bulat yang terdiri dari angka 0, 1 dan 2 dan urutan angka tersebut tidak diperhatikan karena merupakan suatu bentuk pengkodean nilai. Setiap verteks menerima setiap nilai 0, 1, atau 2 secara random. Contoh reperesentasi kromosom dari gambar 3.1 adalah sebagai berikut : 1 1 0 2 0 1 2 2 2 6. Mutasi Mutasi yang dilakukan dalam skripsi ini adalah mutasi permutasi. Mutasi yang dapat dilakukan yaitu dengan memilih dua nilai gen dari kromosom dan kemudian nilai tersebut saling dipertukarkan. Penukaran untuk setiap nilai dilakukan secara acak. 0 3.2 Perancangan Sistem 2. Inisialisasi populasi Pada awal proses algoritma genetik perlu ditentukan terlebih dahulu populasi awal dari kumpulan kromosom yang akan diproses. Populasi awal ini dipilih secara random. Mulai Jumlah verteks,ukuran populasi, maksimum generasi, pc, pm 3. Fungsi Fitness atau fungsi Objektif Untuk menyederhanakan pengoperasian algoritma genetik dalam program nantinya, tidak dibuat perbedaan fungsi objektif dan fungsi fitness. Sehingga fungsi fitness yang digunakan untuk mengevaluasi kebaikan suatu kromosom adalah jumlah edge yang valid dalam graf (jumlah edge yang menghubungkan verteks dengan warna yang berbeda) beserta kombinasi warnanya. Fitness = Inisialisasi Populasi Pencarian Random Fungsi Fitness edge yang valid beserta kombinasi warnanya Seleksi 4. Seleksi Seleksi yang digunakan untuk masalah pewarnaan graf ini adalah seleksi rangking. Seleksi ini merangkingkan kromosom dalam populasi kemudian setiap kromosom menerima nilai fitness baru berdasarkan dari rangking tersebut. Kromosom yang terburuk akan mendapatkan fitness 1, yang kedua terburuk mendapatkan 2, dan seterusnya sampai Crossover Iterasi generasi sudah mencapai generasi maksimum Mutasi Tidak Ya Selesai Gambar 3.1 Diagram alir proses penyelesaian algoritma genetik 3 IV. Implementasi Setelah tahap analisis dan perancangan sistem, tahap selanjutnya adalah implementasi sistem. 4.1 Implementasi Program Implementasi algoritma genetik pada masalah pewarnaan graf menggunakan Borland Delphi 7.0, dengan menyediakan beberapa jenis parameter dari algoritma genetik sebagai gambaran dari kerangka kerja algoritma genetik itu sendiri. 20 20 20 30 30 30 30 30 30 30 30 30 30 40 40 40 40 40 40 40 40 40 40 50 50 50 50 50 50 50 50 50 50 4.1 Pengujian Program Berikut adalah hasil percobaan yang dilakukan terhadap permasalahan pewarnaan graf 3-coloring. Percobaan dilakukan dengan ukuran populasi 100, maksimum generasi 100, probabilitas crossover (Pc) 0,6, probabilitas mutasi (Pm) 0,04. Pada contoh pengujian, graf yang dibangkitkan secara random untuk setiap jumlah verteks berbeda-beda dengan banyaknya edge yang menghubungkan setiap verteks sebagai berikut : Untuk verteks 10, banyaknya edge 14. Untuk verteks 20, banyaknya edge 29. Untuk verteks 30, banyaknya edge 43. Untuk verteks 40, banyaknya edge 58. Untuk verteks 50, banyaknya edge 73. Fitness dan waktu proses yang yang dihasilkan dari tahap pengujian, dapat dilihat pada tabel : Tabel 4.1 Fitness dan waktu proses (ms) yang dihasilkan dengan jumlah verteks yang berbeda-beda Waktu Jumlah Banyak Fitness Proses Verteks Edge (ms) 10 14 14 8453 10 14 14 8563 10 14 14 8437 10 14 14 8625 10 14 14 8593 10 14 14 8641 10 14 14 8531 10 14 14 8563 10 14 14 8391 10 14 14 8547 20 29 29 27078 20 29 29 27781 20 29 29 27797 20 29 29 27453 20 29 29 28296 20 29 29 27203 20 29 28 26281 29 29 29 43 43 43 43 43 43 43 43 43 43 58 58 58 58 58 58 58 58 58 58 73 73 73 73 73 73 73 73 73 73 29 29 29 43 43 42 43 43 43 43 43 43 43 58 58 58 58 57 58 57 58 58 57 72 70 73 72 72 72 71 73 73 71 27500 28312 27578 57843 56578 54688 55750 55640 56016 56813 55391 56515 56172 95828 93532 94859 94391 94235 93437 92672 96485 95718 95515 150188 140109 146610 139953 143891 150609 137422 138063 149688 143032 V. Kesimpulan Dalam bab ini akan dijabarkan kesimpulan dan saran selama proses pembuatan skripsi dengan harapan kesimpulan dan saran ini dapat menjadi masukan bagi siapa saja yang berkeinginan untuk mengembangkannya. 5.1 Kesimpulan 1. Dari hasil percobaan dengan program dalam penerapan terhadap salah satu masalah pewarnaan graf, algoritma genetik menunjukkan kesuksesan dengan berhasil menyelesaikan graf 3-coloring yaitu dari banyaknya edge yang menghubungkan antar dua verteks pada graf tercacat sebanyak 29 edge telah menghubungkan verteks dengan warna yang berbeda, ini berarti fitness terbaik tercapai. 4 2. Untuk permasalahan pewarnaan graf 3coloring pada percobaan yang dilakukan dengan ukuran verteks yang berbeda-beda, dengan ukuran populasi 100, maksimum generasi 100 di dapat probabilitas crossover (Pc) terbaik 0,6 dan probabilitas mutasi (Pm) terbaik 0,04. 3. Berdasarkan percobaan yang dilakukan, dapat dilihat bahwa dengan algoritma genetik, jika jumlah generasi diperbesar maka hasil optimum dapat dicapai. 4. Dari hasil beberapa kali percobaan, bahwa semakin banyak verteks yang digunakan maka waktu proses yang diperlukan algoritma genetik untuk menyelesaikan graf 3-coloring akan semakin lama. 8. Pressman, Roger S., Ph. D, Rekayasa Perangkat Lunak: Pendekatan Praktis ( Buku Satu), Andi, Yogyakarta, 2002. 9. Suyanto, Algoritma Genetika dalam MATLAB, Andi, Yogyakarta, 2005. 10. Yantini, Indra B& Nasution, Erliansyah, Algoritma dan Struktur Data dengan C++, Graha Ilmu, Yogyakarta, 2005. 5.2 Saran Dari hasil penulisan skripsi ini serta percobaan program berdasarkan algoritma genetik, terdapat beberapa saran yang ingin penulis sampaikan antara lain : 1. Perlu dipikirkan bagaimana jika masalah pewarnaan graf ini dikembangkan dengan algoritma lain, misalnya dengan algoritma sekuensial. 2. Implementasi pada masalah yang lebih kompleks, misalnya saja pada kasus penjadwalan. 3. Perlu dipikirkan untuk melakukan perbandingan dengan algoritma lainnya, sehingga bisa mengamati kualitas hasil algoritma genetik jika dibandingkan dengan hasil yang diperoleh algoritma lain Daftar Pustaka 1. Deo, Narsing, 1974, Graph Theorory with application To engineering and Computer Science, Prentice-Hall International. 2. Gen, Mitsuo & Cheng Wei, Run; Genetic Algorithm & Engineering Design; Newyork, A Wiley-Interscience Publication, 1997. 3. Hariyanto, Bambang, MT, Ir., Struktur Data Memuat Dasar Pengembangan Orientasi Objek, Informatika, Bandung, 2003. 4. http://www.dimacs.rutgers.edu/Volumes/V ol26.html. 5. Kadir, Abdul, Dasar Pemrograman DELPHI 5.0 (Jilid 1), Andi, Yogyakarta, 2001. 6. Kusumadewi, Sri, Penyelesain Masalah Optimasi Menggunakan Teknik-teknik Heuristik, Graha Ilmu, Yogyakarta, 2003. 7. Munir, Rinaldi, Matematika Diskrit Edisi Kedua, Informatika Bandung, 2001. 5