Implementasi Algoritma Genetika Menggunakan Matlab


Pengantar

MATLAB (Matrix Laboratory), produk dari Mathworks, adalah paket perangkat lunak ilmiah yang dirancang untuk menyediakan komputasi numerik dan visualisasi grafis terintegrasi dalam bahasa pemrograman tingkat tinggi. Cleve Moler, kepala ilmuwan di MathWorks, Inc., awalnya menulis MATLAB, untuk menyediakan akses mudah ke perangkat lunak matriks yang dikembangkan di LINPACK dan merupakan paket proyek. Versi pertama ditulis pada akhir 1970-an untuk digunakan dalam mata kuliah teori matriks, aljabar linier, dan analisis numerik. Oleh karena itu MATLAB dibangun di atas fondasi perangkat lunak matriks canggih, di mana elemen data dasar adalah matriks yang tidak memerlukan dimensi.

Struktur data

MATLAB pada dasarnya hanya mendukung satu tipe data, matriks persegi panjang dari elemen numerik nyata atau kompleks. Struktur data utama dalam kotak Algoritma Genetika adalah: 
• kromosom 
• nilai fungsi objektif 
• nilai kecukupan

1 Kromosom

Populasi populasi manusia adalah sebuah matriks tunggal berukuran Nind × Lind, di mana Nind adalah jumlah individu dalam populasi, dan Lind adalah panjang dari representasi genotip individu-individu tersebut. Setiap baris sesuai dengan genotipe individu, yang terdiri dari nilai-nilai base-n, biasanya biner.


Representasi data ini tidak memaksa struktur pada struktur kromosom, hanya mensyaratkan bahwa semua kromosom memiliki panjang yang sama. Dengan demikian, populasi terstruktur atau populasi dengan berbagai basis genotip dapat digunakan dalam algoritma genetika Toolbox asalkan fungsi decoding yang sesuai, pemetaan kromosom menjadi fenotipe, digunakan.

2 Fenotip

Variabel keputusan, atau fenotip, dalam algoritma genetika diperoleh dengan menerapkan beberapa pemetaan dari representasi kromosom ke dalam ruang variabel keputusan. Di sini, setiap string yang terkandung dalam struktur kromosom didekodekan ke vektor baris orde Nvar, sesuai dengan jumlah dimensi dalam ruang pencarian dan sesuai dengan nilai vektor variabel keputusan. Variabel keputusan disimpan dalam matriks numerik ukuran Nind × Nvar. Sekali lagi, setiap baris sesuai dengan fenotip individu tertentu. Contoh dari struktur data fenotipe diberikan di bawah ini, di mana bin 2 realis digunakan untuk mewakili fungsi arbitrer, mungkin dari GA Toolbox, memetakan genotipe ke fenotipe.


3 Nilai Fungsi Objektif

Fungsi obyektif digunakan untuk mengevaluasi kinerja fenotip dalam domain masalah. Nilai fungsi objektif bisa skalar atau, dalam kasus masalah multiobjek, vektorial. Perhatikan bahwa nilai fungsi obyektif tidak harus sama dengan nilai kecekatan. Nilai fungsi obyektif disimpan dalam matriks numerik ukuran Nind × Nobj, di mana Nobj adalah jumlah tujuan. Setiap baris sesuai dengan vektor objektif individu tertentu.

4 Nilai Kebugaran

Nilai kebugaran diturunkan dari nilai fungsi objektif melalui fungsi penskalaan atau peringkat. Kebugaran tidak skalars negatif dan disimpan dalam vektor kolom panjang Nind, contoh yang ditunjukkan di bawah ini. Sekali lagi, Pemeringkatan adalah fungsi kepatuhan yang sewenang-wenang.

5 Beberapa Subpopulasi

Kotak alat ini mendukung penggunaan satu populasi tunggal yang dibagi ke dalam sejumlah subpopulasi, bertema, untuk mengidentifikasi penggunaan populasi yang rusak seperti populasi subpopulasi.disimpan dalam blok yang berdekatan dengan lematrix. Contohnya, struktur data kromosom, Chrom, yang terdiri dari subpop Subpop, masing-masing dengan panjang N individuInd, disimpan sebagai:
Ini dikenal sebagai model regional, juga disebut migrasi atau model pulau

Fungsi Toolbox

Algoritma Genetika dan Kotak Pencarian Langsung adalah kumpulan fungsi yang memperluas kemampuan Kotak Alat Optimasi dan lingkungan komputasi numerik MATLAB. Algoritma Genetika dan Toolbox Pencarian Langsung mencakup rutinitas untuk menyelesaikan masalah optimisasi menggunakan 
• Algoritma genetika 
• Pencarian langsung. 

Algoritma ini memungkinkan Anda untuk menyelesaikan berbagai masalah optimisasi yang berada di luar ruang lingkup Optimalisasi Toolbox. Algoritme genetik menggunakan tiga jenis aturan utama pada setiap langkah untuk menciptakan generasi berikutnya dari populasi saat ini: 
• Aturan seleksi memilih individu, yang disebut orang tua, yang berkontribusi pada populasi pada generasi berikutnya. 
• Aturan Crossover menggabungkan dua orang tua untuk membentuk anak-anak untuk generasi berikutnya. 
• Aturan mutasi menerapkan perubahan acak pada masing-masing orang tua untuk membentuk anak.

Algoritme genetik pada baris perintah, memanggil fungsi algoritma genetika ga dengan sintaksis


di mana 
• @fnessfun adalah pegangan untuk fungsi kebugaran. 
• nvars adalah jumlah variabel independen untuk fungsi kebugaran. 
• Opsi adalah struktur yang berisi opsi untuk algoritma genetika.
 Jika Anda tidak menyetujui argumen ini, ‘ga’ menggunakan opsi standarnya.

Hasilnya diberikan oleh 
• x - Titik di mana nilai akhir dicapai 
• fval - Nilai akhir dari fungsi kebugaran 

Toolbox ditetapkan dari fungsi pustaka standar, yang terdiri dari algoritme yang telah ditentukan sebelumnya.

Teknologi genetik dan pengarahan pencarian kotak peralatan dari MATLAB terdiri dari fungsi-fungsi berikut:


Ini adalah fungsi-fungsi toolbox yang ada di MATLAB. Ada juga Kotak Algoritma Genetika dan Evolusi untuk digunakan dengan MATLAB yang berisi berbagai alat untuk memecahkan masalah optimasi dunia nyata. Mereka tidak hanya mencakup optimasi murni, tetapi juga persiapan masalah yang harus diselesaikan, visualisasi proses optimasi, pelaporan dan penyimpanan hasil, dan juga beberapa alat khusus lainnya. Daftar berbagai fungsi menggunakan Genetic and EvolutionaryAlgorithmToolbox untuk digunakan dengan MATLAB adalah sebagai berikut:



Algoritma Genetika Kotak Antarmuka Pengguna Grafis

Genetic Algorithm Tool adalah antarmuka pengguna grafis yang memungkinkan Anda menggunakan algoritma genetika tanpa bekerja di baris perintah. Untuk membuka Alat Algoritma Genetika, masukkan ( optimtool )


gatool dapat digunakan pada matlab versi 2015a kebawah, dan optimtool bisa digunakan untuk matlab versi 2015b keatas dan masih bisa dipakai untuk versi 2019a.

Ini membuka alat seperti yang ditunjukkan di bawah ini.
Untuk menggunakan Alat Algoritma Genetika, Anda harus terlebih dahulu mengikuti informasi berikut:

Fungsi kebugaran - Fungsi tujuan yang ingin Anda perkenalkan. Masukkan fungsi kebugaran ke dalam bentuk @ kebugaran, di mana tingkat kebugaran lakukan di sini.

Jumlah Variabel - Jumlah variabel dalam fungsi kebugaran yang diberikan harus diberikan.



Opsi plot
1. Kesempurnaan terbaik
2. Individu terbaik
3. Jarak
4. Ekspektasi
5. Silsilah
6. Kisaran
7. Skor Keragaman
8. Skor
9. Seleksi
10. Berhenti

Berdasarkan masalah yang ada, fungsi kustom saya juga dapat dibangun. Berbagai parameter penting untuk menjalankan alat algoritma Genetika harus ditentukan dengan tepat. Parameter muncul di sisi kanan alat GA. Uraiannya sebagai berikut:

1. Populasi 
Dalam hal ini tipe populasi, ukuran populasi dan fungsi pembuatan dapat dipilih. Populasi awal dan skor awal mungkin ditentukan, jika tidak, "alat Ga" menciptakan mereka. Kisaran awal harus diberikan.

2. Penskalaan Kebugaran 
Penskalaan kebugaran harus salah satu dari yang berikut ini
a. Peringkat
b. Proporsional
c. Atas
d. Shift Linear
e. Adat

3. Pemilihan 
Pemilihan dilakukan pada salah satu dari metode yang disebutkan berikut


4. Reproduksi 
Dalam reproduksi, jumlah elit dan fraksi silang harus diberikan. Jika jumlah elit tidak ditentukan, maka dianggap sebagai 2.


5. Mutasi 
Umumnya Mutasi Gaussian atau Seragam dilakukan. Pengguna dapat mendefinisikan operasi mutasi yang dikustomisasi sendiri.


6. Crossover 
Berbagai teknik crossovert adalah sebagai berikut:

7. Migrasi
 Parameter untuk migrasi harus didefinisikan sebagai berikut:

8. Fungsi Hibrida 
Salah satu dari fungsi hibrida berikut ini dapat dipilih,

9. Stopping Criteria 
The stopping criteria plays a major role in simulation. They are:
Parameter lainnya Fungsi Output, Tampilan ke jendela perintah dan Vectorize mungkin sesuai didefinisikan oleh pengguna.

10. Menjalankan dan Simulasi 
Menu yang ditunjukkan di bawah ini membantu pengguna untuk menjalankan alat GA.

Proses yang berjalan dapat dihentikan sementara menggunakan opsi "Jeda" dan berhenti secara permanen menggunakan opsi "Berhenti". "Generasi saat ini" akan ditampilkan selama iterasi. Setelah iterasi selesai, status dan hasil akan ditampilkan

Mengatasi Masalah menggunakan MATLAB

Masalah 1
Tulis program MATLAB untuk memaksimalkan f (x) = x2 menggunakan algoritma genetika, di mana x berkisar dari 0 hingga 31. Lakukan 4 iterasi.

Catatan

Dalam MATLAB% menunjukkan pernyataan komentar.

Source Code

%program for Genetic algorithm to maximize the function f(x) =sin(x)
clear all;
clc;
%x ranges from 0 to 3.14
%five bits are enough to represent x in binary representation
n=input('Enter no. of population in each iteration');
nit=input('Enter no. of iterations');
%Generate the initial population
[oldchrom]=initbp(n,5);
%The population in binary is converted to integer
FieldD=[5;0;3.14;0;0;1;1]
for i=1:nit
phen=bindecod(oldchrom,FieldD,3);% phen gives the integer value of the
%binary population
%obtain fitness value
FitnV=sin(phen);
%apply roulette wheel selection
Nsel=4;
newchrix=selrws(FitnV, Nsel);
newchrom=oldchrom(newchrix,:);
%Perform Crossover
crossoverrate=1;
newchromc=recsp(newchrom,crossoverrate);%new population after crossover
%Perform mutation
vlub=0:31;
mutationrate=0.001;
newchromm=mutrandbin(newchromc,vlub,mutationrate);%new population
%after mutation
disp('For iteration');
i
disp('Population');
oldchrom
disp('X');
phen
disp('f(X)');
FitnV
oldchrom=newchromm;
end

solution




Tidak ada komentar:

Posting Komentar

Sumber : Pengenalan Konsep Pembelajaran Mesin dan Deep Learning Oleh Jan Wira Gotama Putra [KEMBALI KE MENU SEBELUMNYA] ...