Analisis Cyberlaw Pada Jaringan Internet

advertisement
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
Download