|
|
||
|---|---|---|
| .. | ||
| Diophantine.ipynb | ||
| Genetic.ipynb | ||
| README.md | ||
README.md
Algoritma Genetik
Kuiz pra-kuliah
Algoritma Genetik (GA) berasaskan pendekatan evolusi dalam AI, di mana kaedah evolusi populasi digunakan untuk mendapatkan penyelesaian optimum bagi sesuatu masalah. Ia dicadangkan pada tahun 1975 oleh John Henry Holland.
Algoritma Genetik berasaskan idea berikut:
- Penyelesaian yang sah untuk masalah boleh diwakili sebagai gen
- Crossover membolehkan kita menggabungkan dua penyelesaian untuk mendapatkan penyelesaian baru yang sah
- Pemilihan digunakan untuk memilih penyelesaian yang lebih optimum menggunakan beberapa fungsi kecergasan
- Mutasi diperkenalkan untuk mengganggu pengoptimuman dan mengelakkan kita terperangkap dalam minimum tempatan
Jika anda ingin melaksanakan Algoritma Genetik, anda memerlukan perkara berikut:
- Mencari kaedah untuk mengekod penyelesaian masalah menggunakan gen g∈Γ
- Pada set gen Γ, kita perlu mentakrifkan fungsi kecergasan fit: Γ→R. Nilai fungsi yang lebih kecil menunjukkan penyelesaian yang lebih baik.
- Mentakrifkan mekanisme crossover untuk menggabungkan dua gen bersama-sama untuk mendapatkan penyelesaian baru yang sah crossover: Γ2→Γ.
- Mentakrifkan mekanisme mutasi mutate: Γ→Γ.
Dalam banyak kes, crossover dan mutasi adalah algoritma yang agak mudah untuk memanipulasi gen sebagai jujukan angka atau vektor bit.
Pelaksanaan spesifik algoritma genetik boleh berbeza-beza mengikut kes, tetapi struktur keseluruhannya adalah seperti berikut:
- Pilih populasi awal G⊂Γ
- Pilih secara rawak salah satu operasi yang akan dilakukan pada langkah ini: crossover atau mutasi
- Crossover:
- Pilih secara rawak dua gen g1, g2 ∈ G
- Kira crossover g=crossover(g1,g2)
- Jika fit(g)<fit(g1) atau fit(g)<fit(g2) - gantikan gen yang sepadan dalam populasi dengan g.
- Mutasi - pilih gen rawak g∈G dan gantikannya dengan mutate(g)
- Ulang dari langkah 2, sehingga kita mendapat nilai fit yang cukup kecil, atau sehingga had pada bilangan langkah tercapai.
Tugas Tipikal
Tugas yang biasanya diselesaikan oleh Algoritma Genetik termasuk:
- Pengoptimuman jadual
- Pembungkusan optimum
- Pemotongan optimum
- Mempercepatkan pencarian menyeluruh
✍️ Latihan: Algoritma Genetik
Teruskan pembelajaran anda dalam buku nota berikut:
Pergi ke buku nota ini untuk melihat dua contoh penggunaan Algoritma Genetik:
- Pembahagian harta yang adil
- Masalah 8 Permaisuri
Kesimpulan
Algoritma Genetik digunakan untuk menyelesaikan banyak masalah, termasuk logistik dan masalah pencarian. Bidang ini diilhamkan oleh penyelidikan yang menggabungkan topik dalam Psikologi dan Sains Komputer.
🚀 Cabaran
"Algoritma genetik mudah dilaksanakan, tetapi tingkah lakunya sukar difahami." sumber Lakukan sedikit penyelidikan untuk mencari pelaksanaan algoritma genetik seperti menyelesaikan teka-teki Sudoku, dan terangkan bagaimana ia berfungsi dalam bentuk lakaran atau carta alir.
Kuiz pasca-kuliah
Ulasan & Kajian Kendiri
Tonton video hebat ini yang membincangkan bagaimana komputer boleh belajar bermain Super Mario menggunakan rangkaian neural yang dilatih oleh algoritma genetik. Kita akan belajar lebih lanjut tentang pembelajaran komputer untuk bermain permainan seperti itu dalam bahagian seterusnya.
Tugasan: Persamaan Diofantin
Matlamat anda adalah untuk menyelesaikan apa yang dipanggil persamaan Diofantin - persamaan dengan akar integer. Sebagai contoh, pertimbangkan persamaan a+2b+3c+4d=30. Anda perlu mencari akar integer yang memenuhi persamaan ini.
Tugasan ini diilhamkan oleh catatan ini.
Petunjuk:
- Anda boleh mempertimbangkan akar dalam julat [0;30]
- Sebagai gen, pertimbangkan untuk menggunakan senarai nilai akar
Gunakan Diophantine.ipynb sebagai titik permulaan.