Pada kesempatan kali ini saya akan menjelaskan
secara detil contoh mengoptimasi menggunakan algoritme genetika dengan
implementasi coding program di GNU Octave atau bisa menggunakan MATLAB.
Untuk memudahkan pemahaman saya gunakan fungsi
sederhana X kuadrat dengan ruang lingkup pencarian mulai dari 0 sampai 31 dengan
tujuan optimasinya adalah memalsimalkan, sebenarnya kita sudah tahu bahwa nilai
maksimum dari fungsi X kuadrat dengan search space 0 sampai 31 adalah 31
kuadrat. Namun contoh sederhana ini ditujukan untuk mengetahui cara kerja dari
algoritme genetika.
English ver :
This time I want to tell you in detail an easy
example of optimizing using genetic algorithm by implementing in GNU Octave or
Matlab Program.
To make you understand what is GA (Genetic Algorithm) I am using a simple function X2 which has a search space from 0 to 31 and we want this function to be maximize. Obviously, we know that maximum value from X2 is we will get from 31 value, which is 312 = 961, But, my goal with this easy example is to make you understand the basic processs of genetic algorithm.
Pembangkitan
Kromosom / Generating Chromosome
Masalah dalam Algoritme Genetika Harus dimodelkan
secara kromosom, kali ini saya menggunakan representasi basic dari algoritme
genetika untuk memodelkan kromosom nya, yaitu representasi biner.
Evaluasi Fungsi /Fitness Evaluation
Seleksi Roullete Wheel / Roullete Wheel Selection
Crossover, dengan paramater probabilitas (probability parameter) 0.75
Mutasi (Mutation)
dengan parameter probabilitas mutasi (Probability of mutation) 0.1
Selanjutnya setelah proses mutasi saya memberikan tantangan kepada anda bagaimana agar proses generasi dilakukan dengan batasan generasi sesuai keinginan anda. tapi saya sarankan 50 generasi sudah cukup, dan nilai variabel yang di plotkan adalah generasi terhadap pencarian nilai maksimumnya, dengan kata lain pada sumbu X adalah generasi dan sumbu Y adalah Hasil pencarian maksimum pada saat generasi tersebut.
Pada Plot dapat dilihat pada generasi diatas 5 algoritme genetika sudah menemukan kondisi optimal dari memaksimalkan fungsi X kuadrat, namun sekitar generasi ke 15 dan 25. pencarian sempat turun, dikarenakan pengaruh mutasi. Bagi kalian yang masih bingung cara untuk melakukan generasi dan memplot nya. jangan khawatir, tersedia link Download Source Code dapat di download di : Genetic Algorithm Single ObjectiveUntuk mengetahui cara melakukan generasi dan mem plot nya.
Mohon maaf pada tulisan kali ini belum
menjelaskan tahapan-tahapan proses algoritme genetika secara teori. Kedepannya
jika ada waktu dan kesempatan. Postingan ini akan diperbarui. dan juga akan
ditambahkan dengan metode baru dalam GA, yaitu elitisme. Apa itu elitisme?.
elitisme adalah suatu proses dalam algoritme genetika dimana individu individu
terbaik akan disimpan, sehingga tiap generasi dalam Algoritme Genetika tidak
akan pernah mengalami penurunan dalam pencarian seperti halnya hasil diatas.
English Ver :
After mutation process I chalange you to make a generation process in GA and also to plot it. Generation limit is up to you, But I recommend you 50 generation is enough for this case. Data that you have to store in variable are generation value and maximum value found in a generation. In other words you have to plot a generation value in X axis and maximum value found in a generation in Y axis, to see the Plot. If you still confuse how to make it, dont worry. I give you my source code, you can downlod it at the following link : Genetic Algorithm Single Objective
English Ver :
After mutation process I chalange you to make a generation process in GA and also to plot it. Generation limit is up to you, But I recommend you 50 generation is enough for this case. Data that you have to store in variable are generation value and maximum value found in a generation. In other words you have to plot a generation value in X axis and maximum value found in a generation in Y axis, to see the Plot. If you still confuse how to make it, dont worry. I give you my source code, you can downlod it at the following link : Genetic Algorithm Single Objective
I am sorry, because this article is still not clear / not detail in explaination. Next If I have time to fix it. I Would update it with more theoritical explaination on each GA process.
Lanjut ke proses elitisme (Continue to elitism process)
Seperti yang sudah dijelaskan sebelumnya elitisme merupakan proses pada GA untuk mempertahankan populasi terbaiknya dari generasi ke generasi, sehingga dia tidak akan mengalami kehilangan individu terbaik yang pernah ditemukannya.
Teori singkat dari proses elitisme adalah, populasi hasil dari proses genetika atau populasi keturunan (populasi hasil dari crossover dan mutasi) digabungkan kembali dengan populasi orang tua, sehingga total populasi adalah 2N, dimana N adalah variabel total jumlah individu yang pertama kali dibangkitkan. Setelah populasi keturunan dan orang tuan diganungkan maka dipilih sejumlah N individu terbaik dari populasi gabungan. pemilihan terbaik tersebut tentunya didasarkan pada fungsi tujuan yang ingin dicapai. maka pada proses elitisme akan dilakukan kembali proses dekode kromosom, dan evaluasi funsi tujuan (fungsi fitness).
Setelah semua individu dalam populasi gabungan telah diketahui nilai fitnessnya, maka pemilihan N jumlah individu terbaik dilakukan dan N individu yang tidak terpilih akan dihapus.N individu terbaik yang sudah didapatkan akan dimasukan pada proses generasi berikutnya sebagai populasi orang tua pada generasi berikutnya.
Lanjut ke proses elitisme (Continue to elitism process)
Seperti yang sudah dijelaskan sebelumnya elitisme merupakan proses pada GA untuk mempertahankan populasi terbaiknya dari generasi ke generasi, sehingga dia tidak akan mengalami kehilangan individu terbaik yang pernah ditemukannya.
Teori singkat dari proses elitisme adalah, populasi hasil dari proses genetika atau populasi keturunan (populasi hasil dari crossover dan mutasi) digabungkan kembali dengan populasi orang tua, sehingga total populasi adalah 2N, dimana N adalah variabel total jumlah individu yang pertama kali dibangkitkan. Setelah populasi keturunan dan orang tuan diganungkan maka dipilih sejumlah N individu terbaik dari populasi gabungan. pemilihan terbaik tersebut tentunya didasarkan pada fungsi tujuan yang ingin dicapai. maka pada proses elitisme akan dilakukan kembali proses dekode kromosom, dan evaluasi funsi tujuan (fungsi fitness).
Setelah semua individu dalam populasi gabungan telah diketahui nilai fitnessnya, maka pemilihan N jumlah individu terbaik dilakukan dan N individu yang tidak terpilih akan dihapus.N individu terbaik yang sudah didapatkan akan dimasukan pada proses generasi berikutnya sebagai populasi orang tua pada generasi berikutnya.
Berikut ini adalah source code beserta proses elitisme : Genetic Algorithm Single Objective with elitism











No comments:
Post a Comment