Genetic Algorithm in Matlab


If we want to implement the genetic algorithm in matlab, we can writedown like the code below:


function hasilGA=GA_QQ_R()
clear;clc;

%populasi awal secara acak
%pastikan fungsi randint tersedia di matlab
popawal=randint(4,5,[0,1])

%peluang terjadi crossover
probkros=0.25

%peluang terjadi mutasi
probmutasi=0.01

jumlahkromosom=size(popawal,1)
jumlahgenperkromosom=size(popawal,2)

disp(‘mencari nilai maksimum fungsi f(x)=x^2 dengan 0<=x<=31 menggunakan GA’);
maxgenerasi=100
generasi=1
pop=popawal

%selama masih kurang dari maksimum generasi
while generasi<=maxgenerasi

%dapatkan nilai x dari kromosom populasi
nilaixpop=konvert(pop);

%dapatkan nilai fitness menggunakan fungsi carifitnes
nilaifitness=carifitnes(nilaixpop);

%cari individu/kromosom yang elit (nilai fitness terbesar)
%hasilnya disimpan dalam variabel elit
%sisa populasi selain yang elit, disimpan divariabel pop
[pop,elit]=elitisme(nilaifitness,pop);

%dapatkan kembali nilai x dari kromosom populasi sisanya
nilaixpop=konvert(pop);

%dapatkan kembali nilai fitness
nilaifitness=carifitnes(nilaixpop);

%cari peluang terseleksi untuk setiap kromosom sisa
%menggunakan roulette wheel
probseleksi=cariprobseleksi(nilaifitness);
probseleksikum=cariprobseleksikum(probseleksi);
hasilrolet=rand(1,jumlahkromosom-1);

%pilih calon orang tua berdasarkan hasil roulette
pop=pilih(hasilrolet,probseleksikum,pop);

%tentukan orang tua yang mengalami cross over, berdasarkan peluangnya
[yangdkros,banyaknyakros]=pilihkros(jumlahkromosom-1,probkros);

%lakukan crossover
pop=kros(yangdkros,banyaknyakros,pop);

%tentukan yang mengalami mutasi, berdasarkan peluang mutasi
pop=mutasi(pop,probmutasi);

%gabungkan kembali kromosom2 baru hasil cross over dan mutasi dengan yang elit
pop=[pop;elit];
nilaixpop=konvert(pop);
nilaifitness=carifitnes(nilaixpop);

%dapatkan nilai fitnes terbesar untuk generasi tersebut
terbesar=max(nilaifitness)
generasi=generasi+1
end
disp(‘nilaimaksimum fungsi tersebut jika dicari dengan GA adalah:’);
disp(terbesar);

9 thoughts on “Genetic Algorithm in Matlab

  1. Hi Rezaiy..

    We can use genetic Algorithm to face detection or face recognition. But there is more cool method to do Face detection or face recognition. It is Digital Image Processing using matlab. You can search many references in Google and if you want it, i will make it for you. But i can’t define the finishing time because i’m also doing my final project.

    If you are interesting of it, you can confirm me soon. so i can do it soon.

    Thanks ^^

  2. ??? Undefined function or method ‘konvert’ for input arguments of type ‘double’.

    Error in ==> GA_QQ_R at 26
    nilaixpop = konvert(pop)

    • please check function “konvert” in the code list.
      the problem can be happened because u forget to define that function..or type it in different letters.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s