Algoritma genetika adalah teknik pencarian di dalam ilmu
komputer untuk menemukan penyelesaian perkiraan untuk optimisasi dan masalah
pencarian. Algoritma genetika adalah kelas khusus dari algoritma evolusioner
dengan menggunakan teknik yang terinspirasi oleh biologi evolusioner seperti
warisan, mutasi, seleksi alam dan rekombinasi (atau crossover). Algoritma
genetika dapat menggunakan representasi graph, biner, integer, permutasi, dan
real dalam pengkodeannya. Sedangkan pemrogaman genetika merupakan salah satu
dari komputasi evolusioner yang sering dipakai untuk machine learning (seperti
prediksi, klasifikasi, dan sebagainya) yang menggunakan representasi tree atau
graph dalam proses pengkodean. Pemrograman genetika bisa menggunakan proses
rekombinasi dan mutasi dengan probabilitas tertentu, tapi tidak dapat keduanya. Rekombinasi dilakukan dengan cara saling menukar ranting
(sub tree),
sedangkan mutasi dilakukan dengan mungubah pohon secara
acak.
Pemrograman genetika digunakan untuk autamtic
programming.
Algoritma genetika dan pemrograman
genetika diterapkan sebagai simulasi komputer dimana sebuah populasi
representasi abstrak (disebut kromosom) dari solusi-solusi calon (disebut
individual) pada sebuah masalah optimisasi akan berkembang menjadi
solusi-solusi yang lebih baik. Panjang kromosom dalam satu populasi pada
algoritma genetika memiliki ukuran yang sama panjang, sedangkan pada
pemrograman genetika, kromosom-kromosom bisa
memiliki panjang yang berbeda-beda dalam satu populasi. Ukuran populasi
pada algoritma genetika bisa bervariasi, sedangkan pada pemrograman genetika
ukuran populasi relative besar (ribuan individu).
Kromosom pada pemrograman genetika bisa memiliki ukuran yang berbeda-beda, sehingga pada generasi pertama
bisa dilakukan proses inisialisasi dengan membatasi kedalaman
pohon. Sedangkan
pada algoritma genetika, proses pembangkitan populasi awal biasanya dilakukan
dengan menggunakan pembangkitan acak.
Evolusi pada algoritma genetika dimulai dari sebuah populasi
individual acak yang lengkap dan terjadi dalam generasi-generasi. Dalam tiap
generasi, kemampuan keseluruhan populasi dievaluasi, kemudian multiple
individuals dipilih dari populasi sekarang (current) tersebut secara stochastic
(berdasarkan kemampuan mereka), lalu dimodifikasi (melalui mutasi atau
rekombinasi) menjadi bentuk populasi baru yang menjadi populasi sekarang
(current) pada iterasi berikutnya dari algoritma. Sedangkan pada pemrograman
genetika populasi awal dikenakan seleksi orang tua yang biasanya dilakukan
secara proporsional terhadap nilai fitness.
Agar lebih efisien, seleksi ortu dilakukan dengan cara:
- Buat perankingan berdasarkan fitness dan bagi individu ke dalam dua grup
- Grup 1 berisi x% individu terbaik dan Grup 2 berisi (100-x)% individu yang lain.
- Lakukan 80% seleksi ortu pada Grup 1 dan 20% pada Grup 2.
- Untuk ukuran populasi = 1000, 2000, 4000, dan 8000 gunakan secara berturut-turut x = 32%, 16%, 8% dan 4%.
Setelah seleksi
orang tua, populasi akan dikenakan proses rekombinasi atau mutasi (pilih salah
satu). Kemudian seleksi survivor untuk generasi berikutnya. Umumnya,
pemrograman genetika menggunakan model populasi generational
scheme sehingga tidak ada seleksi survivor.
Algoritma
genetika tidak terfokus pada salah satu bahasa pemrograman karena bersifat
general programming, sedangkan pemrograman genetika lebih terfokus pada bahasa
LISP. Dalam pemrosesannya, pemrograman genetika lebih lambat dibandingkan
dengan algoritma genetika.
saya mau tanya..
BalasHapussaya mau membuat optimasi penggunaan sebuah meja, sehingga sisa space dalam meja minimum..
jika terdapat 10 part yang akan saya tempatkan di meja..
apakah bisa tiap meja memiliki jumlh part yang berbeda, misal meja 1 terdiri dari 4 part dan meja2 6 part
Bak optimasi untuk clustering dengan GA gemana?
BalasHapusSumbernya darimana perkataan diatas? mau cari buat sitasi
BalasHapus