PENCARIAN HEURISTIK
Pengenalan
Heuristik adalah sebuah teknik yangmengembangkan efisiensi dalam
proses pencarian, namum dengan kemungkinan mengorbankan kelengkapan
(completeness). Fungsi heuristik digunakan untuk mengevaluasi keadaan-keadaan
problema individual dan menentukan seberapa jauh hal tersebut dapat digunakan
untuk mendapatkan solusi yang diinginkan.
Jenis-jenis Heuristic Searching:
Generate and Test
Metode ini merupakan penggabungan
antara depth-first search dengan pelacakan mundur (backtracking), yaitu
bergerak ke belakang menuju pada suatu keadaan awal.
Algoritma :
1. Bangkitkan suatu kemungkinan
solusi (membangkitkan suatu tititk tertentu atau lintasan tertentu dari keadaan
awal).
2. Uji untuk melihat apakah node
tersebut benar-benar merupakan solusinya dengan cara membandingkan node terebut
atau node akhir dari suatu lintasan yang dipilih dengan kumpulan tujuan
yang diharapkan.
3. Jika solusi ditemukan, keluar.
Jika tidak, ulangi kembali langkah pertama.
HillClimbing
·
Metode ini hampir sama dengan metode pembangkitan dan pengujian,
hanya saja proses pengujian dilakukan dengan menggunakan fungsi heuristic.
Pembangkitan keadaan berikutnya tergantung pada feedback dari prosedur
pengetesan. Tes yang berupa fungsi heuristic ini akan menunjukkan seberapa
baiknya nilai terkaan yang diambil terhadap keadaan-keadaan lainnyayang
mungkin.
Algoritma:
1. Cari operator yang belum pernah
digunakan; gunakan operator ini untuk mendapatkan keadaan yang baru.
a) Kerjakan langkah-langkah berikut
sampai solusinya ditemukan atau sampai tidak ada operator baru yang akan
diaplikasikan pada keadaan sekarang : Cari operator yang belum digunakan;
gunakan operator ini untuk mendapatkan keadaan yang baru.
b) Evaluasi keadaan baru tersebut : –
Jika keadaan baru merupakan tujuan, keluar – Jika bukan tujuan, namun nilainya
lebih baik daripada keadaan sekarang, maka jadikan keadaan baru tersebut
menjadi keadaan sekarang. – Jika keadaan baru tidak lebih baik daripada keadaan
sekarang, maka lanjutkan iterasi.
Best First Search
·
Metode ini merupakan kombinasi dari metode depthfirst search dan
breadth-first search. Pada metode best-first search, pencarian diperbolehkan
mengunjungi node yang ada di level yang lebih rendah, jika ternyata node pada
level yang lebih tinggi ternyata memiliki nilai heuristic yang lebih buruk.
·
Fungsi Heuristik yang digunakan merupakan prakiraan (estimasi)
cost dari initial state ke goal state, yang dinyatakan dengan :
f’(n) = g(n) + h’(n)
-
f’ = Fungsi evaluasi
-
g = cost dari initial state ke current state
-
h’ = prakiraan cost dari current state ke goal state
Alpha
Beta Prunning,Means-End-Anlysis,Constraint Satisfaction, Simulated
Anealing, dll
SMA * Search (Simplified Memory-Bounded) A*
Simplified
Memory-Bounded A* atau biasa disebut SMA* merupakan algoritma pencarian yang
dapat menggunakan semua memori yang tersedia untuk melakukan pencarian.
Menggunakan lebih banyak memori hanya dapat meningkatkan efisiensi pencarian,
salah satunya bisa selalu mengabaikan ruang tambahan, tetapi biasanya lebih baik
untuk mengingat node daripada harus membuatnya kembali bila diperlukan.
SMA*
memiliki gambaran berikut :
·
Dia akan memanfaatkan memori apa pun yang tersedia untuk nya.
·
Dia menghindari pernyataan berulang sejauh memori memungkinkan.
·
Dia selesai jika memori yang tersedia cukup untuk menyimpan
jalur solusi dangkal.
·
Dia optimal jika tersedia cukup memori untuk menyimpan jalur
solusi dangkal optimal. Jika tidak, dia mengembalikan solusi terbaik yang dapat
dicapai, dengan memori yang tersedia.
Algoritma
SMA* ini merupakan sebuah algoritma yang dikembangkan dari algoritma A* (A
Star). Algoritma A* sendiri adalah variasi dari algoritma Branch and Bound.
Jadi secara tidak langsung, algoritma SMA* itu sendiri merupakan salah satu
variasi pengembangan dari algoritma Branch and Bound. Menggunakan algoritma
SMA* berarti kita memperhitungkan biaya sebenarnya ditambah dengan biaya
perkiraan. Biaya sebenarnya dinotasikan dengan g(n). Sedangkan biaya perkiraan
dinotasikan dengan h(n). Jadi kita memperhitungkan g(n) + h(n).
Algoritma A*
Algoritma
A* adalah algoritma pencarian yang merupakan pengembangan dari kelas algoritma
Greedy. Seperti halnya pada Greedy, untuk menemukan solusi, A* juga dilakukan
oleh fungsi heuristik, yang menentukan urutan titik mana yang akan dikunjungi
terlebih dahulu. Heuristik merupakan penilai yang memberi harga pada tiap
verteks yang memandu A* mendapatkan solusi yang diinginkan. Algoritma A*
menyelesaikan masalah yang menggunakan graph
untuk
perluasan ruang statusnya.
Dengan
kata lain digunakan untuk menyelesaikan permasalah yang bisa direpresentasikan
dengan graph. Algoritma A* adalah sebuah algoritma yang telah
dikembangkan. Dengan menerapkan fungsi heuristik, algoritma ini membuang
langkah-langkah yang tidak perlu dengan pertimbangan bahwa langkah-langkah yang
dibuang sudah pasti merupakan langkah yang tidak akan mencapai solusi yang
diinginkan. Secara informal, algoritma bekerja dalam banyak cara yang sama
seperti pada algoritma Dijkstra. Daripada selalu mempertimbangkan verteks
terbuka dengan nilai terendah, lebih baik memilih verteks yang paling mungkin
untuk mengarahkan pencarian ke arah tujuan dengan nilai terkecil.
Semuanya dikendalikan oleh sebuah fungsi heuristik. Jika fungsi tersebut
akurat, maka algoritma akan efisien dan rute terpendek akan segera ditemukan
jika memang ada.
Fungsi Heuristik
Heuristic digunakan untuk mengevaluasi
keadaan-keadaan problema individual dan menentukan seberapa jauh hal tersebut
dapat digunakan untuk mendapatkan solusi yang diinginkan.
Simulated annealing
Simulated
annealing (SA) adalah salah satu algoritma untuk untuk optimisasi yang bersifat
generik. Berbasiskan probabilitas dan mekanika statistik, algoritma ini dapat
digunakan untuk mencari pendekatan terhadap solusi optimum global dari suatu
permasalahan. Masalah yang membutuhkan pendekatan SA adalah masalah-masalah
optimisasi kombinatorial, di mana ruang pencarian solusi yang ada terlalu
besar, sehingga hampir tidak mungkin ditemukan solusi eksak terhadap
permasalahan itu. Publikasi tentang pendekatan ini pertama kali dilakukan oleh
S. Kirkpatrick, C. D. Gelatt dan M. P. Vecchi, diaplikasikan pada desain
optimal hardware komputer, dan juga pada salah satu masalah klasik ilmu
komputer yaitu Traveling Salesman Problem.
Annealing
adalah satu teknik yang dikenal dalam bidang metalurgi, digunakan dalam
mempelajari proses pembentukan kristal dalam suatu materi. Agar dapat terbentuk
susunan kristal yang sempurna, diperlukan pemanasan sampai suatu tingkat
tertentu, kemudian dilanjutkan dengan pendinginan yang perlahan-lahan dan
terkendali dari materi tersebut. Pemanasan materi di awal proses annealing,
memberikan kesempatan pada atom-atom dalam materi itu untuk bergerak secara
bebas, mengingat tingkat energi dalam kondisi panas ini cukup tinggi. Proses pendinginan
yang perlahan-lahan memungkinkan atom-atom yang tadinya bergerak bebas itu,
pada akhirnya menemukan tempat yang optimum, di mana energi internal yang
dibutuhkan atom itu untuk mempertahankan posisinya adalah minimum.
Simulated
Annealing berjalan berdasarkan analogi dengan proses annealing yang telah
dijelaskan di atas. Pada awal proses SA, dipilih suatu solusi awal, yang
merepresentasikan kondisi materi sebelum proses dimulai. Gerakan bebas dari
atom-atom pada materi, direpresentasikan dalam bentuk modifikasi terhadap
solusi awal/solusi sementara. Pada awal proses SA, saat parameter suhu (T)
diatur tinggi, solusi sementara yang sudah ada diperbolehkan untuk mengalami
modifikasi secara bebas.
Kebebasan
ini secara relatif diukur berdasarkan nilai fungsi tertentu yang mengevaluasi
seberapa optimal solusi sementara yang telah diperoleh. Bila nilai fungsi
evaluasi hasil modifikasi ini membaik (dalam masalah optimisasi yang berusaha
mencari minimum berarti nilainya lebih kecil/downhill) solusi hasil modifikasi
ini akan digunakan sebagai solusi selanjutnya. Bila nilai fungsi evaluasi hasil
modifikasi ini memburuk, pada saat temperatur annealing masih tinggi, solusi
yang lebih buruk (uphill) ini masih mungkin diterima, sedangkan pada saat
temperatur annealing sudah relatif rendah, solusi hasil modifikasi yang lebih
buruk ini mungkin tidak dapat diterima. Dalam tahapan selanjutnya saat
temperatur sedikit demi sedikit dikurangi, maka kemungkinan untuk menerima
langkah modifikasi yang tidak memperbaiki nilai fungsi evaluasi semakin
berkurang. Sehingga kebebasan untuk memodifikasi solusi semakin menyempit,
sampai akhirnya diharapkan dapat diperoleh solusi yang mendekati solusi
optimal. Pada temperatur rendah ini, SA biasanya menggunakan konsep
Hill-Climbing.
Genetic Algorithm
Genetic
Algorithm(atau GA) adalah teknik pencarian dalam bidang komputasi untuk
menemukan solusi benar atau pendekatan untuk masalah optimasi dan pencarian.
Teknik dalam GA didasarkan pada biologi evolusioner seperti pewarisan, mutasi,
seleksi dan crossover.
GA
diimplementasikan sebagai proses simulasi yang dijabarkan sebagai berikut:
Populasi dari representasi abstrak (disebut kromosom, genotip, atau genom) dari
candidate solution (disebut individual, atau fenotip) dari optimasi yang berevolusi
ke solusi yang lebih baik. Biasanya solusi direpresentasikan ke dalam string
biner. Evolusi dimulai dari populasi dari individu yang dihasulkan secara
random dan terjadi dalam generasi. Di setiap generasi, fitness dari setiap
individu dalam populasi dievaluasi, beberapa individu dipilih secara
stokastik(berdasarkan fitness) dan dimodifikasi(crossover dan kemungkinan
mutasi) untuk membentuk populasi baru. Populasi baru lalu dimanfaatkan untuk
iterasi selanjutnya. Secara umum, algoritma selesai jika telah menghasilkan
generasi maksimum atau hasil dalam populasi dirasa memuaskan (berdasarkan
berbagai parameter).
Dalam
GA biasanya ada 2 hal yang harus didefinisikan:
1.
Representasi genetis dari domain solusi
2.
Fungsi fitness untuk mengevaluasi solusi domain.
Representasi
standar dari solusi adalah array of bits, karena memudahkan operasi crossover.
Fungsi fitness didefinisikan dari representasi genetis dan kualitas dari
representasi solusi. Setelah keduanya didefinisikan, GA berlanjut ke
inisialisasi populasi dari solusi secara acak, lalu berkembang lewat perulangan
aplikasi mutasi, crossover dan seleksi.
Inisialisasi
Awalnya,
beberapa solusi individual dihasilkan secara acak untuk membentuk populasi awal
yang ukurannya tergantung sifat dari masalah.
Seleksi
Dalam
setiap generasi baru, proporsi dari populasi yang ada dipilih untuk
menghasilkan generasi selanjutnya. Solusi individual dipilih lewat proses
fitness, dimana solusi yang lebih baik (diukur dari fungsi fitness) lebih
mungkin dipilih. Metode seleksi yang umum dipakai adalah roulette wheel dan
tournament.
Reproduksi
Langkah
selanjutnya adalah menghasilkan generasi selanjutnya dari populasi solusi dari
hasil seleksi lewat operasi genetik crossover (atau rekombinasi) dan/atau
mutasi
Terminasi
Proses
ini diulang sampai tercapai kondisi akhir. Kondisi akhir yang umum antara lain:
·
Solusi yang ditemukan memenuhi kriteria minimum
·
Jumlah generasi tertentu telah tercapai
·
Telah mencapai waktu komputasi tertentu
·
Tidak dapat dihasilkan hasil yang lebih baik
·
Inspeksi manual
·
Kombinasi dari kondisi di atas.
Pseudo-code
1.
Pilih populasi awal
2.
Evaluasi fitness dari tiap individu dalam populasi
3.
Iterasi:
·
Pilih individu terbaik untuk reproduksi
·
Hasilkan generasi baru lewat crossover dan mutasi dan menghasilkan
anak
·
Evaluasi fitness dari setiap individu anak
·
Ganti bagian populasi terburuk dengan anak
4.
Sampai kondisi akhir tercapai
PENCARIAN HEURISTIK
Pengenalan
Heuristik adalah sebuah teknik yangmengembangkan efisiensi dalam
proses pencarian, namum dengan kemungkinan mengorbankan kelengkapan
(completeness). Fungsi heuristik digunakan untuk mengevaluasi keadaan-keadaan
problema individual dan menentukan seberapa jauh hal tersebut dapat digunakan
untuk mendapatkan solusi yang diinginkan.
Jenis-jenis Heuristic Searching:
Generate and Test
Metode ini merupakan penggabungan
antara depth-first search dengan pelacakan mundur (backtracking), yaitu
bergerak ke belakang menuju pada suatu keadaan awal.
Algoritma :
1. Bangkitkan suatu kemungkinan
solusi (membangkitkan suatu tititk tertentu atau lintasan tertentu dari keadaan
awal).
2. Uji untuk melihat apakah node
tersebut benar-benar merupakan solusinya dengan cara membandingkan node terebut
atau node akhir dari suatu lintasan yang dipilih dengan kumpulan tujuan
yang diharapkan.
3. Jika solusi ditemukan, keluar.
Jika tidak, ulangi kembali langkah pertama.
HillClimbing
·
Metode ini hampir sama dengan metode pembangkitan dan pengujian,
hanya saja proses pengujian dilakukan dengan menggunakan fungsi heuristic.
Pembangkitan keadaan berikutnya tergantung pada feedback dari prosedur
pengetesan. Tes yang berupa fungsi heuristic ini akan menunjukkan seberapa
baiknya nilai terkaan yang diambil terhadap keadaan-keadaan lainnyayang
mungkin.
Algoritma:
1. Cari operator yang belum pernah
digunakan; gunakan operator ini untuk mendapatkan keadaan yang baru.
a) Kerjakan langkah-langkah berikut
sampai solusinya ditemukan atau sampai tidak ada operator baru yang akan
diaplikasikan pada keadaan sekarang : Cari operator yang belum digunakan;
gunakan operator ini untuk mendapatkan keadaan yang baru.
b) Evaluasi keadaan baru tersebut : –
Jika keadaan baru merupakan tujuan, keluar – Jika bukan tujuan, namun nilainya
lebih baik daripada keadaan sekarang, maka jadikan keadaan baru tersebut
menjadi keadaan sekarang. – Jika keadaan baru tidak lebih baik daripada keadaan
sekarang, maka lanjutkan iterasi.
Best First Search
·
Metode ini merupakan kombinasi dari metode depthfirst search dan
breadth-first search. Pada metode best-first search, pencarian diperbolehkan
mengunjungi node yang ada di level yang lebih rendah, jika ternyata node pada
level yang lebih tinggi ternyata memiliki nilai heuristic yang lebih buruk.
·
Fungsi Heuristik yang digunakan merupakan prakiraan (estimasi)
cost dari initial state ke goal state, yang dinyatakan dengan :
f’(n) = g(n) + h’(n)
-
f’ = Fungsi evaluasi
-
g = cost dari initial state ke current state
-
h’ = prakiraan cost dari current state ke goal state
Alpha
Beta Prunning,Means-End-Anlysis,Constraint Satisfaction, Simulated
Anealing, dll
SMA * Search (Simplified Memory-Bounded) A*
Simplified
Memory-Bounded A* atau biasa disebut SMA* merupakan algoritma pencarian yang
dapat menggunakan semua memori yang tersedia untuk melakukan pencarian.
Menggunakan lebih banyak memori hanya dapat meningkatkan efisiensi pencarian,
salah satunya bisa selalu mengabaikan ruang tambahan, tetapi biasanya lebih baik
untuk mengingat node daripada harus membuatnya kembali bila diperlukan.
SMA*
memiliki gambaran berikut :
·
Dia akan memanfaatkan memori apa pun yang tersedia untuk nya.
·
Dia menghindari pernyataan berulang sejauh memori memungkinkan.
·
Dia selesai jika memori yang tersedia cukup untuk menyimpan
jalur solusi dangkal.
·
Dia optimal jika tersedia cukup memori untuk menyimpan jalur
solusi dangkal optimal. Jika tidak, dia mengembalikan solusi terbaik yang dapat
dicapai, dengan memori yang tersedia.
Algoritma
SMA* ini merupakan sebuah algoritma yang dikembangkan dari algoritma A* (A
Star). Algoritma A* sendiri adalah variasi dari algoritma Branch and Bound.
Jadi secara tidak langsung, algoritma SMA* itu sendiri merupakan salah satu
variasi pengembangan dari algoritma Branch and Bound. Menggunakan algoritma
SMA* berarti kita memperhitungkan biaya sebenarnya ditambah dengan biaya
perkiraan. Biaya sebenarnya dinotasikan dengan g(n). Sedangkan biaya perkiraan
dinotasikan dengan h(n). Jadi kita memperhitungkan g(n) + h(n).
Algoritma A*
Algoritma
A* adalah algoritma pencarian yang merupakan pengembangan dari kelas algoritma
Greedy. Seperti halnya pada Greedy, untuk menemukan solusi, A* juga dilakukan
oleh fungsi heuristik, yang menentukan urutan titik mana yang akan dikunjungi
terlebih dahulu. Heuristik merupakan penilai yang memberi harga pada tiap
verteks yang memandu A* mendapatkan solusi yang diinginkan. Algoritma A*
menyelesaikan masalah yang menggunakan graph
untuk
perluasan ruang statusnya.
Dengan
kata lain digunakan untuk menyelesaikan permasalah yang bisa direpresentasikan
dengan graph. Algoritma A* adalah sebuah algoritma yang telah
dikembangkan. Dengan menerapkan fungsi heuristik, algoritma ini membuang
langkah-langkah yang tidak perlu dengan pertimbangan bahwa langkah-langkah yang
dibuang sudah pasti merupakan langkah yang tidak akan mencapai solusi yang
diinginkan. Secara informal, algoritma bekerja dalam banyak cara yang sama
seperti pada algoritma Dijkstra. Daripada selalu mempertimbangkan verteks
terbuka dengan nilai terendah, lebih baik memilih verteks yang paling mungkin
untuk mengarahkan pencarian ke arah tujuan dengan nilai terkecil.
Semuanya dikendalikan oleh sebuah fungsi heuristik. Jika fungsi tersebut
akurat, maka algoritma akan efisien dan rute terpendek akan segera ditemukan
jika memang ada.
Fungsi Heuristik
Heuristic digunakan untuk mengevaluasi
keadaan-keadaan problema individual dan menentukan seberapa jauh hal tersebut
dapat digunakan untuk mendapatkan solusi yang diinginkan.
Simulated annealing
Simulated
annealing (SA) adalah salah satu algoritma untuk untuk optimisasi yang bersifat
generik. Berbasiskan probabilitas dan mekanika statistik, algoritma ini dapat
digunakan untuk mencari pendekatan terhadap solusi optimum global dari suatu
permasalahan. Masalah yang membutuhkan pendekatan SA adalah masalah-masalah
optimisasi kombinatorial, di mana ruang pencarian solusi yang ada terlalu
besar, sehingga hampir tidak mungkin ditemukan solusi eksak terhadap
permasalahan itu. Publikasi tentang pendekatan ini pertama kali dilakukan oleh
S. Kirkpatrick, C. D. Gelatt dan M. P. Vecchi, diaplikasikan pada desain
optimal hardware komputer, dan juga pada salah satu masalah klasik ilmu
komputer yaitu Traveling Salesman Problem.
Annealing
adalah satu teknik yang dikenal dalam bidang metalurgi, digunakan dalam
mempelajari proses pembentukan kristal dalam suatu materi. Agar dapat terbentuk
susunan kristal yang sempurna, diperlukan pemanasan sampai suatu tingkat
tertentu, kemudian dilanjutkan dengan pendinginan yang perlahan-lahan dan
terkendali dari materi tersebut. Pemanasan materi di awal proses annealing,
memberikan kesempatan pada atom-atom dalam materi itu untuk bergerak secara
bebas, mengingat tingkat energi dalam kondisi panas ini cukup tinggi. Proses pendinginan
yang perlahan-lahan memungkinkan atom-atom yang tadinya bergerak bebas itu,
pada akhirnya menemukan tempat yang optimum, di mana energi internal yang
dibutuhkan atom itu untuk mempertahankan posisinya adalah minimum.
Simulated
Annealing berjalan berdasarkan analogi dengan proses annealing yang telah
dijelaskan di atas. Pada awal proses SA, dipilih suatu solusi awal, yang
merepresentasikan kondisi materi sebelum proses dimulai. Gerakan bebas dari
atom-atom pada materi, direpresentasikan dalam bentuk modifikasi terhadap
solusi awal/solusi sementara. Pada awal proses SA, saat parameter suhu (T)
diatur tinggi, solusi sementara yang sudah ada diperbolehkan untuk mengalami
modifikasi secara bebas.
Kebebasan
ini secara relatif diukur berdasarkan nilai fungsi tertentu yang mengevaluasi
seberapa optimal solusi sementara yang telah diperoleh. Bila nilai fungsi
evaluasi hasil modifikasi ini membaik (dalam masalah optimisasi yang berusaha
mencari minimum berarti nilainya lebih kecil/downhill) solusi hasil modifikasi
ini akan digunakan sebagai solusi selanjutnya. Bila nilai fungsi evaluasi hasil
modifikasi ini memburuk, pada saat temperatur annealing masih tinggi, solusi
yang lebih buruk (uphill) ini masih mungkin diterima, sedangkan pada saat
temperatur annealing sudah relatif rendah, solusi hasil modifikasi yang lebih
buruk ini mungkin tidak dapat diterima. Dalam tahapan selanjutnya saat
temperatur sedikit demi sedikit dikurangi, maka kemungkinan untuk menerima
langkah modifikasi yang tidak memperbaiki nilai fungsi evaluasi semakin
berkurang. Sehingga kebebasan untuk memodifikasi solusi semakin menyempit,
sampai akhirnya diharapkan dapat diperoleh solusi yang mendekati solusi
optimal. Pada temperatur rendah ini, SA biasanya menggunakan konsep
Hill-Climbing.
Genetic Algorithm
Genetic
Algorithm(atau GA) adalah teknik pencarian dalam bidang komputasi untuk
menemukan solusi benar atau pendekatan untuk masalah optimasi dan pencarian.
Teknik dalam GA didasarkan pada biologi evolusioner seperti pewarisan, mutasi,
seleksi dan crossover.
GA
diimplementasikan sebagai proses simulasi yang dijabarkan sebagai berikut:
Populasi dari representasi abstrak (disebut kromosom, genotip, atau genom) dari
candidate solution (disebut individual, atau fenotip) dari optimasi yang berevolusi
ke solusi yang lebih baik. Biasanya solusi direpresentasikan ke dalam string
biner. Evolusi dimulai dari populasi dari individu yang dihasulkan secara
random dan terjadi dalam generasi. Di setiap generasi, fitness dari setiap
individu dalam populasi dievaluasi, beberapa individu dipilih secara
stokastik(berdasarkan fitness) dan dimodifikasi(crossover dan kemungkinan
mutasi) untuk membentuk populasi baru. Populasi baru lalu dimanfaatkan untuk
iterasi selanjutnya. Secara umum, algoritma selesai jika telah menghasilkan
generasi maksimum atau hasil dalam populasi dirasa memuaskan (berdasarkan
berbagai parameter).
Dalam
GA biasanya ada 2 hal yang harus didefinisikan:
1.
Representasi genetis dari domain solusi
2.
Fungsi fitness untuk mengevaluasi solusi domain.
Representasi
standar dari solusi adalah array of bits, karena memudahkan operasi crossover.
Fungsi fitness didefinisikan dari representasi genetis dan kualitas dari
representasi solusi. Setelah keduanya didefinisikan, GA berlanjut ke
inisialisasi populasi dari solusi secara acak, lalu berkembang lewat perulangan
aplikasi mutasi, crossover dan seleksi.
Inisialisasi
Awalnya,
beberapa solusi individual dihasilkan secara acak untuk membentuk populasi awal
yang ukurannya tergantung sifat dari masalah.
Seleksi
Dalam
setiap generasi baru, proporsi dari populasi yang ada dipilih untuk
menghasilkan generasi selanjutnya. Solusi individual dipilih lewat proses
fitness, dimana solusi yang lebih baik (diukur dari fungsi fitness) lebih
mungkin dipilih. Metode seleksi yang umum dipakai adalah roulette wheel dan
tournament.
Reproduksi
Langkah
selanjutnya adalah menghasilkan generasi selanjutnya dari populasi solusi dari
hasil seleksi lewat operasi genetik crossover (atau rekombinasi) dan/atau
mutasi
Terminasi
Proses
ini diulang sampai tercapai kondisi akhir. Kondisi akhir yang umum antara lain:
·
Solusi yang ditemukan memenuhi kriteria minimum
·
Jumlah generasi tertentu telah tercapai
·
Telah mencapai waktu komputasi tertentu
·
Tidak dapat dihasilkan hasil yang lebih baik
·
Inspeksi manual
·
Kombinasi dari kondisi di atas.
Pseudo-code
1.
Pilih populasi awal
2.
Evaluasi fitness dari tiap individu dalam populasi
3.
Iterasi:
·
Pilih individu terbaik untuk reproduksi
·
Hasilkan generasi baru lewat crossover dan mutasi dan menghasilkan
anak
·
Evaluasi fitness dari setiap individu anak
·
Ganti bagian populasi terburuk dengan anak
4.
Sampai kondisi akhir tercapai
Tidak ada komentar:
Posting Komentar