Bab 8

Genetic Algorithm Implementation Using Matlab







8.1 Introduction [Kembali]


MATLAB (Matrix Laboratory), sebuah produk dari Mathworks, adalah perangkat lunak ilmiah paket yang dirancang untuk memberikan komputasi numerik dan visualisasi grafis terintegrasi dalam bahasa pemrograman tingkat tinggi. Dr Cleve Moler, Kepala ilmuwan di MathWorks, Inc., awalnya menulis MATLAB, untuk menyediakan akses mudah ke perangkat lunak matriks dikembangkan dalam proyek LINPACK dan EISPACK. Versi pertama adalah ditulis pada akhir tahun 1970 untuk digunakan dalam kursus dalam teori matriks, aljabar linier, dan analisis numerik. MATLAB dibangun di atas fondasi yang canggih perangkat lunak matriks, di mana elemen data dasar adalah matriks yang tidak memerlukan predimensioning.

Algoritma Genetika Toolbox menggunakan fungsi matriks MATLAB untuk membangun satu set alat serbaguna untuk menerapkan berbagai metode algoritma genetika. Algoritma Genetika Toolbox adalah kumpulan rutinitas, ditulis kebanyakan dalam m-file, yang mengimplementasikan fungsi yang paling penting dalam algoritma genetika.


8.2 Data Structure [Kembali]


                 Struktur data dalam toolbox algoritma genetika meliputi:

  • Kromosom
  • Nilai Fungsi Objektif 
  • Nilai Kebugaran




    8.2.1 Chromosomes [Kembali]


Struktur data kromosom menyimpan seluruh populasi dalam satu matriks ukuran Nind × Lind, di mana Nind adalah jumlah individu dalam populasi dan Lind adalah panjang representasi genotip dari orang-orang itu. Setiap baris sesuai ke genotipe individu, yang terdiri dari nilai-n dasar, biasanya bernilai biner.


Representasi data ini tidak memaksakan struktur pada struktur kromosom, hanya membutuhkan bahwa semua kromosom memiliki panjang yang sama. Dengan demikian, populasi terstruktur atau populasi dengan berbagai basis genotip dapat digunakan dalam Toolbox Algoritma Genetika menyediakan fungsi decoding yang sesuai, pemetaan kromosom ke fenotipe yang digunakan.


    8.2.2 Phenotypes [Kembali]

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


    8.2.3 Objective Function Values [Kembali]

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




    8.2.4 Fitness Values [Kembali]

Nilai-nilai kebugaran berasal dari nilai-nilai fungsi obyektif melalui skala atau fungsi peringkat. Fitnesses adalah non-negatif dan disimpan dalam vektor kolom panjang Nind, contoh yang ditunjukkan di bawah ini. Lagi-lagi, Ranking adalah fungsi kesucian yang sewenang-wenang.


    8.2.5 Multiple Subpopulations [Kembali]

Toolbox ini mendukung penggunaan populasi tunggal dibagi menjadi beberapa subpopulasi atau demes dengan memodifikasi penggunaan struktur data sehingga subpopulasi disimpan dalam blok berdekatan dalam satu matriks. Sebagai contoh, struktur data kromosom, Chrom, terdiri dari Subpop subpopulasi, masing-masing panjang N individu Ind.



8.3 Multi-Objective Optimization [Kembali]

Algoritma Genetika dan Direct Search Toolbox adalah kumpulan fungsi yang memperluas kemampuan dari Kotak Optimisasi dan lingkungan komputasiMATLABnumerik. Algoritma Genetika dan Direct Search Toolbox termasuk rutinitas untuk menyelesaikan masalah pengoptimalan menggunakan
• Algoritme genetika
• Pencarian langsung

Algoritme ini memungkinkan Anda untuk memecahkan berbagai masalah pengoptimalan yang berada di luar lingkup Kotak Alat Pengoptimalan. Algoritma genetika menggunakan tiga jenis aturan utama di 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-aturan mutasi menerapkan perubahan acak pada masing-masing orang tua untuk membentuk anak-anak.

[x fval] = ga(@fitnessfun, nvars, options)

Toolbox pada matlab yang dapat digunakan :


Ada juga Toolbox Algoritma Genetika dan Evolusioner untuk digunakan dengan MATLAB yang berisi berbagai alat untuk memecahkan masalah pengoptimalan dunia nyata. Mereka tidak hanya mencakup pengoptimalan murni, tetapi juga persiapan masalah yang harus diselesaikan, visualisasi proses pengoptimalan, pelaporan dan penghematan hasil, dan juga beberapa alat khusus lainnya. Daftar berbagai fungsi menggunakan Algoritma Genetika dan Evolutionary Toolbox untuk digunakan dengan MATLAB adalah sebagai berikut:





8.4 Genetic Algorithm Graphical User Interface Toolbox [Kembali]


The Genetic Algorithm Tool adalah antarmuka pengguna grafis yang memungkinkan Anda untuk menggunakan algoritma genetika tanpa bekerja di baris perintah. Untuk membuka Alat Algoritma Genetika, masukkan
gatool
pada prompt perintah MATLAB. Untuk menggunakan Alat Algoritma Genetika, Anda harus terlebih dahulu memasukkan informasi berikut:
Fungsi kebugaran - Fungsi obyektif yang ingin Anda minimalkan. Masukkan fungsi kebugaran dalam bentuk @filterfun, di mana fi nness.m adalah sebuah M fi le yang menghitung fungsi kebugaran.
Jumlah Variabel - Jumlah variabel dalam fungsi kebugaran tertentu harus diberikan.


Pilihan plot
1. Kebaikan terbaik
2. Individu terbaik
3. Jarak
4. Harapan
5. Genealogi
6. Jangkauan
7. Keragaman Nilai
8. Skor
9. Seleksi 10. Menghentikan
Berdasarkan masalah yang satu, fungsi kustom saya juga dibangun. Berbagai parameter penting untuk menjalankan alat algoritma Genetika harus ditentukan secara tepat. Parameter muncul di sisi kanan alat GA. Uraiannya adalah sebagai berikut:

1. Populasi

 Dalam hal ini jenis populasi, ukuran populasi dan fungsi pembuatan dapat dipilih. Populasi awal dan skor awal dapat ditentukan, jika tidak, "Ga tool" membuatnya. Rentang awal harus diberikan.

2. Penyaringan Kebugaran 
Skala penskalaan harus merupakan salah satu dari yang berikut
  • Pangkat
  • Sebanding
  • Puncak
  • Shift Linear
  • Adat

3. Seleksi

4. Reproduksi

Dalam reproduksi, jumlah elit dan fraksi silang harus diberikan. Jika jumlah elit tidak ditentukan, itu diambil sebagai 2.
5. Mutasi

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

6. Crossover 


7. Migrasi 


8. Fungsi Ganda


9. Kriteria Penghentian 

Kriteria berhenti memainkan peran utama dalam simulasi. Mereka:


10.  Menjalankan dan Simulasi

Menu yang ditunjukkan di bawah ini membantu pengguna untuk menjalankan alat GA.




8.5 Solved Problem Using Matlab [Kembali]

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.
Kode sumber:



No comments:

Post a Comment