Monday, January 12, 2015

PSO

Particle Swarm Optimization

Particle Swarm Optimization (PSO) adalah sebuah teknik stochastic optimization berdasarkan populasi yang terinspirasi oleh perilaku sosial dari pergerakan burung atau ikan (bird flocking or fish schooling). Teknik PSO dikemukakan oleh Russell C. Eberhartdan James Kennedy di tahun 1995.
pso
Bersama dengan Ant Colony Optimization (ACO), PSO digolongkan ke dalam teknik metaheuristik optimasi swarm intelligence (SI) di mana prinsip sosio-psikologi yang mempengaruhi perilaku sosial makhluk hidup, diadopsi. Secara sederhana, sebuah sistem SI, yang diperkenalkan oleh Gerardo Benidan Jing Wang di tahun 1989, terbentuk dari sebuah populasi yang terdiri dari individu-individu yang berinteraksi baik secara lokal satu sama lain maupun dengan lingkungan mereka dengan mengikuti aturan yang sangat sederhana [wikipedia]. Akibatnya, pengetahuan setiap individu berkembang optimal melalui interaksi sosial yang terjadi. Kemampuan berpikir bukan lagi menjadi sesuatu yang hanya bersifat pribadi melainkan juga interpersonal.
Karena itulah, orang melihat PSO, demikian pula ACO, bukan hanya sekedar sebuah alat optimasi tapi juga sebuah alat yang melambangkan sosiokognisi (sociocognition) dari makhluk hidup dan lingkungannya (artificial agents), yang berdasarkan pada prinsip sosio-psikologi.
Sebagai sebuah alat optimasi, PSO menawarkan suatu prosedur pencarian (search procedure) berdasarkan populasi yang di dalamnya individu-individu, yang disebut particles, mengubah posisi, ataustate, mereka terhadap waktu. Mereka ‘terbang’ mengitari suatu ruang pencarian multi dimensi (multidimensional search space). Selama ‘penerbangan’ setiap individu menyesuaikan posisinya menurut pengalaman pribadinya, dan menurut pengalaman individu di sebelahnya, sehingga membentuk posisi terbaik yang sesuai untuk dirinya dan untuk individu di sebelahnya. Jadi, algoritma PSO menggabungkan metode-metode local search dengan metode-metode global search, yang menyeimbangkan antara eksplorasi dan eksploitasi.
PSO telah sukses diterapkan di dalam pelbagai bidang penelitian dan aplikasi, termasuk ‘pelatihan’ Artificial Neural Networks (ANN) dan permainan sudoku. Hal ini disebabkan karena PSO memberi hasil yang lebih baik melalui cara yang lebih cepat dan sederhana bila dibandingan dengan metode lain. Selain itu, PSO memiliki sedikit parameter untuk disesuaikan. Sehingga sebuah versi, dengan sedikit variasi, dapat bekerja dengan baik dalam banyak bentuk aplikasi, termasuk aplikasi yang spesifik dengan kebutuhan yang spesifik pula.

PSO vs GA

PSO memiliki banyak kemiripan dengan Genetic Algorithms (GA), di mana sistem diawali dengan suatu populasi yang terbentuk dari solusi-solusi acak (random solutions) kemudian sistem mencari optimalitas melalui pembaharuan generasi secara acak.
Namun demikian, PSO tidak memiliki evolution operators, seperti mutasi dan crossover (persilangan). Sebaliknya, potential solutions, yakni individu-individu, atau yang disebut sebagai particles, ‘terbang’ mengikuti individu-individu yang optimum saat ini (current optimum particles).
Setiap individu menyimpan jejak-jejak posisinya dalam problem space. Jejak-jejak posisi tersebut diartikan sebagai best solution, atau fitness dalam GA, yang diperolehnya sejauh ini. Nilainya, yaknifitness value, yang disebut pbest, juga turut disimpan. Selain pbest yang merupakan milik individu yang bersangkutan, turut disimpan pula nilai terbaik milik individu di sekitarnya (local best), yang disebut lbest. Jika suatu individu memperhitungkan semua individu di dalam populasi di mana dia berada sebagai individu di sekitarnya, maka nilai terbaik yang dimaksud adalah nilai terbaik umum (global best) dan disebut gbest. Selanjutnya, terjadi akselerasi antara lokasi pbest dan lokasi lbest dari setiap individu. Akselerasi ini diberi bobot berupa bilangan acak.
Dengan demikian, mekanisme berbagi informasi (information sharing mechanism) yang dimiliki PSO berbeda secara signifikan dengan yang dimiliki GA. Dalam GA, setiap individu, yang disebutchromosome, berbagi informasi satu sama lain, sehingga keseluruhan populasi bergerak sebagai sebuah kesatuan menuju optimalitas. Dalam PSO, hanya gbest, atau lbest, yang memberi informasi kepada yang lain. Ini adalah sebuah mekanisme berbagi informasi satu arah. Proses evolusi hanya mencari solusi yang terbaik. Dengan demikian, seluruh individu, yang disebut particle, bergerak konvergen secara cepat ke solusi terbaik.

PSO dan ANN

Sebagaimana diutarakan di atas, PSO dapat dipergunakan untuk ‘melatih’ suatu Artificial Neural Network (ANN), menggantikan teknik back-propagation learning yang umum dipakai, di mana ANN dilatih melalui kesalahan yang dihasilkan (back-propagation of errors). Teknik pelatihan ‘belajar dari kesalahan’ ini pertama kali dinyatakan oleh Paul Werbos di tahun 1974, kemudian disempurnakan oleh David E. Rumelhart, Geoffrey E. Hinton dan Ronald J. Williams, 12 tahun kemudian [wikipedia]. 
Dengan menggunakan PSO, ANN dapat ‘dilatih’ lebih cepat dengan hasil yang lebih baik pada sebagian besar kasus. PSO juga mampu menghindari beberapa problem yang dihadapi oleh GA dalam ‘melatih’ ANN.

contoh GA

Algoritma Genetika / Genetic Algorithm
Algoritma genetik merupakan suatu metode yang menggunakan seleksi alam yang merupakan bagian utama dari prinsip evolusi sebagai dasar pemikiran untuk menyelesaikan suatu permasalahan. Prinsip ini dikemukakan oleh Charles Darwin, dimana tanpa menghiraukan prinsip dasar penurunan sifat, Darwin mengemukakan penggabungan kualitas induk pada generasi berikutnya, disamping itu bahwa individu yang mampu beradaptasi dengan lingkunganya akan mempunyai kesempatan hidup yang lebih besar.
Penggunaan prinsip genetika pada komputer dimulai pada tahun 1950 ketika beberapa ahli Biologi mengunakan komputer untuk simulasi sistem biologi. Akhir tahun 1975 John Holland dari Universitas Michigan melalui paper yang berjudul “Adaption in Natural and Artificial System” mengunakan konsep dasar algoritma genetika. Algoritma genetika bekerja dengan suatu populasi string dan melakukan proses pencarian nilai optimal secara parallel, dengan mengunakan operator genetika. Algoritma genetika akan melakukan rekombinasi antar individu. Algoritma genetika memiliki elemen dasar berupa string yang tersusun dari rangkaian substring (gen), yang masing-masing merupakan kode dari parameter dalam ruang solusi dimana suatu string (kromosom) menyatakan kandidat solusi. Kumpulan string dalam populasi berkembang dari generasi ke generasi melalui operator genetika. Pada setiap iterasi, individu-individu (Kromosam) dalam populasi itu akan dievolusi dan diseleksi untuk menentukan populasi pada generasi berikutnya. Populasi ini akan terus berulang sampai menemukan suatu parameter dengan nilai yang paling optimal sesuai dengan yang diinginkan. Adapun struktur umum algoritma genetika dapat diilustrasikan pada gambar berikut:
Gambar 1. Struktur umum Algoritma Genetika
Binary encoding dapat memberikan banyak kemungkinan pada kromosom meskipun pada jumlah allele yang sedikit. Dilain pihak jenis encoding ini tidak cukup natural untuk beberapa kasus tertentu dan kadang-kadang harus dilakukan koreksi setelah melakukan crossover atau mutasi, contoh penggunaan Binary encoding adalah pada permasalahan knapsack atau pengepakan, dimana ada beberapa barang dengan jumlah dan ukuran masing-masing danknapsack harus memberikan kapasitasnya untuk barang-barang tersebut, permasalahanya adalah bagaimana memilih barang untuk memaksimalkan jumlah barang sehingga dapat ditampung olehk napsack tanpa harus menambah kapasitasnya.
Istilah-istilah yang digunakan dalam Algoritma genetika ini hampir sama dengan istilah-istilah yang dipakai dalam bidang biologi genetika, antara lain Gen, Kromosom, Populasi, FungsiFitness, dan operator genetika yang meliputi mutasi dan crossover.
Gen
Gen adalah suatu sel dari suatu kromosom atau nilai yang terdapat dalam Algoritma genetika ini dapat dibentuk oleh sebuah byte bahkan tidak menutup kemungkinan suatu string. Gen ini mewakili sebagian kecil dari solusi permasalahan.
Kromosom
Individu dalam populasi disebut string, genotype atau kromosom-kromosom terdiri dari unit-unit yang dinamakan Gen, Karakter, Decoder. Kromosom ini dapat mewakili suatu solusi, dimana dapat diilustrasikan dalam gambar dibawah ini:

Gambar 2. Kromosom dalam algoritma genetika
Untuk mempresentasikan kromosom dilakukan dengan proses encoding, dibawah ini akan dijelaskan beberapa proses encoding yang biasa digunakan dalam beberapa kasus tertentu.
Permutation Encoding
Untuk jenis Permutation Encoding ini digunakan untuk permasalahan proses pengurutan, misalnya terdapat kasus optimasi jadwal atau pada kasus traveling salesman. Pada Permutation Encoding, setiap Gen pada kromosom berupa angka dimana dapat ditampilkan seperti gambar di bawah ini:
Gambar 3. Permutation Encoding
Permutation Encoding hanya berlaku untuk permasalahan pengurutan, untuk itu dalam kasus-kasus yang ada pada Permutation Encoding terdapat beberapa jenis crossover dan mutasi yang harus dibuat untuk mempertahankan kromosom agar tetap konsisten. Contoh penggunaanPermutation Encoding ini adalah pada kasus trvelling salesman, dimana terdapat beberapa kota dengan jarak masing-masing. Pada kasus traveling salesman ini seorang salesman harus mengunjungi semua kota yang ada, tetapi tidak harus berjalan jauh untuk mencapai seluruh kota. Permasalahanya adalah menentukan urutan kota yang akan dikunjungi untuk meminimalisasi jarak yang harus ditempuh.
Binary encoding
Binary encoding adalah jenis encoding yang paling sering digunakan karena kasus pertama yang ada pada Algiritma Genetik menggunakan algoritma jenis ini. Setiap kromosom pada Binary encoding merupakan bit 0 dan 1 dimana dapat ditampilkan pada gambar bawah:
Gambar 4. Binary encoding
Binary encoding dapat memberikan banyak kemungkinan pada kromosom meskipun pada jumlah Gen yang sedikit. Dilain pihak jenis encoding ini tidak cukup natural untuk beberapa kasus tertentu dan kadang-kadang harus dilakukan koreksi setelah melakukan crossover atau mutasi, contoh penggunaan Binary encoding adalah pada permasalahan knapsack atau pengepakan, dimana ada beberapa barang dengna jumlah dan ukuran masing-masing dan knapsack harus memberikan kapasitasnya untuk barang-barang tersebut, permasalahanya adalah bagaimana memilih barang untuk memaksimalkan jumlah barang sehingga dapat ditampung oleh knapsacktanpa harus menambah kapasitasnya.
Crossover
Crossover adalah operator algoritma genetika yang membutuhkan parameter dua kromosom. Dua buah kromosom tersebut disebut kromosom induk. Operator ini akan menghasilkan dua buah kromosom baru. Ada beberapa jenis crossover yang sering digunakan dalam algoritma genetika antara lain:
Ordered Based Crossover
Ordered based Crossover diawali dengan menentukan posisi-posisi gen secara random pada induk pertama misalnya didapatkan posisi 3,4,6 dan 9 pada induk.
P1= ( 1 2 3 4 5 6 7 8 9 )
P1= ( 4 5 2 1 8 7 6 9 3 )
Kemudian Gen-gen pada induk yang berada tepat dibawah posisi-posisi tersebut dicatat yaitu 2,1,7 dan 3 untuk Q1 disalin dari P1 dengan menghilangkan angka-angka 2,1,7 dan3 tersebut sehingga menjadi
Q1= ( x x x 4 5 6 x 8 9 )
Subset 2,1,7, dan 3 ini di masukan dalam Q1 dimulai dari kiri dengan mempertahankan urutan sehingga menjadi
Q1 = (2 1 7 4 5 6 3 8 9)
Untuk Q2 diperlukan sama hanya perlu meukar induk pertama menjadi induk kedua dan induk kedua menjadi induk pertama yang menjadi:
Q2 = (3 5 2 1 8 7 4 6 9)
One-Point Crossover
Contoh kerja operator ini adalah dengan menentukan crossover point (gen tertentu). Kromosom baru pertama berisi gen pertama sampai gen crossover point dari kromosom induk pertama ditambah dengan gen dari crossover point sampai gen terakhir dari kromosom induk kedua. Kromosom baru kedua berisi gen pertama sampai gen crossover point dari induk kedua ditambahkan dengan gen dari crossover point sampai gen dari kromosom induk pertama. Adapun metode crossover ini dapat diilustrasikan pada gambar berikut:
Gambar 5. Proses crossover dengan satu crossover point
Dari ilustrasi di atas maka contoh penerapan metode One-Point Crossover adalah sebagai berikut:
Parent 1: 1 2 3 4 5 | 6 7 8 9
Parent 2: 4 5 3 6 8 | 9 7 2 1
Setelah proses crossover turunan yang dapat dihasilkan adalah dari kedua parent diatas adalah:
Parent 1: 1 2 3 4 5 | 9 7 2 1
Parent 2: 4 5 3 6 8 | 6 7 8 9
Two-Point Crossover
Proses Two-Point Crossover hampir sama dengan prosedur One-Point Crossover, kecuali pada Two-Point Crossover harus dipilih dua crossover point dan hanya gen yang ada di antara kedua crossover point itu yang akan ditukarkan.
Metode ini dapat menjadi bagian awal dan akhir dari kromosom dan hanya menukar bagian tengahnya saja.
N-Point Crossover
Prosedur N-Point Crossover hampir sama baik dengan prosedur one-point crossover maupun two-point crossover, hanya saja dalam n-point crossover ini harus dipilih n crossover point dan hanya gen di antara crossover point ganjil dan genap yang dapat ditukarkan sedangkan gen diantara genap dan ganjil operator crossover tidak berubah. Atau dengan kata lain harus dipilih posisi n dan hanya bit antara ganjil dan genap posisi crossover yang akan dihilangkan.
Contoh: P1= 9 7 6 3 2 8
P2= 2 1 9 7 4 5
Jika didapatkan angka random untuk n=3 dan diacak 1,2 dan 4 sebagai posisi dari gen yang akan di crossover, didapatkan kromosom turunan:
T1= 9 1 6 3 4 5
T2= 2 7 9 7 2 8
Mutasi
Mutasi adalah operator yang membutuhkan satu perameter. Kromosom operator ini merupakan nilai suatu gen dari sebuah kromosom sehingga kromosom yang baru ini berbeda dengan kromosom yang lama. Sekumpulan kejadian dengan suatu nilai pelanggaran maksimal dapat dengan mudah dihilangkan selama evaluasi fitness “tujuan dari proses mutasi ini, untuk mempertahankan kehilangan permanent dari suatu bit atau gen” (Whitley,1993:16). Seluruh proses mutasi ini menjanjikan keuntungan melalui pengarahan mutasi kemana mutasi ini tersebut sangat dibutuhkan. Oprator mutasi digunakan untuk melakukan modifikasi satu atau lebih dari nilai gen dalam individu yang sama. Mutasi memastikan bahwa probabilitas untuk pencarian pada daerah tertentu dalam persoalan tidak akan pernah nol dan mencegah kehilangan total materi genetika setelah pemilihan dan penghapusan. Mutasi ini bukanlah operator genetika yang utama, yang dilakukan secara acak pada gen dengan kemungkinan yang lebih kecil. Metode ini disebut metasi gen (gene mutation) terdapat metode lain yaitu: “order mutation” dimana dimungkinkan untuk menghilangkan seluruh gen dari dua gen yang dipilih secara acak. Terdapat empat operator yang biasa digunakan untuk permasalahan penjadwalan antara lain:
Violation Directed Mutation (VDM)
Memilih sutatu kejadian dengan suatu nilai pelanggaran maksimal, dan secara acak mengubah waktu penugasan.
Event Freeing Mutation (EFM)
Memilih suatu kejadian dengan sauatu pelanggaran maksimal, kemudian memberi waktu baru yang mana akan mengurangi secara maksimal angka ini.
Secara stokastik memilih suatu kejadian ,bias melalui kejadian itu dengan nilai pelanggaran yang tinggi, kemudian secara stokastik memilh waktu baru untuk kejadian ini, bisa melalui waktu yang mana akan mengurangi secara maksimal angka pelanggaran kejadian.
Fungsi Objektif
Fungsi objektif adalah tujuan dari optimasi permasalahan. Biasanya fungsi objektif ini hanya dua macam yaitu memaksimalkan dan meminimalkan
Model Pengembangan Algoritma Genetika
Algoritma genetika menyelesaikan permasalahan dengan cara menghasilkan, mengubah dan mengevaluasi kandidat solusi dari permasalahan tersebut. Awalnya sebuah populasi acak yang terdiri dari kromosom-kromosom di hasilkan kemudian kromosom-kromosom itu diubah oleh operator genetika yaitu crossover dan mutasi, kemudian kromosom-kromosom tersebut dievaluasi oleh fungsi fitness.
Terdapat beberapa cara dalam menentukan inisialisasi diantaranya biner dan non biner. Untuk inisialisasi masalah penjadwalan yang paling sederhana dapat dilihat sebagai masalah penetapan V even atau kejadian dalam S selang waktu dengan kata lain definisi dari masalah penjadwalan adalah:
E adalah definisi dari sejumlah V even (e1.e2,….en)
T adalah definisi dari sejumlah S selang waktu (t1,t2,…tn)
Berdasarkan definisi tersebut maka permasalahan penjadwalan tersebut ditetapkan sebagai pasangan terurut (a,b) yang berarti a Ð„ E dan b Ð„ T, dengan intepretasi bahwa even a terjadi pada selang waktu b.
Terdapat berbagai versi pengkodean masalah penjadwalan diantaranya adalah representasi klasik dan representasi Tuples. Dalam representasi kalsik digunakan matrik dua dimensi. Bagian kolom merupakan bagian produksi dan bagian baris merupakan interval waktu. Isi dari matrik M(i,j) adalah staf atau karyawan yang mengerjakan WOdan jumlah shiftnya. Jadi matrik M(i,j) dibaca sebagai karyawan dengan shift m mengerjakan WOpada bagian produksi.
Metode penentuan lokasi awal sangat berpengaruh terhadap kinerja algoritma genetika. Ada dua cara yang bisa digunakan untuk menghasilkan dua populasi awal. Cara yang pertama dengan menghasilkan seluruh kromosom secara acak. Sedangkan cara yang kedua sebagain kromosom dihasilkan dengan metode tertentu, yang dikenal dengan populasi awal terarah. Salah satu metode untuk membangkitkan populasi awal adalah metode Joshepus permutation.
Berikut adalah algoritma joshepus permutation:
Step 1 = [ Nilai awal ]
For i=1 to N Step1
Plist[i]  0
End for
N Loop  random (N) + 1
F gen  random (N) + 1
K=1
Step 2 = [ Isi nilai gen ]
Kromosom [k]  F gen
Plist [F gen]  1
Step 3 = [ Cek kondisi ]
If ( K= n ) then go to Step 7
End if
Step 4 = [ Cari nilai gen selanjutnya ]
For i=1 to N Loop Step1
Repeat
F gen  F gen + 1
If (F gen > N) then
F gen  1
Until Plist [F gen] <> 1
End if
End for
Step 5 = [ Naikan ounter k ]
K =K+1
Step 6 = [ Ulangi Step2 sampai Step 5 ]
Go to Step 2
Step 7 = [ Ulangi untuk kromosom selanjutnya ]
If Belum_semua_krm_telah_diinisialisasi then
Kromosom  parameter_ke_krm_berikutnya_dalam_populasi
Go to Step 2
End if
Step 8 = [ Selesai ]
Return
N adalah jumlah allele dalam seluruh kromosom, Plist adalah sebuah array dengan jumlah element sebanyak N, random (x) adalah fungsi generator bilangan random antara 0 sampai x-1. element array dimulai dari 1. kromosom adalah element dari array populasi yang menampung urutan allele.
Fungsi Evaluasi atau Fungsi Fitness
Fungsi adalah salah satu aspek terpenting dalam algoritma genetika. Fungsi evaluasi yang baik harus mampu menghasilkan suatu kurva silo. Siklus yang cukup baik dan dapat mewakili permasalahan yang dihadapi.
Pengumpulan dini dalam algoritma genetika terjadi ketika beberapa kromosom dengan nilai fitness yang tinggi (tapi bukan optimal) memdominasi populasi dengan mengakibatkan algoritma genetika konvergen pada local optima. Ketika populasi konvergen kemampuan algoritma genetika untuk mencari solusi manjadi lebih baik. Crossover antara kromosom yang hampir identik menghasilkan kromosom baru yang identik dalam operasi ini hanya operasi mutasi yang mampu menghasilkan kromosom yang relatif baru dan merupakan cara untuk menghidarkan kromosom yang super mendominasi populasi.

Algoritma Genetik

Algoritma Genetik

Definisi

Algoritma genetika adalah algoritma komputasi yang diinspirasi teori evolusi yang kemudian diadopsi menjadi algoritma komputasi untuk mencari solusi suatu permasalahan dengan cara yang lebih “alamiah”, algoritma genetik juga merupakan algoritma pencarian secara heuristik. Salah satu fungsinya ialah untuk mencari solusi atas permasalahan optimasi kombinasi, yaitu mendapatkan suatu nilai solusi optimal terhadap suatu permasalahan yang mempunyai banyak kemungkinan solusi. Teori dasar dari Algoritma Genetika dikembangkan oleh John Holland awal tahun 1975 di Universitas Michigan, Amerika Serikat. Dimana prinsip algoritma genetik diambil dari teori Darwin yaitu setiap makhluk hidup akan menurunkan satu atau beberapa karakter ke anak atau keturunannya. Penyelesaian menggunakan algoritma genetik sangat berpengaruh dari kromosom yang dibangun, dimana kromosom ialah sebuah molekul yang berisi DNA dimana terdapat informasi genetik dalam setiap sel gen yang disimpan.

Komponen Algoritma Genetik

Algoritma genetik terdiri dari delapan komponen, yang bertugas untuk menunjang dari optimasi tersebut, adapun komponen tersebut ialah, skema pengkodean, nilai fitness, seleksi orang tua, pindah silang, mutasi, elitisme, penggantian populasi dan kriteria penghentian.

Skema Pengkodean

Untuk dapat diproses menggunakan algortima genetik, suatu permasalahan harus dikonversi dahulu kedalam bentuk individu yang diwakili oleh satu atau lebih kromosom dengan kode tertentu. Hal ini berbeda dengan teori genetika di dunia nyata.  Algoritma genetik merepresentasikan gen secara umum, sebagai bilangan real, desimal atau biner yaitu:
  1. Real number enconding. Pada skema ini, niai gen berada dalam interval [0,R] dimana R ialah bilangan real positif dan biasanya R = 1.
  2. Discrete decimal enconding. Pada skema ini setiap gen bisa berupa deretan bilangan bulat dalam interval [0.9].
  3. Binary enconding. Setiap gen bisa berupa deretan nilai 0 atau 1.

Nilai Fittnes

Nilai fitness dalam sebuah algoritma genetik menggambarkan tingkat kovergensi keoptimalan algoritma dimana yang diharapkan adalah nilai fitness yang optimal dalam hal ini angka tertinggi ialah nilai terbaik. Dalam evolusi dunia nyata, individu bernilai fitness tinggi akan bertahan hidup, sedangkan yang memiliki nilai fitness rendah akan gugur atau mati. Pada algoritma genetik, fitness biasanya dapat berupa fungsi objektif dari masalah yang akan dioptimalisasi. Kromosom-kromosom diseleksi menurut nilai fitnessmasing-masing Kromosom yang kuat mempunyai kemungkinan tinggi untuk bertahan hidup pada generasi berikutnya.

Seleksi Orang Tua

Seleksi merupakan proses pemilihan kromosom dari generasi lama untuk dijadikan orangtua yang akan saling kawin silang untuk membentuk kromosom baru digenerasi baru, dalam hal ini kita menggunakan seleksi roda roulette (roulette wheel selection). Dalam hal ini pemilihan dua buah kromosom sebagai orang tua (parent) dilakukan secara proposional sesuai dengan nilai fitnessnya. Dimana kromosom yang memiliki nilai fitness tertinggi akan menempati potongan yang lebih besar pada lingkaran daripada kromosom dengan nilai fitness yang lebih rendah. Contoh metode roulette-wheel dapat diilustrasikan sebagai berikut.
StringNilai Fitness
S110
S25
S37
S45
S59
Jumlah
36
Pada contoh diatas, nilai dari S1 memiliki nilai fitnes yang paling besar, dengan demikian peluang dari S1 untuk terpilih menjadi orang tua sebesar 0.277 sedangkan untuk nilai S2 dan S3 memiliki peluang yang sama sebesar 0.138

Pindah Silang

Menurut George F.Luger dan William A. Stubblefield dalam buku Artificial Intelegence Structures and Strategies For Complex Promblem Solving. Kekuatan dari algoritma genetik ialah pada kemampuan pencarian mereka dalam pindah silang, dimana algoritma genetik menerapkan mempertahankan beberapa solusi terbaik, dan menghilangkan solusi yang tidak bagus. Komponen pindah silang digunakan untuk membentuk keturunan baru berdasarkan orangtua yang terpilih. Komponen ini sangat dominan dalam algoritma genetik dibandingkan dengan komponen mutasi. Dan jumlah kromosom yang digunakan sebanyak dua buah kromosom.
Pindah silang dilakukan dengan harapan kromosom-kromosom baru akan mempunyai bagian baik dari kromosom-kromosom lama dan tidak menutup kemungkinan menjadi kromosom-kromosom yang lebih baik
Skema dari pindah silang ini ialah, dengan mendapatkan dua buah individu orang tua, selanjutnya ditentukan titik pindah silang secara acak. Jika diasumsikan L adalah panjang kromosom, maka titik pindah silang berada diantara 1 hingga L-1, kemudian beberapa bagian dari dua kromosom ditukar pada titik pindah silang yang terpilih. Titik pindah silang ialah titik terjadinya pertukaran gen antar dua individu orang tua.
Pindah silang satu titik
Orang Tua 1
1100110

Orang Tua 2
0011001

Anak
1100001

Pindah silang banyak titik
Orang Tua 1
1100110 

Orang Tua 2
0011001

Anak
1111000

Mutasi

Mutasi diperlukan untuk mengembalikan informasi bit yang hilang akibat pindah silang. Mutasi diterapkan dengan probabilitas yang sangat kecil. Jika mutasi dilakukan terlalu sering, maka akan menghasilkan individu yang lemah karena konfigurasi gen pada individu yang unggul akan dirusak. Berdasarkan bagian yang termutasi, proses mutasi dapat dibedakan atas tiga bagian.
  • Mutasi pada tingkat kromosom, semua gen dalam kromosom berubah.
  • Mutasi pada tingkat gen, semua bit dalam satu gen akan berubah, contoh gen nomor 2 mengalami mutasi.
  • Mutasi pada tingkat hanya satu bit yang berubah.

Eliteisme

Karena seleksi dilakukan secara acak, maka tidak ada jaminan bahwa suatu individu bernilai fitnestertinggi akan selalu terpilih. Kalaupun individu bernilai fitnes tertinggi terpilih, mungkin saja akan menjadi rusak karena proses pindah silang. Untuk menjaga agar individu bernilai fitnes tertinggi tersebut tidak hilang selama evolusi, perlu dibuat satu atau dua kopinya. Prosedur ini dikenal sebagai elitisme. Prosedur ini hanya digunakan pada algoritma genetic berjenis generational replacement.

Penggantian Populasi

Pada algoritma genetik berjenis generational replacement, N individu pada suatu generasi digantikan sekaligus oleh N individu baru hasil pindah silang dan mutasi. Untuk mempertahankan individu terbaik, diperlukan skema elitisme.
Adapun prosedur penggantian populasi pada algoritma genetik ialah:
  1. Mengganti individu yang memiliki nilai fitnes terkecil.
  2. Mengganti individu yang paling tua.
  3. Membandingkan anak dengan kedua orang tua, apabila anak memiliki nilai menggantikan orang tua yang memiliki nilai fitnes terendah.

Kriteria Penghentian

Terdapat beberapa syarat penghentian yang digunakan pada proses perulangan.
  1. Memberikan batasan jumlah iterasi, apabila batas iterasi tersebut tercapai dan nilai fitnes tertingi sebagai solusi.
  2. Memberikan batasan waktu proses algoritma genetic
  3. Menghitung kegagalan penggantian anggota populasi yang terjadi secara berurutan sampai jumlah tertentu.