|
|
||
|---|---|---|
| .. | ||
| Diophantine.ipynb | ||
| Genetic.ipynb | ||
| README.md | ||
README.md
Algoritma Genetika
Kuis sebelum kuliah
Algoritma Genetika (GA) didasarkan pada pendekatan evolusi dalam AI, di mana metode evolusi populasi digunakan untuk mendapatkan solusi optimal untuk suatu masalah tertentu. Algoritma ini diusulkan pada tahun 1975 oleh John Henry Holland.
Algoritma Genetika didasarkan pada ide-ide berikut:
- Solusi valid untuk masalah dapat direpresentasikan sebagai gen
- Crossover memungkinkan kita menggabungkan dua solusi untuk mendapatkan solusi valid baru
- Seleksi digunakan untuk memilih solusi yang lebih optimal menggunakan beberapa fungsi kebugaran
- Mutasi diperkenalkan untuk mengganggu optimasi dan menghindari minimum lokal
Jika Anda ingin mengimplementasikan Algoritma Genetika, Anda memerlukan hal-hal berikut:
- Menemukan metode untuk mengkodekan solusi masalah kita menggunakan gen g∈Γ
- Pada himpunan gen Γ kita perlu mendefinisikan fungsi kebugaran fit: Γ→R. Nilai fungsi yang lebih kecil menunjukkan solusi yang lebih baik.
- Mendefinisikan mekanisme crossover untuk menggabungkan dua gen menjadi satu solusi valid baru crossover: Γ2→Γ.
- Mendefinisikan mekanisme mutasi mutate: Γ→Γ.
Dalam banyak kasus, crossover dan mutasi adalah algoritma sederhana untuk memanipulasi gen sebagai urutan numerik atau vektor bit.
Implementasi spesifik dari algoritma genetika dapat bervariasi dari satu kasus ke kasus lainnya, tetapi struktur umumnya adalah sebagai berikut:
- Pilih populasi awal G⊂Γ
- Pilih secara acak salah satu operasi yang akan dilakukan pada langkah ini: crossover atau mutasi
- Crossover:
- Pilih secara acak dua gen g1, g2 ∈ G
- Hitung crossover g=crossover(g1,g2)
- Jika fit(g)<fit(g1) atau fit(g)<fit(g2) - ganti gen yang sesuai dalam populasi dengan g.
- Mutasi - pilih gen acak g∈G dan ganti dengan mutate(g)
- Ulangi dari langkah 2, hingga kita mendapatkan nilai fit yang cukup kecil, atau hingga batas jumlah langkah tercapai.
Tugas-Tugas Umum
Tugas-tugas yang biasanya diselesaikan dengan Algoritma Genetika meliputi:
- Optimasi jadwal
- Pengemasan optimal
- Pemotongan optimal
- Mempercepat pencarian menyeluruh
✍️ Latihan: Algoritma Genetika
Lanjutkan pembelajaran Anda di notebook berikut:
Kunjungi notebook ini untuk melihat dua contoh penggunaan Algoritma Genetika:
- Pembagian harta yang adil
- Masalah 8 Ratu
Kesimpulan
Algoritma Genetika digunakan untuk menyelesaikan banyak masalah, termasuk logistik dan masalah pencarian. Bidang ini terinspirasi oleh penelitian yang menggabungkan topik-topik dalam Psikologi dan Ilmu Komputer.
🚀 Tantangan
"Algoritma genetika mudah diimplementasikan, tetapi perilakunya sulit dipahami." sumber Lakukan penelitian untuk menemukan implementasi algoritma genetika seperti menyelesaikan teka-teki Sudoku, dan jelaskan cara kerjanya dalam bentuk sketsa atau diagram alur.
Kuis setelah kuliah
Tinjauan & Studi Mandiri
Tonton video hebat ini yang membahas bagaimana komputer dapat belajar bermain Super Mario menggunakan jaringan saraf yang dilatih oleh algoritma genetika. Kita akan belajar lebih banyak tentang komputer yang belajar bermain game seperti itu di bagian berikutnya.
Tugas: Persamaan Diophantine
Tujuan Anda adalah menyelesaikan persamaan Diophantine - persamaan dengan akar bilangan bulat. Sebagai contoh, pertimbangkan persamaan a+2b+3c+4d=30. Anda perlu menemukan akar bilangan bulat yang memenuhi persamaan ini.
Tugas ini terinspirasi oleh postingan ini.
Petunjuk:
- Anda dapat mempertimbangkan akar berada dalam interval [0;30]
- Sebagai gen, pertimbangkan menggunakan daftar nilai akar
Gunakan Diophantine.ipynb sebagai titik awal.