Pengoptimuman
Takrifkan algoritma genetik
Apabila membincangkan bagaimana cBot boleh dioptimumkan, kami telah menyebut bahawa cBot boleh diperhalusi menggunakan kaedah algoritma genetik. Dalam panduan ini, kami menerangkan dengan tepat apa ia dan bagaimana ia berfungsi.
Kaedah algoritma genetik adalah berdasarkan teori pemilihan semula jadi. Teori ini menyatakan bahawa hanya individu yang paling sesuai yang bertahan untuk pembiakan seterusnya.
Dalam pengoptimuman cBot, setiap lulus pengoptimuman dianggap sebagai individu. Untuk menilai lulus individu, algoritma genetik mengira skor kesesuaian tertentu untuk setiap lulus dan membandingkan skor ini dengan semua lulus lain.
Untuk ia berfungsi, algoritma genetik memerlukan populasi awal. Untuk menjana ia, pengoptimum akan menjalankan beberapa lulus berbeza dengan parameter rawak. Selepas mencipta populasi awalnya, algoritma akan memulakan proses mencari lulus pengoptimuman yang paling sesuai. Proses ini berterusan sehingga skor kesesuaian lulus anak mula merosot dan menumpu. Pada titik ini, algoritma dihentikan.
Peringkat algoritma genetik
Mana-mana algoritma genetik mempunyai peringkat berikut.
graph TB
B([Pemilihan]) ==> C([Persilangan]);
C ==> D([Mutasi]);
D ==> B; Peringkat-peringkat tersebut dijelaskan seperti berikut.
Pemilihan
Semasa peringkat ini, algoritma mencari dua lulus pengoptimuman yang paling sesuai menggunakan skor kesesuaian masing-masing.
Penyilangan
Selepas mencari dua lulus pengoptimuman yang paling sesuai, algoritma menggunakannya untuk mencipta lulus anak (atau keturunan) baharu dengan menggunakan kombinasi nilai parameter kedua-dua lulus induk.
Contoh
Jika cBot anda mempunyai empat parameter berbeza untuk pengoptimuman, algoritma akan mendapatkan nilai parameter pertama dan kedua lulus keturunan daripada satu induk dan parameter ketiga dan keempat daripada induk kedua.
Mutasi
Pada peringkat ini, algoritma memutasikan lulus keturunan dengan mengubah suai secara rawak satu atau lebih nilai parameter.
Selepas peringkat mutasi, pengoptimum akan menjalankan lulus pengoptimuman keturunan baharu. Seterusnya, ia akan mengulangi semua peringkat tetapi hanya jika skor kesesuaian lulus keturunan lebih tinggi daripada lulus pengoptimuman yang paling sesuai terakhir. Hasil sedemikian akan bermakna terdapat ruang untuk penambahbaikan, menunjukkan bahawa pengoptimuman harus diteruskan.
Jika tidak, algoritma akan meningkatkan pembilang kemerosotan. Jika pembilang kemerosotan mencapai nilai parameter tempoh kemerosotan algoritma, proses pengoptimuman akan dihentikan secara automatik.
Parameter algoritma genetik
Algoritma genetik mempunyai beberapa parameter yang digunakan semasa jangka hayatnya. Parameter ini tidak boleh diubah.
| Parameter | Definisi |
|---|---|
| Saiz populasi | Saiz maksimum populasi atau bilangan maksimum lulus yang dibuat semasa setiap lelaran pengoptimuman. |
| Kiraan lelaran maksimum | Bilangan maksimum lelaran pengoptimuman yang dilakukan oleh algoritma. |
| Tempoh kemerosotan | Nilai maksimum pembilang kemerosotan. Jika nilai ini dicapai, algoritma dihentikan. |
| Peratusan elit | Nilai ini digunakan untuk memilih X% individu dengan skor kesesuaian tertinggi daripada lelaran algoritma semasa. Lulus ini akan bertahan ke lelaran seterusnya. |
| Peratusan saiz turnamen | Nilai ini digunakan untuk memilih X% individu daripada lelaran untuk mencari lulus induk. |
| Peratusan migran | Nilai ini digunakan untuk menambah X% lulus yang dicipta secara rawak semasa setiap lelaran baharu atau penjanaan populasi. |
| Peratusan mutasi | Peratusan parameter lulus keturunan yang akan dimutasikan. |
| Peratusan kebarangkalian mutasi | Peratusan lulus keturunan yang akan dimutasikan. Lulus yang tidak termasuk dalam peratusan ini tidak akan melalui peringkat mutasi. |