⭐ Case Based - Searching • Kecerdasan Buatan Genap 2025/2026

Global Optimization
Without Guesswork

Implementasi Algoritma Genetika from scratch untuk meminimalkan fungsi non-linear kompleks multivariat dengan kendala singularitas asimtotik.

L

Lian

Lead Developer & Author

NIM: 2311104067
Core GA Algorithm • PDF Report
I

Ilham

Presenter & UI/UX

NIM: 2311104068
Deck & Visuals • Video Production
BUILT WITH 🐍 Python 3 ⚙️ Zero External Libraries 🧬 Real-Coded Genome ⚡ Log-Compressed Fitness 🎓 Telkom University

Minimasi Fungsi Objektif Non-Linear

Diberikan fungsi matematika dua variabel kontinu $(x_1, x_2)$ dengan tujuan menemukan koordinat global yang menghasilkan nilai $f(x_1, x_2)$ seminimum mungkin.

FUNGSI MATEMATIS TARGET
$$f(x_1, x_2) = -\left(\sin(x_1)\cos(x_2)\tan(x_1+x_2) + \frac{1}{2}\exp(1 - \sqrt{x_2^2})\right)$$
Domain $x_1$: [-10.0, 10.0] Domain $x_2$: [-10.0, 10.0]
⚠️ TANTANGAN UTAMA: SINGULARITAS ASIMTOT
  • Asimtot Tangen $\tan(x_1+x_2)$:

    Ketika $x_1 + x_2 \to \frac{\pi}{2} + k\pi$, nilai fungsi $\tan$ melonjak ke $+\infty$ atau $-\infty$.

  • Jurang Nilai Ekstrem Menuju $-\infty$:

    Jika $-\sin(x_1)\cos(x_2) < 0$ dan $\tan(x_1+x_2) \to +\infty$, maka $f(x_1, x_2) \to -\infty$.

  • Resiko Numerical Overflow:

    Tanpa penanganan matematis, individu di dekat asimtot akan menghancurkan variasi seleksi genetik.

Siklus Evolusi Varian 3 (From Scratch)

Seluruh tahapan siklus hidup genetik dibangun menggunakan modul standar Python math dan random tanpa framework pihak ketiga.

01

Inisialisasi

Populasi 74 individu real-coded $[0, 1]^2$

→
02

Decode & Eval

Mapping linear $[-10, 10]$ & Log-fitness

→
03

Seleksi Parent

Roulette Wheel berbasis fitness terkompresi

→
04

Crossover

Whole Arithmetic Crossover ($P_c = 0.75$)

→
05

Mutasi

Gaussian Perturbation ($P_m = 0.15, \sigma=0.05$)

→
06

Elitisme

Top 5% (4 individu) disalin langsung

💡
Kepatuhan Aturan Tugas: Mengacu rubrik penilaian, fungsi-fungsi inti GA tidak menggunakan toolbox library (seperti DEAP atau PyGAD), memastikan integritas kode 100% orisinal.

Real-Coded Genome & Linear Mapping

Memilih representasi bilangan riil (*continuous space*) untuk menghindari diskritisasi dan distorsi resolusi yang kerap terjadi pada representasi biner.

STRUKTUR KROMOSOM
Gen 1 ($g_1$) 0.40990667 Mengkodekan $x_1 \in [0.0, 1.0]$
Gen 2 ($g_2$) 0.51156336 Mengkodekan $x_2 \in [0.0, 1.0]$
Populasi: 74 Individu Panjang: 2 Gen Tipe: Float64
FORMULA DEKODE LINEAR
def dekode(kromosom):
    # Mapping [0, 1] ke [-10, 10]
    x1 = -10.0 + kromosom[0] * (10.0 - (-10.0))
    x2 = -10.0 + kromosom[1] * (10.0 - (-10.0))
    return x1, x2

Formula ini menjamin seluruh kombinasi genetik selalu menghasilkan nilai $x_1, x_2$ yang berada tepat di dalam batas domain yang diizinkan tanpa memerlukan pemotongan paksa.

Penanganan Singularitas via Logarithmic Compression

Strategi transformasi objektif untuk mencegah satu "super-individu" di dekat asimtot memonopoli seluruh probabilitas seleksi.

1. TRANSFORMASI KE MAKSIMASI

Karena persoalan berupa minimasi, maka nilai dinaikkan menjadi masalah maksimasi:

$$g(x_1, x_2) = -f(x_1, x_2)$$

Masalah timbul saat $g$ mencapai angka jutaan: seleksi proporsional akan bias 99.9% hanya ke 1 individu, mematikan diversitas genetik.

Roulette Wheel Berbasis Compressed Fitness

Memilih induk terbaik secara stokastik sebanding dengan kontribusi fitness terkompresi dari masing-masing individu.

PROBABILITAS SELEKSI
$$P(k) = \frac{\text{Fitness}_k}{\sum_{j=1}^{N} \text{Fitness}_j}$$
total = sum(fitness)
r = random.uniform(0, total)
kumulatif = 0.0
for individu, f in zip(populasi, fitness):
    kumulatif += f
    if r <= kumulatif:
        return individu
KARAKTERISTIK METODE
⚖️
Eksploitasi & Eksplorasi Berimbang:

Individu fit memiliki peluang terpilih lebih tinggi, namun individu dengan fitness sedang tetap memiliki kesempatan berevolusi.

🛡️
Anti-Stagnansi Dini:

Berkat kompresi logaritma pada Slide 5, roda seleksi tidak dimonopoli oleh anomali singularitas tangen.

Arithmetic Crossover & Gaussian Mutation

Kombinasi rekombinasi linear dan perturbasi stokastik kontinu untuk menghasilkan keturunan berkualitas tinggi.

CROSSOVER • $P_c = 0.75$

Whole Arithmetic Crossover

Mengkombinasikan kedua orang tua secara linier dengan bobot acak $\alpha \sim U(0, 1)$:

$$c_1 = \alpha \cdot p_1 + (1 - \alpha) \cdot p_2$$ $$c_2 = (1 - \alpha) \cdot p_1 + \alpha \cdot p_2$$
✨ Anak selalu berada dalam domain cembung valid $[0, 1]$
MUTASI • $P_m = 0.15$

Gaussian Perturbation

Menambahkan derau normal terkontrol dengan simpangan baku $\sigma = 0.05$:

$$g' = \min(1.0, \max(0.0, g + \mathcal{N}(0, \sigma^2)))$$
✨ Eksplorasi lokal presisi dengan boundary clipping

Elitisme 5% & Kriteria Penghentian Evolusi

Menjaga solusi terbaik sepanjang masa (*best-so-far*) agar tidak hilang atau terdegradasi oleh operasi genetik acak.

STRUKTUR GENERASI BARU ($N = 74$)
4 Elitisme (5%) 4 individu terbaik langsung disalin utuh tanpa mutasi
70 Offspring Baru (95%) Dihasilkan melalui Roulette + Crossover + Mutasi

Elitisme menjamin kurva performa terbaik bersifat monoton menurun (tidak pernah memburuk).

KRITERIA PENGHENTIAN (STOPPING CONDITIONS)
Kondisi 1
Target Nilai Tercapai:

$f(x_1, x_2) \le -10^6$ (mencapai nilai ekstrem target)

Kondisi 2
Batas Generasi:

Maksimal 250 generasi evolusi

Kondisi 3
Kondisi Stagnasi:

Tidak ada perbaikan solusi selama 40 generasi beruntun

Hasil Eksekusi & Konvergensi Program

Pengujian eksekusi nyata dari script ga_varian.py yang dijalankan hingga kriteria terminasi terpenuhi.

python ga_varian.py
Generasi   1 | f(x) terbaik = -6.603255
Generasi  10 | f(x) terbaik = -28.288375
Generasi  30 | f(x) terbaik = -51.620762
Generasi  50 | f(x) terbaik = -407.996739
Generasi  80 | f(x) terbaik = -4808.418925
Generasi 110 | f(x) terbaik = -4808.418925
Berhenti di generasi 116: stagnan 40 generasi.

=========== HASIL ===========
Kromosom terbaik : [0.40990667, 0.51156336]
Hasil dekode     : x1 = -1.801867 , x2 = 0.231267
Nilai f(x1,x2)   : -4808.418925
NILAI MINIMUM f(x) TERCAPAI -4808.4189 Lembah fungsi asimtotik berhasil ditemukan
KOORDINAT TERBAIK (HASIL DEKODE) $x_1 = -1.801867$  |  $x_2 = 0.231267$ Kromosom: [0.40990667, 0.51156336]
STATUS KONVERGENSI Konvergen Stabil di Gen 116 Terhenti via Kriteria Stagnan 40 Generasi
✓ Seluruh Target & Ketentuan Tugas Telah Terpenuhi

Kesimpulan & Ketercapaian Goals

Algoritma Genetika Varian 3 sukses memecahkan persoalan optimasi non-linear yang menantang secara mandiri, stabil, dan presisi.

🏆

100% Native Implementation

Seluruh tahapan inisialisasi, reproduksi, mutasi, dan seleksi dibangun murni tanpa library GA pihak ketiga.

🎯

Stabilitas Numerik Singularitas

Inovasi kompresi logaritma terbukti efektif mengatasi kendala asimtot $\tan(x_1+x_2)$ tanpa overflow.

⚡

Efisiensi & Konvergensi Cepat

Kombinasi Arithmetic Crossover dan Elitisme 5% berhasil menemukan solusi optimal dalam 116 generasi.

📦

Deliverables Lengkap

Source code bersih, laporan komprehensif, slide interaktif, dan video presentasi siap dikumpulkan.

Terima Kasih atas Perhatian Anda!

Sesi Tanya Jawab (Q&A) dibuka untuk diskusi lebih mendalam.