ALGORITMA GENETIKA



Oleh :




Evan Edsa Azola
1510951002

Anggota Kelompok :


Muhammad Rizki Putra Yayu

1610952025


Dosen Pengampu :

Dr. Darwison




Referensi :

1. S.N.Sivanandam and S.N.Deepa, Introduction to Genetic Algorithm, Springer-Verlag Berlin Heidelberg 2008;
2. Mitchell Melanie, An Introduction to Genetic Algorithms, Cambridge, Massachusetts, 1999;
3. Genetic Algorithm and Direct Search Toolbox User’s Guide For Use with MATLAB, Version 1, The MathWorks, Inc., 2004;

UAS Algoritma Genetika

Penerapan Algoritma Genetika untuk Optimasi Transfer Daya pada Sensor Gas

- Untuk membuat sebuah sistem transfer daya yang dapat mengoptimalkan daya yang ditransfer dari sensor gas ke pengkondisi sinyal.

-  Sensor Gas














- Rangkaian Op-Amp Non Inverting


A. Gambaran Umum 

Sensor merupakan suatu peralatan yang berfungsi untuk mendeteksi sinyal-sinyal yang berasal dari perubahan suatu energi, seperti energi listrik, energi fisika, energi kimia, dll. Sensor yang sering ditemui di pasaran kebanyakan belum dapat langsung digunakan, sehingga harus digunakan dengan komponen-komponen elektronik lainnya. Komponen yang dimaksud ialah pengkondisi sinyal, mikrokontroler, dan display sebagai tampilan dari hasil sensing oleh sensor.

Pada sistem sensor, pemilihan pengkondisi sinyal sangatlah penting karena menentukan efektifitas transfer daya yang terjadi antara sensor dengan pengkondisi sinyal. Transfer daya optimum akan terjadi pada saat resistansi sensor (Rs) sama dengan resistansi beban (Rl). Pemilihan nilai resistansi beban (Rl) harus dilakukan secara cermat karena disamping dayanya harus maksimum, tegangan yang keluar dari pengkondisi sinyal juga harus dapat dibaca oleh mikrokontroler. Upaya untuk mengoptimalkan transfer daya perlu dilakukan dengan batasan resistansi beban (Rl) yang terdapat pada sistem sensor.



A. Sensor Gas Metana

Sensor gas metana yang digunakan ialah TGS 2611 keluaran Figaro. Sensor ini mempunyai sensitivitas dan selektifitas yang sangat baik terhadap gas metana. Material sensor gas ini terbuat dari bahan semikonduktor sehingga perlu dipanaskan agar dapat bekerja dengan optimal. Sensor gas berbahan metal oksida ini mempunyai fungsi kerja pada 250-400 derajat celsius. Ketika sensor didekatkan dengan gas metana, maka gas metana akan mereduksi muatan negatif oksigen, sehingga resistansi pada sensor menutun.

B. Pengkondisi Sinyal Sistem Sensor

Pengkondisi sinyal yang digunakan pada sensor gas adalah Op-Amp non inverting. Op-Amp non inverting adalah penguat sinyal dengan tegangan keluaran yang sefase dengan sinyal masukan. Sinyal masukan disambungkan ke kaki non inverting (+) dan masukan inverting (-) dipasang ke ground. Tanda (+) dan (-) pada input bukan menunjukkan orientasi tegangan tetapi, untuk menunjukkan adanya ketertinggalan fase. Berikut ini adalah contoh rangkaian Op-Amp non inverting.


Tegangan pada masukan inverting sama dengan tegangan masukan sumber (Vi) yang juga sama dengan tegangan dari sebuah pembagi tegangan antara Vo dan ground pada persamaan


Rangkaian sensor dan pengkondisi sinyal ditunjukkan pada gambar di bawah ini:


Keluaran dari penguat dihubungkan ke mikrokontroler sehingga terjadi transfer daya dari sensor ke pengkondisi sinyal. Optimasi dilakukan untuk memperoleh transfer daya maksimum agar energi yang diterima oleh mikrokontroler adalah maksimum. Transfer daya akan bernilai maksumum jika tahanan dalam (Rl) sama dengan tahanan sensor (Rs) dan P merupakan fugnsi dari Rs, maka untuk mencari nilai maksimum P adalah:


Nilai P akan bernilai optimum jika:


Sehingga Rl = Rs

Untuk daya maksimumnya adalah:


C. Algoritma Genetika

Optimasi transfer daya dilakukan dengan mempertimbangkan batasan rangkaian pengkondisi sinyal sistem sensor yang berupa resistansi beban selama proses sensing berlangsung. Algoritma genetika merupakan salah satu metode optimasi probabilistik heuristik yang didasarkan pada evolusi genetika alami untuk menyelesaikan berbagai macam masalah optimasi melalui pelacakan.

Diagram alir proses optimasi dengan menggunakan algoritma genetika dapat dilihat pada gambar dibawah ini:


D. Program Matlab

Sekarang kita akan membuat fungsi fitness dengan menggunakan Matlab. Caranya adalah dengan mengklik New > Function lalu, simpan file dengan nama delta_tegangan.m.

Fungsi Fitness :

function transfer_daya = optimasi(x)

     transfer_daya = 2 / (2 + (8*x(1)^4 / x(2)));

end

Selanjutnya pada Command Window pada Matlab kita ketikkan "optimtool ga". Sehingga akan muncul box "Optimization Tool" untuk permasalahan di Algoritma genetika seperti yang terlihat pada gambar dibawah :


Selanjutnya, kita akan mengisi bagian-bagian yang kosong dengan nilai berikut :

- Fitness Function = @optimasi
- Number of variables = 4


- Pada Population, pilih Population Size = 1000 dan Initial Range = [0;5].


- Pada Selection Functions, pilih selection function Roulette.


- Pada Mutation, pilih Mutation Function nya Uniform dan Rate = 0,2.


- Pada Crossover, pilih Crossover Function nya Two Point.


- Pada Plot Functions, gunakan Plot Interval = 3, dan centang Best Individual dan Distance untuk dapat menampilkan hasil dalam bentuk grafik.


- Setelah kita mengisi data-data yang kita perlukan, maka kita akan mengklik tombol "start" untuk menghitung.


- Maka, kita akan mendapatkan hasil.


Berikut ini adalah video tutorial untuk simulasi tersebut:




5. Link Download

Fungsi Fitness : DOWNLOAD DISINI

Video Tutorial : DOWNLOAD DISINI

HTML : DOWNLOAD DISINI

UTS Algoritma Genetika

Perancangan Sensor Warna dengan Algoritma Genetika



- Untuk membuat sensor yang dapat membedakan warna dengan mengkoleksi data yang dapat merepresentasikan warna.

- Phototransistor
















- Infrared LED














- Resistor




a. Gambaran Umum


Sensor warna akan dibuat menggunakan infrared LED dan phototransistor, dan harus dapat memaksimalkan kapasitas Analog to Digital Converter (ADC) pada mikrokontroler yang akan digunakan. Kita asumsikan bahwa, mikrokontroler yang digunakan adalah Arduino Nano (ATMega 328p) yang memiliki spesifikasi ADC 10 bit dengan tegangan kerja 5 Volt. Sehingga, kita dapat menyimpulkan bahwa ADC pada mikrokontroler tersebut memiliki ketelitian hingga ~5 miliVolt.


b. Skema Rangkaian


Rangkaian di atas merupakan contoh model sederhana dari rangkaian infrared LED dan phototransistor yang akan digunakan. Akan tetapi, untuk analisa kali ini, kita dapat menghilangkan infrared LED.


Tegangan keluaran (Vout) merupakan tegangan yang akan diberikan ke ADC yang kemudian akan diproses oleh mikrokontroler. Vout harus bervariasi dari 0 - 5 Volt agar mikrokontroler dapat dengan mudah mengelompokkan warna (Disini kita menggunakan warna hitam, abu-abu, dan putih).

Vout dapat kita peroleh dari persamaan berikut :


Jika kita memasukkan nilai tegangan kerja (Vin) dengan nilai 5 Volt maka Vout :

Nilai dari R2 akan kita peroleh dari komponen phototransistor. Sedangkan R1 merupakan resistor tetap yang harus diatur agar Vout memiliki rentang nilai sebesar mungkin. Kita dapat mengasumsikan nilai minimal dari R1 adalah 8 KiloOhm, dan nilai maksimal dari R1 adalah 20 KiloOhm, sehingga :


Dari persamaan diatas maka, akan sangat mudah untuk memperoleh nilai R2 yang sesuai agar delta Vout maksimal, jika R2 yang dipakai adalah sebuah resistor yang nilainya dapat ditentukan. Dalam kasus ini, kita dapat mengasumsikan R2 adalah 10 buah resistor yang diserikan, sehingga :


Nilai dari R1 hingga R10 dapat kita anggap bernilai 100 Ohm hingga 56 KiloOhm. Nilai resistor-resistor dari R1 hingga R10 sangat sulit untuk dicari secara manual. Banyak sekali iterasi yang harus kita lakukan sehingga, akan ada kemungkinan iterasi akan terjebak dengan nilai maksimum lokal.


a. Algoritma Genetika

Dari pembahasan diatas, maka kita dapat menentukan :

- Fungsi Obyektif


- Jumlah populasi = 100

- Individu



Individu ini terdiri dari 10 kromosom yang kita representasikan oleh R1,R2,R3, ..., R10.


b. Program Matlab

Sekarang kita akan membuat fungsi fitness dengan menggunakan Matlab. Caranya adalah dengan mengklik New > Function lalu, simpan file dengan nama delta_tegangan.m.

Fungsi Fitness :

function tegangan = delta_tegangan(res)

     total_res = res(1)+res(2)+res(3)+res(4)+res(5)+res(6)+res(7)+res(8)+res(9)+res(10);
     tegangan = (5*total_res) / (8000+total_res);
     tegangan = tegangan - ((5*total_res) / (20000+total_res));
     tegangan = 5 - tegangan;

end

Selanjutnya pada Command Window pada Matlab kita ketikkan "optimtool". Sehingga akan muncul box "Optimization Tool" seperti yang terlihat pada gambar dibawah :


Selanjutnya, kita akan mengisi bagian-bagian yang kosong dengan nilai berikut :

- Fitness Function + @delta_tegangan
- Number of variables = 10

- Bounds (berfungsi untuk memberikan batasan, untuk dapat mendapatkan solusi yang lebih cepat dan lebih terpercaya)
* Lower = [100,100,100,100,100,100,100,100,100,100]
* Upper = [5600,5600,5600,5600,5600,5600,5600,5600,5600,5600]


- Population size = 100


- Pada Plot Functions, centang Best Fitness dan Best Individual untuk dapat menampilkan hasil dalam bentuk grafik.


- Setelah kita mengisi data-data yang kita perlukan, maka kita akan mengklik tombol "start" untuk menghitung.


- Maka, kita akan mendapatkan hasil



Berikut ini adalah video tutorial untuk simulasi:





Fungsi Fitness : DOWNLOAD DISINI

Video Tutorial : DOWNLOAD DISINI

HTML : DOWNLOAD DISINI 

Genetic Algorithm Optimization Problems (Masalah Optimisasi Algoritma Genetika)

Masalah Optimisasi Algoritma Genetika

1. Masalah Optimisasi Fuzzy

Optimisasi Fuzzy menjelaskan sebuah masalah optimisasi dengan fungsi objektif Fuzzy dan batasan pada Fuzzy. Hasil tersebut didapatkan dari metode umum dari optimisasi yang melibatkan variabel deterministik yang menunjukkan berbagai kekurangan. Masalah deterministik optimisasi yang umum menurut :

Dianggap berada dalam aspek ketidakpastian, dan diperpanjang. Untuk fungsi objektif z (x,e) solusi optimum Xopt dari set suatu rancangan variabel X yang ditentukan dari kepatuhan dengan batasan kesetaraan hj(x,e) dan batasan ketidaksetaraan gi(x,e). Menimbang parameter ketidakpastian merupakan variabel Fuzzy, masalah optimisasi deterministik diperlebar hingga menjadi masalah optimisasi Fuzzy :


Solusi numerik dari masalah optimisasi Fuzzy adalah berdasarkan optimisasi level-alpha.

1.1. Optimisasi Multiobjektif Fuzzy

Misalkan kita diberikan suatu masalah pemrograman matematika multiobjektif dimana hubungan fungsional antara variabel keputusan dan tujuan fungsi tidak sepenuhnya diketahui. Maka, disarankan untuk menggunakan metode penalaran Fuzzy Tsukamoto untuk menentukan hubungan fungsional yang tajam antara variabel keputusan dan fungsi objektif. Masalah optimisasi multiobjektif Fuzzy dapat dinyatakan dan diselesaikan dengan berbagai cara. Kita anggap masalah optimisasi pada bentuk:


Dimana Gk, k = 1 ... K, atau/dan X ditentukan oleh istilah fuzzy. Maka, untuk mencari x* yang akan memaksimalkan Gk didalam batasan Fuzzy (X). Sebagai contoh, masalah pemrograman linear multiobjektif Fuzzy dapat dinyatakan dalam :


Dimana x irisan IR^n merupakan vektor dari variabel keputusan, A' = (a'ij), b' = (b'ij), c' = (c'ij) merupakan jumlah Fuzzy, hubungan ketidaksetaraan <= diberikan oleh hubungan Fuzzy tertentu dan X adalah set Fuzzy yang menjelaskan konsep " x memenuhi A'x <= b' ".

Disini, kita mengaggap terdapat pernyataan baru dari masalah optimisasi multiobjektif Fuzzy yaitu:


Dimana x1 ... xn merupakan variabel linguistik, dan :


merupakan satu-satunya pengetahuan yang tersedia mengenai nilai-nilai G, sedangkan Aij dan Cik adalah angka Fuzzy. Berikut ini adalah masalah optimisasi non-linier :


1.1.1. Optimisasi Multiobjektif didalam Aturan If-Then Fuzzy

Kita anggap masalah diatas memiliki Aij kontinyu mewakili nilai linguistik dari xi, dan dengan ketat monoton dan kontinyu Cik, i = 1 ... m mewakili nilai linguistik dari Gk, k = 1 ... K. Untuk dapat menenukan solusi dari masalah tersebut, kita harus menentukan nilai ketajaman dari fungsi objektif Gk yang ke-k dari basis aturan Fuzzy menggunakan metode penalaran Fuzzy Tsukamoto seperti berikut :


Menunjukkan bahwa tingkat pembakaran dari aturan ke-i. Untuk menentukan tingkat pembakaran aturan, disarankan untuk menggunakan keluaran dari t-norm. Sehingga, masalah tersebut berubah menjadi masalah pemrograman matematika.


1.2 Metode Optimasi Fuzzy Interaktif

Metode




Advanced Operators and Techniques in Genetic Algorithm (Operator dan Teknik Lanjutan dalam Algoritma Genetika)

Operator dan Teknik Lanjutan dalam Algoritma Genetika

Genotipe yang paling sederhana adalah kromosom haploid atau tunggal. Kromosom haploid hanya mengandung satu set gen yaitu, satu alel untuk menempati setiap lokus. Ketika alam membangun kehidupan yang lebih kompleks maka, diperlukan struktur kromosom dan ini dapat dicapai dengan diploid. Dalam bentuk diploid, suatu genotipe membawa satu atau lebih pasangan kromosom yang berisi informasi untuk fungsi yang sama. Misalkan sebuah struktur kromosom diploid dimana huruf yang berbeda mewakili alel yang berbeda :

P q r s t
P Q R S T

Alel mewakili sifat gen tertentu. Awalnya, di alam masing-masing alel dapat mewakili sifat fenotipik yang berbeda. Pada contoh di atas, kita asumsikan bahwa semua huruf besar dominan dan semua huruf kecil resesif maka, fenotip diekspresikan sebagai :

P q r S t
                                      --> P Q R S t
p Q R S t

Dominasi adalah operator genetik yang digunakan untuk menghitung fenotip dari nilai alel yang dimungkinkan pada posisi gen. Dominasi dan diploidi dapat dengan mudah diimplementasikan dalam algoritma genetika, kita asumsikan ada 3 alel :

(0) - Disandikan untuk gen 0;
(1) - Disandikan secara resesif untuk gen 1;
(2) - Disandikan secara dominan untuk gen 1.

Rasio fenotip untuk dominasi adalah 3 : 1 yang dicapai untuk pasangan alel 0 dengan 1, dan 0 dengan 2. Dominasi dapat berkembang melalui substitusi alel 1 untuk 2 dan sebaliknya.


Dalam algoritma genetika, diploidi mungkin berguna dalam aplikasi on-line dimana sistem dapat beralih diantara kondisi.


Algoritma genetika multiploid menggabungkan beberapa kandidat untuk setiap gen di dalam genotip tunggal dan menggunakan beberapa bentuk mekanisme dominasi untuk memutuskan mana pilihan masing-masing gen aktif dalam fenotip. Genotip multiploid yang ditunjukkan pada gambar dibawah berisi kromosom p, panjang L, dan mask yang menentukan kromosom p mana yang dominan pada posisi tertentu dalam kromosom. Informasi ini diterjemahkan menjadi fenotip sebagai berikut :



Nilai alel a pada lokus i dalam mask menunjukkan bahwa gen ke-i dalam kromosom dengan indeks a menjadi gen ke-i dari fenotip. Dalam gambar di atas, panjang mask adalah m dan panjang kromosom L maka, gen di lokus "i" dalam mask dengan nilai 'a' menunjukkan bahwa set ke-i dari L/m secara bersamaan dalam kromosom ke-a yang dominan.



Pembalikan adalah operator genetika yang tidak teratur dan mengkode ulang. Operator pembalikan adalah mekanisme alami utama untuk mengkode ulang masalah. Di operator pembalik, dua titik dipilih di sepanjang kromosom, kromosom dipotong pada titik-titik tersebut dan titik-titik akhir dari potongan dibalikkan. Sebagai contoh, anggap ada sebuah kromosom dengan panjang 8 dimana dua titik pembalik dipilih secara acak :

1   1  ^  0   1   1   1  ^  0   1

Dengan menggunakan operator pembalik maka, hasilnya akan menjadi :

1   1   1   1   1   0   0   1

Tujuan adanya pembalikan adalah untuk mengurangi panjang string sehingga mereka dapat bertahan lebih lama. Algoritma dasar untuk pembalikan dapat diberikan sebagai berikut :


Terdapat beberapa operator pengkode ulang, yang merupakan variasi pada pembalikan, yaitu :
1. Pembalikan linear;
2. Pembalikan linear + end;
3. Pembalikan berkelanjutan;
4. Pembalikan massa.

Fitur pembalikan dan crossover dikombinasikan sehingga menghasilkan sebuah operator pengkode ulang adalah :
1. Partially Matched Crossover (PMX);
2. Order Crossover (OX);
3. Cycle Crossover (CX).

3.1 Partially Matched Crossover (PMX)

Di PMX, dua string diselaraskan dan dua titik crossover dipilih secara seragam secara acak. Anggap terdapat dua string :


Dua titik dipilih secara acak dan PMX dilanjutkan berdasarkan posisi pertukaran. Diantara titik crossover ditukarkan. Ini dilakukan dengan memetakan induk B ke induk A. Jadi setelah PMX, keturunan yang dihasilkan sebagai berikut :


3.2 Order Crossover (OX)

OX dimulai dengan cara yang mirip dengan PMX tetapi bukan menggunakan pertukaran antar titik seperti PMX akan tetapi, OX menggunakan gerakan penggeseran dengan mentransfer posisi yang sudah dipetakan. Anggap terdapat sebuah kromosom induk :


Pada pemetaan induk B dengan induk A, titik 3,6, dan 5 dibiarkan kosong


Tempat kosong tersebut diisi dengan penggeseran yang dimulai dengan kedua titik crossover


Tempat kosong tersebut kemudian diisi dengan bagian yang cocok yang diambil dari induk A, sehingga keturunan yang dihasilkan seperti yang ada di bawah :


3.3 Cycle Crossover (CX)

CX berbeda dengan PMX dan OX, CX bekerja dengan rekombinasi dibawah batasan bahwa setiap gen berasal dari induk atau yang lain.


Di algoritma genetika relung biasanya merujuk kepada hal yang membuat kelompok tertentu menjadi unik, seperti memiliki tingkat kebugaran yang sama, genotip, dll. Sementara spesiasi merujuk kepada individu yang berada dalam kelompok tersebut.

4.1 Relung dan Spesiasi dalam Masalah Multimodal

Kita anggap terdapat sebuah mesin slot dua tangan, jika satu orang bermain, dia akan akan mencoba tiap tangan untuk beberapa saat untuk mengetahui siapa yang memiliki hasil lebih besar dan akan seterusnya menggunakan tangan tersebut. Sekarang kita anggap bahwa sekelompok orang memainkan mesin slot yang sama dan grup yang bermain harus berbagi kemenangan mereka dan begitu sebaliknya. Pemain diperbolehkan mengganti grup untuk meningkatkan bagian mereka. 

Jika kita anggap M adalah total orang yang bermain :


Kemudian, orang-orang yang membentuk kelompok di masing-masing lengan diberikan oleh persamaan berikut : 


Algoritma genetika menggunakan kepanikan untuk diterapkan di fungsi multimodal untuk menghadapi 2 masalah utama, yang pertama adalah distribusi individu secara merata di semua puncak seperti gambar di bawah :


Setiap puncak dalam lanskap solusi dapat dilihat sebagai relung yang terpisah. Aplikasi algoritma genetika yang berhasil harus menghasilkan beberapa individu yang tersebar di masing-masing relung. Masalah kedua ialah induk dari berbagai spesies yaitu relung yang berbeda cenderung menghasilkan anak yang tidak terpakai sehingga, induk yang menempati relung yang berbeda harus dikucilkan dari perkawinan. Berikut gambar yang mengilustrasikan masalah tersebut :


4.1.1 Crowding

Penanganan yang dilakukan untuk mencegah genotip tunggal mendominasi populasi, adalah dengan memastikan bahwa individu yang baru lahir akan menggantikan induk yang memiliki genotip yang mirip. Crowding mencoba untuk mempertahankan populasi yang seimbang dengan cara memilih formasi sel individu secara acak dan melalui perhitungan jarak hamming, akan dipilih korban yang cocok.

Keuntungan dari crowding adalah beberapa individu harus diperiksa kapan memilih korban, karena formasi sel biasanya berjumlah 2 atau 3. Penggantian individu yang serupa ini bertindak untuk mencegah satu genotip dari mengambil alih populasi secara sepenuhnya, sehingga memungkinkan relung yang kurang bugar untuk terbentuk dalam populasi utama.

4.1.2 Sharing

Pada metode sharing, individu yang berada dalam suatu populasi memiliki sumber daya yang terbatas sehingga mereka harus berjuang. Akan tetapi, sharing merupakan metode yang sangat spesifik terhadap masalah yang harus diketahui.

Menentukan fungsi Sharing berdasarkan kesamaan :


Atau, berdasarkan kesamaan pada fenotip (nilai kode) dibanding genotip :


Semakin mirip kromosomnya maka, semakin banyak nilai kebugaran yang harus dibagi. Setiap kromosom memiliki faktor berbagi yang dikalkulasikan :


Kebugaran kromosom dihitung ulang dengan membagi kebugaran asli dengan faktor pembagi :


4.2 Relung dan Spesiasi dalam Masalah Unimodal

Penggunaan relung dalam masalah multimodal adalah pemetaan sederhana, dengan evolusi dari berbagai spesies yang berbeda untuk tiap puncak dari lanskap solusi. Akan tetapi, pemetaan ini tidaklah mudah di masalah unimodal yang biasanya hanya memiliki satu puncak, atau memiliki satu puncak yang lebih tinggi dibanding yang lain.

Terdapat beberapa metode yang tidak secara ketat menggunakan relung, metode ini memastikan individu yang baru lahir cukup berbeda dari populasi lainnya yaitu, Pencegahan Klon dan Algoritma Genetika Keadaan Tunak (Steady State Genetic Algorithms/SSGA). Dua metode ini beroperasi dengan cara yang mirip dengan crowding. Akan tetapi, kedua metode ini memiliki biaya yang tinggi.

4.2.1 Pencegahan Inses

Pencegahan Inses berusaha untuk menjodohkan induk dengan niat anak mereka mengambil gen terbaik dari induk mereka. Hal ini dilakukan dengan mengawinkan induk yang berbeda satu sama lain. Ketika populasi berevolusi, individual di dalamnya menjadi lebih mirip, sehingga lebih menyulitkan untuk mencari induk yang sesuai. Untuk menghindari hal tersebut, terdapat ambang batas yang diterapkan yang memudahkan dalam pemilihan induk.

Pencegahan Inses mendorong perkawinan antar spesies, karena lanskap kebugaran di fungsi unimodal cenderung seperti yang terlihat dibawah:

SET THRESHOLD
REPEAT
FOR EACH INDIVIDUAL DO
TEST INDIVIDUAL
ENTER PARENT POPULATION
IF NO-NEW-PARENTS THEN LOWER THRESHOLD
FOR EACH INDIVIDUAL DO
REPEAT
SELECT PARENTS
UNTIL DIFFERENT()
UNTIL END-CRITERION REACHED OR THRESHOLD=0

Cara ini hanya akan berhasil jika sebuah individu lebih bugar dibandingkan anggota yang memiliki kebugaran paling rendah di populasi induk.

4.2.2 Algoritma Pigmi

Algoritma Pigmi digunakan pada masalah yang memiliki dua atau lebih kebutuhan. Misal, evolusi dari suatu solusi yang harus efisien dan singkat. Relung digunakan dengan memiliki dua fungsi kebugaran yang terpisah sehingga menciptakan dua spesies individu dari tiap spesies kemudian dianggap sebagai jenis kelamin yang berbeda, dan ketika orang tua dipilih untuk menciptakan individu baru, suatu individu ditarik dari masing-masing spesies dengan maksud dari tiap induk mengerahkan tekanan dari fungsi kebugarannya.

Berikut ini ialah pseudocode untuk Algoritma Pigmi:

REPEAT
FOR EACH INDIVIDUAL DO
TEST INDIVIDUAL WITH MAIN FITNESS FUNCTION
ENTER PARENT POPULATION #1
IF UNSUCCESSFUL
TEST INDIVIDUAL WITH SECONDARY FITNESS FUNCTION
ENTER PARENT POPULATION #2
FOR EACH INDIVIDUAL DO
SELECT PARENT FROM POPULATION #1
SELECT PARENT FROM POPULATION #2
CREATE NEW INDIVIDUAL
UNTIL END-CRITERION REACHED

Tiap relung diimplementasikan sebagai kelompok elitis yang terpisah, karena untuk setiap relung, yang mempertahankan individu pada lanskap solusi yang serupa.

4.3 Perkawinan Terbatas

Tujan dari perkawinan terbatas ini ialah untuk mendorong spesiasi dan mengurangi produksi yang cacat yang terjadi saat terdapat keturunan dari induk yang berbeda relung. Alam mencegah hal ini dengan dengan mencegah terjadinya perkawinan dari spesies yang berbeda, menggunakan berbagai teknik.


5. Operator Mikro

5.1 Segregasi dan Translokasi

Segregasi merupakan proses pemilihan acak dalam penyusunan gamet. Segregasi mengekploitasi organisasi kromosom yang tepat. Maka dari itu, operator translokasi digunakan sebagai operator crossover antar kromosom. Operator ini dapat diimplementasikan dengan menghubungkan alel dengan nama gen mereka.

5.2 Duplikasi dan Penghapusan

Terdapat juga operator tingkat rendah untuk melakukan pencarian algoritma genetika, yaitu Duplikasi dan Penghapusan. Duplikasi antar kromosom dilakukan dengan menduplikasikan gen tertentu dan menempatkannya dalam keturunannya. Untuk operator penghapusan dilakukan dengan cara menghapus gen ganda dari kromosom. Tingkat mutasi dapat dikontrol secara efektif oleh kedua operator ini, dimana duplikasi dapat meningkatkan tingkat mutasi sedangkan penghapusan menurunkan tingkat mutasi.

5.3 Penentuan Seksual

Penentuan jenis kelamin ditangani secara berbeda pada spesies yang berbeda.Sebagai contoh, kelamin manusia ditentukan dari salah satu dari 23 pasang kromosom. Perempuan memiliki kromosom XX dan laki-laki memiliki kromosom XY. Pada saat pembuahan, kromosom X dari perempuan akan digabungkan dengan kromosom X atau kromosom Y dari laki-laki. Dengan menerapkan strategi yang sama maka, pembentukan perbedaan jenis kelamin secara efektif membagi spesies menjadi 2 atau lebih kelompok.


6. Representasi Non-Biner

Kromosom adalah urutan simbol yang berupa angka biner sehingga, setiap simbol memiliki kardinalitas 2. Huruf kardinalitas yang lebih tinggi telah digunakan di beberapa penelitian dan diyakini diantaranya memiliki keunggulan. Goldberg berpendapat bahwa secara teori, representasi biner memberikan jumlah terbesar terhadap skema dan menyediakan paralelisme implisit tingkat tinggi. Tetapi Antonisse mengartikan skema secara berbeda, dan menyimpulkan bahwa huruf kardinalitas yang lebih tinggi yang mengandung lebih banyak skema dibanding biner.

Goldberg kini telah mengembangkan teori yang menjelaskan mengapa representasi kardinalitas tinggi dapat bekerja dengan baik. Teorinya mengatakan bahwa setiap simbol bertemu dalam beberapa generasi pertama hanya menyisakan sejumlah kecil kemungkinan nilai-nilai. Dengan cara ini, setiap simbol secara efektif hanya memiliki kardinalitas rendah. Berbagai operator bilangan real dapat dengan mudah dipertimbangkan, misal:

1. Operator Kombinasi
* Rata-rata : Mengambil rata-rata aritmatika dari gen kedua induk.
* Rata-rata geometris : Mengambil nilai akar kuadrat dari produk kedua nilai.
* Extension : Mengambil perbedaan antara dua nilai dan menambahkan atau mengurangi nilai tersebut.

2. Operator Mutasi
* Penggantian acak : Mengganti nilai dengan nilai acak.
* Creep : Menambah atau mengurangi jumlah nilai secara acak dalam jumlah kecil.
* Creep geometris : Mengkalikan nilai acak mendekati satu.


7. Optimalisasi Multi-Objektif

Pada masalah optimasi multi-objektif, beberapa fungsi perlu dioptimalkan secara bersamaan. Pada kasus ini, tidak terdapat solusi yang tebaik dengan semua objektif karena adanya perbedaan antar objektif. Oleh karena itu, biasanya ada seperangkat solusi untuk masalah multi-objektif, solusi ini disebut Solusi Optimal Pareto atau solusi yang tidak mendominasi.

Dengan menggunakan konsep optimalisasi Pareto, kita dapat menemukan seperangkat solsui yang optimal bagi tiap objektif.


8. Optimalisasi Kombinasi

Optimalisasi kombinasi mengandung sejumlah besar masalah dengan fitur dan properti yang berbeda. Berikut adalah karakteristik dari masalah-masalah tersebut:

* Untuk menentukan permutasi beberapa item yang terkait dengan masalah.
* Untuk menentukan kombinasi dari beberapa item.
* Untuk menentukan permutasi dan kombinasi dari beberapa item.

Pendekatan umum untuk mengaplikasikan algoritma genetika dalam masalah ini ialah:

* Menggunakan algoritma genetika untuk mengevolusi permutasi dan/atau kombinasi dari item yang dipertimbangkan.
* Menggunakan pendekatan heuristik untuk membangun solusi sesuai dengan permutasi dan kombinasi.


9. Teknik Berbasis Pengetahuan

Sebagian besar peneliti sudah menggunakan algoritma genetika menggunakan crossover tradisional dan operator mutasi, tetapi sudah banyak yang menganjurkan untuk merancang sebuah operator baru untuk setiap tugas, dengan ber-domain kan pengetahuan. Sehingga, hal ini akan membuat algoritma genetika lebih spesifik terhadap tugas dan meningkatkan performa secara signifikan. Dimana algoritma genetika dirancang unntuk menangani masalah nyata dan harus bersaing dengan teknik optimasi lainnya. Berbagai metode untuk menggabungkan informasi spesifik dari masalah dengan algoritma genetika adalah sebagai berikut:

- Skema hibrida.
- Operator yang diarahkan dengan pengetahuan.
- Komputer paralel.

Dalam skema hibrida, algoritma genetika digunakan untuk mendekati nilai optimal, kemudian skema optimasi konvensional dapat digunakan untuk lebih mendekati nilai optimal. Skema hibrida dapat direpresentasikan menggunakan skema seperti yang terlihat pada gambar dibawah:


Pada operator yang diarahkan menggunakan pengetahuan dapat digunakan untuk:

- Menghasilkan sistem Steiner.
- Menghitung mutasi dan crossover yang dipertahankan.
- Mutasi yang diarahkan pada tujuan.

Pada komputer paralel pada algoritma genetika menggunakan operasi master/slave. Master melakukan seleksi dan perkawinan, sedangkan slave mengevaluasi kebugaran dari kromosom baru. Master menunggu hingga seluruh slave menyelesaikan tugas atau master dapat membagikan pekerjaan baru kepada tiap slave setelah slave tersebut menyelesaikan pekerjaannya. Hal ini dapat terlihat pada gambar dibawah: