AI-For-Beginners/translations/id/lessons/6-Other/21-GeneticAlgorithms
localizeflow[bot] c0566b76f0 chore(i18n): sync translations with latest source changes (chunk 1/1, 201 changes) 2026-01-30 02:14:00 +00:00
..
Diophantine.ipynb 🌐 Update translations via Co-op Translator 2025-08-29 16:53:37 +00:00
Genetic.ipynb 🌐 Update translations via Co-op Translator 2025-08-29 16:53:37 +00:00
README.md chore(i18n): sync translations with latest source changes (chunk 1/1, 201 changes) 2026-01-30 02:14:00 +00:00

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:

  1. Pilih populasi awal G⊂Γ
  2. Pilih secara acak salah satu operasi yang akan dilakukan pada langkah ini: crossover atau mutasi
  3. 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.
  1. Mutasi - pilih gen acak g∈G dan ganti dengan mutate(g)
  2. 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:

  1. Optimasi jadwal
  2. Pengemasan optimal
  3. Pemotongan optimal
  4. Mempercepat pencarian menyeluruh

✍️ Latihan: Algoritma Genetika

Lanjutkan pembelajaran Anda di notebook berikut:

Kunjungi notebook ini untuk melihat dua contoh penggunaan Algoritma Genetika:

  1. Pembagian harta yang adil
  2. 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:

  1. Anda dapat mempertimbangkan akar berada dalam interval [0;30]
  2. Sebagai gen, pertimbangkan menggunakan daftar nilai akar

Gunakan Diophantine.ipynb sebagai titik awal.