BAB 1 PENDAHULUAN
1.5 Manfaat Penelitian
Manfaat yang diharapkan dari penelitian ini adalah :
1. Dapat mengetahui seberapa besar peningkatan kinerja mutasi dinamis pada algoritma genetika
2. Hasil penelitian ini dapat menjadi rujukan para pembaca untuk mendalami teknik mutasi dinamis.
BAB 2 TINJAUAN PUSTAKA
2.1 Algoritma Genetika
Algoritma genetika merupakan algoritma pencarian heuristik ysng didasarkan atas mekanisme seleksi alami dan genetika alami (Suyanto, 2014). Adapun konsep dasar yang mengilhami timbulnya algoritma ini adalah teori evolusi alam oleh Charles Darwin, dimana di dalam teori tersebut dijelaskan bahwa proses evolusi alam setiap individu harus mampu beradaptasi terhadap lingkungannya agar dapat bertahan hidup.
Pada algoritma genetika, teknik pencarian dilakukan atas sejumlah solusi yang dikenal dengan populasi. Satu hal yang penting diingat adalah bahwa satu individu menyatakan satu solusi. Populasi terdiri dari beberapa individu, dimana setiap individu membawa sebuag genome yang berisi kromosom. Dan kromosom itu tersusun oleh gen yang menempati setiap loci, sedangkan nilai setiap gen disebut alle.
Populasi awal dibangun secara acak, dan populasi selanjutnya merupakan hasil evolusi kromosom-kromosom (generasi). Pada setiap generasi, kromosom akan melalui proses evaluasi dengan fungsi fitness, yang bisa berbentuk matematika atau fungsi lainnya tergantung masalah yang akan diselesaikan. Karena nilai fitness suatu kromosom menunjukkan kualitas, maka kromosom yang memiliki nilai fitness tinggi (kualitas baik) akan terpilih menjadi induk (parent). Generasi berikutnya disebut anak (offspring) yang terbentuk dari dua kromosom generasi yang bertindak sebagai induk dengan penyilangan (crossover). Selain itu, dengan probabilitas tertentu, dua individu anak ini mungkin mrngslsmi perubahan gen dengan mutasi. Proses ini terus berulang hingga kondisi berhenti apabila solusi yang diberikan telah konvergen atau jumlah generasi yang diminta telah tercapai.
2.2 Struktur Umum Algoritma Genetika
Secara umum struktur dari suatu algoritma genetika dapat didefenisikan dengan langkah-langkah sebagai berikut :
1. Mulai
Proses algoritma genetika dimulai dengan membangun populasi random sebanyak n kromosom (sesuai dengan masalahnya).
2. Populasi Awal
Populasi awal ini dibangkitkan secara random sehingga didapatkan solusi awal.
Populasi itu sendiri terdiri atas sejumlah kromosom yang merepresentasikan solusi yang diinginkan.
3. Evaluasi fitness
Pada setiap generasi kromosom-kromosom akan dievaluasi berdasarkan tingkat keberhasilan nilai solusinya terhadap masalah yang ingin diselesaikan dengan menggunakan evaluasi fitness. Proses evaluasi fitness adalah melakukan evaluasi setiap fitness f(x) dari setiap kromosom x pada populasi.
4. Pembentukan Generasi Baru
Proses ini dilakukan secara berulang sehingga didapatkan jumlah kromosom yang cukup untuk membentuk generasi baru (offspring) dimana generasi baru merupakan representasi dari solusi baru.
5. Seleksi
Untuk memilih kromosom yang akan tetap dipertahankan untuk generasi selanjutnya maka dilakukan proses seleksi. Proses seleksi dilakukan dengan memilih 2 kromosom parent dari populasi berdasarkan fitnessnya (semakin besar fitnessnya, maka semakin besar kemungkinannya untuk terpilih).
6. Crossover
Proses selanjutnya melakukan perkawinan silang sesuai besarnya kemungkinan perkawinan silang, orang tua (parent) yang terpilih disilangkan untuk membentuk anak (offspring). Jika tidak ada crossover, maka anak merupakan salian dari orang tuanya. Jumlah kromosom dalam populasi yang mengalami perkawinan silang (crossover) ditentukan oleh parameter yang disebut dengan crossover probability (Pc).
6
7. Mutasi
Proses mutasi dilakukan sesuai dengan besarnya kemungkinan mutasi yang telah ditentukan, anak dimutasi pada setiap lokus (posisi pada kromosom). Jumlah gen dalam populasi yang mengalami mutasi ditentukan oleh parameter yang disebut dengan probabilitas mutasi (mutationr probabilit, Pm). Setelah beberapa generasi akan dihasilkan, kromosom-kromosom yang nilai gennya konvergen ke suatu nilai tertentu merupakan solusi optimum yang dihasilkan oleh algoritma genetika terhadap permasalahan yang ingin diselesaikan.
8. Memenuhi syarat regenerasi
Apabila generasi baru memenuhi syarat regenerasi, maka proses akan selesai. Namun, apabila generasi baru tidak memenuhi syarat regenerasi, maka proses akan kembali ke evaluasi fitness.
Parameter yang digunakan dalam algoritma genetika adalah :
1. Fungsi fitness untuk menentukan tingkat kesesuaian individu tersebut.
2. Populasi jumlah individu pada setiap generasi.
3. Probabilitas terjadinya crossover pada setiap generasi.
4. Probabitas terjadinya mutasi pada setiap generasi.
5. Jumlah generasi yang akan dibentuk.
Menurut Suyanto (2014), genetic algorithm memiliki empat komponen, yaitu:
pengkodean, seleksi, persilangan, mutasi.
2.2.1 Pengkodean
Pertama, genetic algorithm mempresentasikan masalah riil menjadi terminologi biologi. Cara menerjemahkan masalah ke dalam kromosom disebut pengkodean.
Misalnya pengkodean biner, permutasi, nilai, dan pohon. Hal ini tergantung oleh masalah yang dihadapi.
2.2.2 Seleksi
Tahap ini bertujuan untuk memilih individu yang hendak diikutkan pada proses reproduksi. Langkah pertama adalah seleksi pencarian nilai fitness. Dalam hal ini dicari nilai fitness yang terbesar untuk mendapatkan hasil yang terbaik. Beberapa metode untuk tahap seleksi adalah roullete, ranking, dan turnamen.
2.2.3 Persilangan
Persilangan (crossover) berfungsi utuk menghasilkan keturunan dari duakromosom induk yang terpilih. Kromosom apa yang dihasilkan merupakan kombinasi gen-gen yang dimiliki oleh kromosom induk.
2.2.4 Mutasi
Setelah proses crossover, pada anak (offspring) dapat dilakukan mutasi dengan cara melakukan perubahan pada sebuah gen atau lebih sehingga diharapkan adanya populasi yang bervariasi. Mutasi akan sangat bermanfaat ketika populasi awal hanya mempunyai sedikit solusi yang mungkin dipilih. Oleh karena itu, proses ini berguna untuk mempertahankan keanekaragaman individu dalam populasi, sekalipun dengan mutasi tidak bisa diketahui apa yang akan terjadi pada individu baru.
2.3 Mutasi Dinamis
Teknik mutasi dinamis adalah suatu teknik untuk menentukan tingkat level mutasi berdasarkan dari suatu parameter tertentu. Parameter yang digunakan dapat berjumlah lebih dari satu. Pada dasarnya, teknik ini membaca seberapa dekat hasil fitness yang diciptakan suatu generasi kepada nilai solusi yang ditentukan sebelumnya. Nilai ini berkisar antara 0 dan 1. Pada generasi pertama bisa saja nilai mutasi ini bernilai 0,8 dan pada generasi kedua bernilai 0,3 dan begitu selanjutnya pada generasi-generasi berikutnya. Perubahan nilai ini menentukan kedaaan populasi-populasi dalam suatu generasi yang sedang berjalan.
Pada mutasi dinamis, penentuan nilai MR dapat dilaksanakan dengan mencari beberap populasi terpilih dari suatu generasi dan membandingkan jumlah tersebut dengan total populasi yang ada. Kemudian hasil nilai tersebut merupakan nilai mutation rate yang akan diterapkan pada proses mutasi. Rumus untuk mencari mutation rate adalah seperti yang terlihat di bawah ini.
Keterangan:
MR = tingkat mutasi
8
Populasi Terpilih = jumlah populasi yang mendekati dengan nilai solusi Total Populasi = jumlah populasi pada setiap generasi
Sebagai contoh dapat dilihat pada penjelasan berikut ini. Diberikan nilai populasi terpilih sebanyak 5 populasi sementara ada 10 populasi pada tiap generasi. Nilai 4 pada populasi terpilih dihasilkan dengan cara membandingkan nilai itu terhadap solusi. Ada satu parameter penentu lainnya yaitu persentase dimana nilai ini menentukan berapa persen fitness dari suatu populasi mendekati kepada nilai solusi.
Sehingga dapat dihitung nilai mutation rate adalah:
Mutation Rate =
=
= 0,8
Dari nilai di atas, total mutasi yang dilakukan pada generasi yang sedang berjalan adalah sebesar 0,8 * Jumlah Gen * Jumlah Populasi.
2.4 Knapsack Problem
Knapsack merupakan sebuah tas yang memiliki kapasitas tertentu (weight). Dan bisa dipastikan bahwa semua objek tidak dapat ditampung tas tersebut melainkan beberapa saja yang weight-nya lebih kecil atau sama ukuran kapasitas tas itu.
Misalnya ada sebuah tas berkapasitas 24 kg dan juga terdapat 6 barang dengan masing-masing berat 8kg, 4kg, 5kg, 2kg, 2kg, dan 6kg. Barang mana saja yang harus dimasukkan ke dalam tas?
Secara matematis, nilai dan berat total dapat dituliskan seperti pada persamaan berikut ini :
F = ∑ bi . vi (2.2)
Wtot = ∑ bi . wi (2.3)
Dimana :
F = nilai fitnes setiap kromosom
b = bit bernilai 1 atau 0 (jika nilai 1 barang dibawa, jika 0 tidak) v = nilai dari setiap barang
n = jumlah semua barang
Wtot = Weight (berat) total yang terkandung pada setiap barang w = berat yang terkandung pada setiap barang
Yang dalam hal ini, jika bi bernilai 1, berarti objek dimasukkan ke dalam knapsack, sebaliknya jika bi bernilai 0 maka objek tidak dimasukkan. Karena itulah masalah ini sering juga disebut Knapsack 0/1. Dalam teori algoritma, persoalan knapsack termasuk ke dalam NP-complete, dimana tidak dapat dipecahkan dalam orde waktu polinomial.
2.4.1 Jenis-Jenis Knapsack Problem
Ada beberapa model atau variasi pada Knapsack problem, antara lain:
1) 0/1 Knapsack problem
Setiap barang hanya tersedia 1 unit, take it or leave it.
2) Fractional Knapsack problem.
Barang boleh dibawa sebagian saja (unit dalam pecahan). Versi problem ini menjadi masuk akal apabila barang yang tersedia dapat dibagi-bagi misalnya gula, tepung, dan sebagainya.
3) Bounded Knapsack problem
Setiap barang tersedia sebanyak N unit (jumlahnya terbatas).
4) Unbounded Knapsack problem
Setiap barang tersedia lebih dari 1 unit, jumlahnya tidak terbatas.
Pada kasus TSP, jenis Knapsack yang digunakan adalah jenis pertama yaitu 0/1 Knapsack Problem. Node-node yang tersedia pada kasus TSP hanya dapat diambil atau dilalui hanya sekali saja. Akan tetapi, node pertama kan dikunjungi sebanyak dua kali yaitu pada saat berangkat (starting point) dan pada saat kembali ke titik awal (ending point).
10
2.5 Penelitian Terkait
Penelitian (Haibo et al, 2011), bahwa peningkatan kinerja algoritma genetika menggunakan pendekatan Improvement of Genetic Algorithm (IAG), dengan menjaga grup kromosom atau individu terbaik maka akan dicapai hasil yang baik. Penerapan Adaptive Hybrid Probability and Mutation dilakukan ketika lebih duplikasi solusi terjadi.
Serta penelitian dari (Hong et al, 2009), membahas tentang beberapa teknik crossover dan mutasi yang digabungkan dalam suatu optimasi genetika. Keadaan fitness dan probabilitas akan menentukan teknik crossover mana yang lebih cocok dilakukan dalam suatu kasus tertentu. Sehingga jika metode ini dilakukan, hasil dari suatu generasi akan lebih baik berdasarkan teknik crossover dan mutasi yang dilakukan. Pencapaian kepada nilai solusi akan lebih cepat dilakukan.
BAB 3
METODOLOGI PENELITIAN
Pada algoritma genetika, penentuan operator mutasi yang dipengaruhi oleh nilai mutasi merupakan hal yang sangat penting, karena akan memberikan solusi yang optimal. Penentuan nilai mutasi secara dinamis diharapkan dapat menghindari local optimal dan mempercepat penemua solusi dari permasalahan karena perubahannya bisa dikontrol.
3.1 Rancangan Penelitian
Dalam penelitian ini akan dilakukan tahapan berurut secara keseluruhan untuk menyelesaikan masalah. Adapun tahapan penyelesaian tersebut terlihat pada gambar 3.1 berikut :
Gambar 3.1 Skema Penyelesaian Masalah
3.2 Rancangan Genetika
Pada bagian ini akan dijelaskan bagaimana algoritma genetika mengambil peranan dalam proses optimasi pada pencarian lintasan. Dalam mencari lintasan ada beberapa hal yang penting untuk dipertimbangkan yaitu bobot dan jumlah lintasan. Pada metode yang diterapkan pada penelitian ini lintasan yang dicari bukan sepenuhnya dari total lintasan melainkan sebahagian saja tergantung dari input yang diinginkan. Jumlah lintasan yang dicari tidak melebihi dari total lintasan.
Input Data Knapsack Problem
Nilai Mutasi Dinamis Algoritma Genetika
Output Hasil dengan Mutasi
12
Gambar berikut ini menjelaskan contoh proses pencarian lintasan dari total lintasan yang ada.
Gambar 3.2 Contoh lintasan dengan 10 buah node
Pada gambar di atas dapat dilihat sebuah pola lintasan dengan 10 buah node yang terdiri dari titik 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10. Setiap node akan dibentangkan pada koordinat 2 dimensi yang titik origin (0, 0) berada pada sudut kiri atas. Tabel di bawah ini kan memerikan keterangan tetang posisi koordinat setiap note pada sumbu X dan sumbu Y.
Tabel 3.1 Data koordinat lintasan
Node X Y
0 42 40
1 32 7
2 18 23
3 40 15
4 65 16
5 57 32
6 53 37
7 53 12
8 14 34
9 60 22
Pada Tabel 3.1 ada 10 buah posisi koordinat. Setiap node memiliki pasangan sumbu X dan sumbu Y. Seperti contoh, pada node ke 5 memiliki sumbu X = 57 dan sumbu Y = 32.
3.2.1 Jarak Lintasan
Untuk menentukan lintasan mana yang memiliki nilai optimal yang terbaik. Jarak yang dipergunakan untuk menentukan posisi lintasan mana yang memiliki nilai paling optimal yaitu dengan cara menentukan jumlah lintasan mana yang paling mendekati bobot yang diinginkan. Pencarian jarak ini berbeda dengan jarak pada kasus TSP pada umumnya. Pada kasus umum, jarak akan menghitung bobot setiap node, tetapi pada permasalahan Knapscak, jarak dicari berdasarkan jumlah node yang dinginkan saja dan perkisaran bobot tertentu. Jarak dapat dihitung pada rumus berikut ini.
∑ √
(1)
Pengambilan lintasan tidak boleh mempunyai node yang berulang kecuali node awal dan node akhir karena setiap node hanya dapat disinggahi cuma sekali saja. Sebagai contoh, akan diambil sebuah buah lintasan dengan 5 buah node:
Lintasan = 2 – 6 – 9 – 4 – 2 Jarak 1 = 2 – 6
Jarak 2 = 6 – 9 Jarak 3 = 9 – 4 Jarak 4 = 4 – 2
Node pertama (2) adalah dimana mulai dilakkan perjalanan dan akan berakhir di node kelima (2) dimana node tersebut adalah node yang pertama disinggahi sebelumnya.
Setelah diperoleh masing-masing persinggahan, akan dihitung jarak masing-masing persinggahan dan kemudian dijumlahkan semuanya. Ada 4 buah jarak yang harus dihitung untuk setiap 5 node yang disinggahi. Penjelasan berikut akan menjelaskan nilai yang diperoleh dari masing-masing persinggahan.
14
Node 4 ke Node 2 7.81025 dan 4 ke 2 sebesar 47.51842 adalah sebesar 109.503 berdasarkan rumus pada jarak sebelumnya. Proses ini akan berulang jika ada beberapa lintasan yang kan dicari nilai jaraknya.
3.2.2 Populasi
Populasi akan dibangkitkan sesuai dengan jumlah yang diinginkan. Tidak ada batasan jumlah pembangkitan populasi. Semakin banyak populasi yang dibangkitkan, semakit banyak peluang terciptanya optimum global. Tetapi perlu diperhatikan semakin banyak populasi akan memperlambat proses genetika. Akan tetapi jika kecepatan komputer yang digunakan memadai, dapat dicoba untuk menambahkan jumlah populasi yang dibangkitkan. Sebagai contoh dapat dilihat pada Tabel 3.2, pada tabel ini akan diujicoba perhitungan bobot target = 400 dan jumlah populasi = 20.
Populasi Jarak Perbedaan
0 143 257
1 386 14
2 353 47
16
Pada kasus Knapsack, lintasan terpendek bukan berarti terbaik kerena pada model optimasi Knapscak, ada yang namanya bobot target dimana ini merupakan batas dimana nilai jarak harus paling medekati dengan nilai yang tercantum pada bobot target dan tidak melebihi dari nilai tersebut. Angka minus yang tertera di tabel tersebut terjadi akibat nilai jarak melebih dari nilai target yang ditentukan. Nilai yang paling mendekati target berada pada populasi 1 dan 7 dimana perbedaannya adalah 14.
3.2.3 Fitness
Populasi akan proses genetika diharapkan mampu untuk membuat perbedaan mencari nilai 0. Jika nilai perbedaan adalah 0 maka fitness dari populasi tersebut bernilai 1.
Perbedaan nilai antara panjang lintasan dan bobot target merupakan Error Code. Jika Error Code menghasilkan 0 berarti secara otomatis fitness akan bernilai 1. Ini dapat diketahui melalui rumus berikut.
Di bagian ini akan diambil lima buah contoh dari Tabel 3.2 yaitu populasi 1, 6, 10, 15 dan 19. Di sini akan dibandingkan populasi mana yang mempunyai fitness lebih tinggi dari beberapa populasi yang ditentukan. Akan ada kemungkinan beberapa populasi memiliki nilai yang sama.
Populasi ke 1 : Fitness ke 1 =
=
=
= 0.066667
Populasi ke 6 : Fitness ke 6 =
=
=
= 0.003953
Populasi ke 10 : Fitness ke 10 =
=
=
= -0.02041
Populasi ke 15 : Fitness ke 15 =
=
=
= -0.04348
Populasi ke 19 : Fitness ke 19 =
=
=
= 0.003906
Dari perhitungan di atas dapat dilihat nilai fitness mempunyai hasil yang berbeda-beda. Pada dasarnya nilai fitness pada suatu proses genetika dapat ditentukan semakin kecil lebih baik atau semakin besar lebih baik. Hal tersebut tergantung pengolahan dan
18
penentuan rumus untuk mencari nilai fitness sebelumnya. Tabel perbandingan nilai ini dapat dilihat pada Tabel 3.3 berikut ini.
Tabel 3.3 Hasil perhitungan fitness
Pada tabel di atas dapat dilihat perhitungan masing-masing populasi. Populasi yang memiliki fitness tertinggi berada pada Populasi 1 yang mempunyai nilai fitness = 0,066667 sementara populasi yang memiliki nilai paling rendah berada pada Populasi 15 yang memiliki nilai sebesar -0,04348. Perhitungan fitness ini akan berulang sebanyak generasi yang ditentukan. Biasanya, perhitungan populasi dilakukan di awal proses dan di akhir proses. Apabila perhitungan fitness pada awal proses sudah menghasilkan solusi dari permasalahan, maka algoritma genetika tidak diteruskan dan hasil akan ditampilkan langsung tetapi ini jarang sekali terjadi nilai sudah optimal pada saat pertama sekali perhitungan dilaksanakan.
3.2.4 Seleksi
Pada tahap seleksi, proses genetika akan melakukan duplikasi populasi yang dianggap baik untuk dijadikan peluang terhadap generasi berikutnya. Untuk mengetahui lebih lanjut mengenai proses seleksi pada metode ini, dapat dilihat pada penjelasan berikut ini.
Populasi[1]: Fitness[1] = [1][2] + [2][4] + [4][5] + [5][3] + [3][1]
= 7 + 2 + 6 + 3 + 5
= 23
Populasi[2]: Fitness[2] = [1][4] + [4][2] + [2][5] + [5][3] + [3][1]
= 9 + 2 + 8 + 3 + 5
= 27
Populasi[3]: Fitness[3] = [1][3] + [3][2] + [2][4] + [4][5] + [5][1]
= 5 + 7 + 2 + 6 + 9
= 29
Populasi[4]: Fitness[4] = [1][5] + [5][2] + [2][3] + [3][4] + [4][1] dilalui. Setiap populasi mempunyai urutan yang berbeda-beda. Ini disebabkan pada saat pembangkitan populasi, angka yang dipergunakan bersifat acak. Total fitness merupakan penentu dari nilai probabilitas dari setiap fitness. Total fitness dapat dicari dengan menggunakan rumus berikut ini.
∑
Dengan populasi sebanyak enam buah di atas, maka dapat diperoleh nilai total fitness (TF) adalah:
TF = Fitness[1] + Fitness[2] + Fitness[3] + Fitness[4] +Fitness[5] + Fitness[6]
= 23 + 27 + 29 + 37 + 30 + 30
= 176
Total fitness tersebut digunakan untuk mencari probabilitas tiap populasi. Pencarian probabilitas dilakukan dengan cara membandingkan hasil fitness dari tiap populasi terhadap nilai total fitness sebagaimana yang digambarkan pada rumus mencari probabilitas berikut ini.
Berdasarkan rumus diatas, akan dilakukan perhitungan probabilitas dari tiap-tiap fitness yang telah diperoleh sebelumnya. Di bawah ini akan dijelaskan perhitungan untuk mencari probabilitas tersebut.
P [1] = = 0,1306818181818182 P [2] = = 0,1534090909090909
20
P [3] = = 0,1647727272727273 P [4] = = 0,2102272727272727 P [5] = = 0,1704545454545455 P [6] = = 0,1704545454545455
Sebelum berada pada tahapan seleksi, maka harus dicari terlebih dahulu probabilitas kumulatif pada tiap-tiap populasi. Probabilitas ini bertujuan sebagai nilai pembanding dari nilai acak yang dibangkitkan oleh proses genetika sebagai acuan populasi mana yang akan terpilih menjadi duplikasi. Populasi yang terpilih akan menduplikatkan dirinya kepada populasi yang aktif sehingga kemungkinan besar akan ada beberapa populasi yang memiliki nilai-nilai gen yang sama.
Untuk mencari nilai probabilitas pada tiap-tiap populasi dapat dilakukan dengan rumus seperti di bawah ini.
∑
Berdasarkan rumus di atas, akan dicari nilai dari probabilitas kumulatif pada tiap-tiap populasi. Perhitungan nilai ini dapat dilihat dari penjelasan di bawah ini.
PK[1] = 0,1306818181818182
PK[2] = 0,1306818181818182 + 0,1534090909090909 = 0,2840909090909091 PK[3] = 0,1306818181818182 + 0,1534090909090909 + 0,1647727272727273
= 0,4488636363636364
PK[4] = 0,1306818181818182 + 0,1534090909090909 + 0,1647727272727273 + 0,2102272727272727 = 0,6590909090909091
PK[5] = 0,1306818181818182 + 0,1534090909090909 + 0,1647727272727273 + 0,2102272727272727 + 0,1704545454545455 = 0,8295454545454546 PK[6] = 0,1306818181818182 + 0,1534090909090909 +0,1647727272727273 +
0,2102272727272727 + 0,1704545454545455 + 0,1704545454545455 = 1
Dalam mencari nilai probabilitas kumulatif ada beberapa hal yang perlu diperhatikan agar nilai tersebut tidak salah. Kelemahan dari proses genetika salah satunya adalah jika ada rumus yang salah, maka perlu penelusuran dari awal untuk mencari letak kesalahaan perhitungn tersebut. Pada probabilitas komulatif dapat kita
lihat bahwa nilai PK[1] pasti akan selalu sama dengan nilai P[1] dan nilai PK[n] selalu bernilai dengan 1. Jika kedua bagian ini tidak benar, maka sudah dipastikan dalam proses pencarian nilai probabilitas kumulatif tidak mengikuti aturan yang sebenarnya.
Proses seleksi yang dipakai pada metode ini adalah metode Roulette Wheel.
Proses seleksi membangkitkan bilangan acak yang berada antara 0 dan 1 pada setiap populasi dan kemudian nilai tersebut akan dibanding kan dengan nilai probabilitas komulatif dengan syarat PB[n-1] < R[n] < PB[n]. Berikut penjelasan untuk mencari proses seleksi.
Nilai Acak Populasi [1] adalah R[1] = 0,314 Nilai Acak Populasi [2] adalah R[2] = 0,111 Nilai Acak Populasi [3] adalah R[3] = 0,342 Nilai Acak Populasi [4] adalah R[4] = 0,743 Nilai Acak Populasi [5] adalah R[5] = 0,521 Nilai Acak Populasi [6] adalah R[6] = 0,411
Bilangan Acak ke 1
R[1] = 0,314
= PK[2] < R[1] < PK[3]
= 0,2840909090909091<0,314<0,4488636363636364
P[1] = P[3]
Bilangan Acak ke 2
R[2] = 0,111
= R[2] < PK[1]
= 0,111 < 0,1306818181818182
P[2] = P[1]
22
Bilangan Acak ke 3
R[3] = 0,342
= PK[2] < R[3] < PK[3]
= 0,2840909090909091 <0,342 < 0,4488636363636364
P[3] = P[3]
Bilangan Acak ke 4
R[4] = 0,743
= PK[4] < R[4] < PK[5]
= 0,6590909090909091<0,743 < 0,8295454545454546
P[4] = P[5]
Bilangan Acak ke 5
R[5] = 0,521
= PK[3] < R[5] < PK[4]
= 0,4488636363636364<0,521 < 0,6590909090909091
P[5] = P[4]
Bilangan Acak ke 6
R[1] = 0,411
= PK[2] < R[6] < PK[3]
= 0,2840909090909091 <0,411 < 0,4488636363636364
P[6] = P[3]
Proses seleksi pada populasi menyebabkan ada beberap dari populasi yang mengalami perubahan dan duplikasi dari populasi yang lainnya. Di bawah ini akan ditampilkan populasi sebelum dan setelah proses seleksi Roulette Wheel.
Populasi sebelum proses seleksi
Populasi[1] = [1][2] + [2][4] + [4][5] + [5][3] + [3][1]
Populasi[2] = [1][4] + [4][2] + [2][5] + [5][3] + [3][1]
Populasi[3] = [1][3] + [3][2] + [2][4] + [4][5] + [5][1]
Populasi[4] = [1][5] + [5][2] + [2][3] + [3][4] + [4][1]
Populasi[5] = [1][5] + [5][3] + [3][2] + [2][4] + [4][1]
Populasi[6] = [1][3] + [3][4] + [4][5] + [5][2] + [2][1]
Populasi setelah proses seleksi
Populasi[1] = [1][3] + [3][2] + [2][4] + [4][5] + [5][1]
Populasi[2] = [1][2] + [2][4] + [4][5] + [5][3] + [3][1]
Populasi[3] = [1][3] + [3][2] + [2][4] + [4][5] + [5][1]
Populasi[4] = [1][5] + [5][3] + [3][2] + [2][4] + [4][1]
Populasi[5] = [1][5] + [5][2] + [2][3] + [3][4] + [4][1]
Populasi[6] = [1][3] + [3][2] + [2][4] + [4][5] + [5][1]
Setelah proses seleksi, ada dua buah populasi yang mengalami duplikasi yaitu Populasi[1] dan Populasi[6]. Nilai baru yang dimasukkan ke populasi ini berasal dari Populasi[3] sehingga Populasi[1], Populasi[3] dan Populasi[6] memiliki nilai yang sama. Sementara Populasi[2] bertukar ke Populasi[4], Populasi[4] dengan Populasi[5]
dan Populasi[5] dengan Populasi[4].
3.2.5 Mutasi
Proses mutasi yang digunakan adalah mutasi dinamis dimana nilai mutation ratenya tergantung dengan keadaan satu generasi. Jika dalam satu generasi ada banyak nilai fitness yang mendekati ke target, maka persentase mutasi akan semakin semakin sedikit dan sebaliknya apabila nilai-nilai fitness pada generasi tersebut jauh dari target, persentase mutasi akan lebih besar.
Sebagai contoh ada 10 buah populasi yang terbagi tiga bagian yaitu Rendah, Sedang dan Tinggi. Pada hasil fitness sebelum mutasi akan dilakukan pengujian fitness mana saja saja yang mendekati kepada target. Nilai keluaran dari perhitungan tersebut menjadi nilai yang digunakan sebagai mutation rate.
24
Pada perhitungan berikut ini akan dijelaskan cara perhitungan secara dinamis untuk menentukan nilai mutation rate dari proses genetika. Contoh ini mempunyai sepuluh buah populasi setelah proses seleksi dimana setiap populasinya mempunyai lima buah node yang disinggahi.Data di bawah ini diambil dari perhitungan penjumlahan jarak lintasan yang dilalui. Setiap populasi memiliki nilai yang berbeda.
Nilai tersebut akan dibandingkan dengan target yang telah ditentukan. Nilai yang lebih mendekati kepada target memiliki peluang besar untuk dijadikan sebuah solusi. Nilai yang melebihi dari 1 tidak dapat divalidasi karena telah melebihi dari target yang ditentukan. Solusi dari permasalahan hanya boleh berada diantara nilai target dan nilai yang berada dibawahya.
Populasi[1] = [1][2] + [2][4] + [4][5] + [5][3] + [3][1]= 23 Populasi[2] = [1][4] + [4][2] + [2][5] + [5][3] + [3][1]= 27 Populasi[3] = [1][3] + [3][2] + [2][4] + [4][5] + [5][1]= 29 Populasi[4] = [1][5] + [5][2] + [2][3] + [3][4] + [4][1]= 37 Populasi[5] = [1][5] + [5][3] + [3][2] + [2][4] + [4][1] = 30 Populasi[6] = [1][3] + [3][4] + [4][5] + [5][2] + [2][1]= 30 Populasi[7] = [1][4] + [4][2] + [2][5] + [5][3] + [3][1]= 21 Populasi[8] = [1][3] + [3][2] + [2][4] + [4][5] + [5][1]= 33 Populasi[9] = [1][5] + [5][2] + [2][3] + [3][4] + [4][1]= 44 Populasi[10] = [1][5] + [5][3] + [3][2] + [2][4] + [4][1] = 35
Selain nilai jarak lintasan ada namanya bobot target. Pada kasus ini akan ditentukan bobot target sebesar 40. Diperlukan suatu perhitungan probabilitas untuk menentukan kemungkinan peluang suatu populasi terpilih untuk mempengaruhi mutation rate.
Populasi[1] = = 0,575 Populasi[2] = = 0,675
Populasi[3] = = 0,725 Populasi[4] = = 0,925 Populasi[5] =
= 0,75 Populasi[6] = = 0,75 Populasi[7] = = 0,525 Populasi[8] = = 0,825 Populasi[9] = = 1,1
Populasi[10] = = 0,875
Jika diambil batas rentang sebesar 75%, maka yang masuk nominasi diantara populasi tersebut adalah Populasi[5], Populasi[6], Populasi[8] dan Populasi[10].
Populasi[9] tidak akan pernah terpilih karena memiliki nilai diatas 1. Jadi ada 4 buah yang akan diolah pada perhitungan mutation rate.
Rumus untuk mencari mutation rate adalah seperti yang terlihat di bawah ini.
Sehingga dapat dihitung nilai mutation rate adalah:
Mutation Rate = 1 -
= 0,6
BAB 4
HASIL DAN PEMBAHASAN
HASIL DAN PEMBAHASAN