🎯 Definisi Algoritma

"Dalam riset, setiap pilihan desain harus punya alasan yang kuat. Tidak ada yang random, semua berdasarkan hipotesis dan scientific reasoning."
Flowchart Alur Kerja Algoritma ACO untuk TSP/MST

1️⃣ Penjelasan Algoritma/Metode

πŸ“Œ Algoritma Ant Colony Optimization (ACO)

Algoritma ACO adalah metode heuristik probabilistik yang terinspirasi dari perilaku semut dalam mencari jalur terpendek dari sarang menuju sumber makanan. Ide dasarnya adalah semut akan melepaskan jejak feromon di sepanjang jalur yang mereka lalui. Semakin banyak semut yang melewati suatu jalur, semakin kuat jejak feromonnya. Semut lain akan cenderung mengikuti jalur dengan jejak feromon terkuat. Mekanisme ini menciptakan umpan balik positif yang secara bertahap mengarahkan sebagian besar semut menuju jalur yang optimal.

Cara Kerja ACO (General):

πŸ“Œ Algoritma Kruskal (untuk Minimum Spanning Tree)

Algoritma Kruskal adalah salah satu algoritma serakah (greedy) yang paling umum digunakan untuk menemukan Minimum Spanning Tree (MST). Sebuah spanning tree dari sebuah graph adalah sub-graph yang mencakup semua simpul asli, tetapi tidak memiliki siklus. MST adalah spanning tree dengan total berat (weight) edge yang paling kecil. Algoritma ini disebut "serakah" karena pada setiap langkah, ia memilih edge dengan berat terkecil yang tersedia.

Cara Kerja Kruskal:

2️⃣ Perbedaan Kunci: ACO-TSP vs. ACO-MST

Meskipun ACO dapat diterapkan pada berbagai masalah, ada perbedaan fundamental dalam cara kerja untuk TSP (Travelling Salesman Problem) dan MST (Minimum Spanning Tree).

3️⃣ Mengapa Ide-Ide Ini Muncul? (Scientific Reasoning)

πŸ’‘ Design Thinking Process:

Dalam riset ini, pemilihan algoritma dan metode memiliki alasan yang jelas, yang berakar pada metodologi ilmiah.

Step 1: Establish Ground Truth

Memilih Kruskal sebagai Gold Standard yang guaranteed optimal. Ini berfungsi sebagai tolok ukur untuk mengukur seberapa baik kinerja algoritma heuristik.

Step 2: Test Basic Heuristic

Menguji ACO dengan parameter standar untuk mendapatkan baseline performa. Ini menjadi titik awal untuk perbandingan.

Step 3: Hypothesis Testing (Parameter Tuning)

Menyelidiki apakah penyetelan parameter ACO dapat meningkatkan performa. Ini adalah esensi dari metode ilmiah, yaitu menguji hipotesis melalui eksperimen.

Step 4: Problem Variation (TSP vs MST)

Membandingkan performa ACO pada dua masalah yang berbeda (TSP dan MST) untuk menguji kemampuan generalisasi algoritma.

Step 5: Real-World Constraint

Mengimplementasikan batasan derajat (degree constraint) untuk melihat seberapa tangguh (robust) ACO dalam menghadapi skenario dunia nyata yang tidak ideal.

4️⃣ Filosofi: Ilmu Pasti vs Ilmu Heuristik

πŸ€” Mengapa Perlu Ilmu Pasti di Heuristik?

Heuristik sering dianggap "tidak pasti", namun validasi ilmiah sangatlah penting.

  1. Validasi: Tanpa solusi pasti (seperti dari Kruskal), kita tidak bisa mengetahui seberapa bagus sebuah heuristik. Heuristik tanpa validasi adalah tebak-tebakan.
  2. Benchmarking: Membutuhkan tolok ukur untuk mengukur perbaikan. Mengatakan "ACO 5% dari optimal" lebih bermakna daripada "ACO dapat 1000".
  3. Memahami Trade-offs: Memungkinkan kita untuk mengukur kompromi antara akurasi dan kecepatan, misalnya "10x lebih cepat, 5% kurang akurat".
"Heuristik yang baik adalah yang tahu kapan dia gagal. Dan itu hanya bisa diketahui dengan membandingkan dengan solusi pasti."

5️⃣ Harapan & Future Direction

Arah riset ke depan dapat mencakup:


Contoh Perhitungan Manual ACO

πŸ“Š Contoh Perhitungan Manual ACO Step-by-Step

πŸ—ΊοΈ Setup: Graph Sederhana 4 Nodes

Graph:

    A ----10---- B
    |           /|
   20         15 |
    |       /    |5
    |     /      |
    C --12---- D
            

Distance Matrix:

ABCD
A01020∞
B100155
C2015012
D∞5120

Parameter ACO:

🐜 ITERATION 1 - SEMUT 1

Inisialisasi

Pheromone awal: Ο„ = 1 untuk semua edge

EdgeΟ„ (Pheromone)
A-B1.0
A-C1.0
B-C1.0
B-D1.0
C-D1.0

Start: Node A (random)

Step 1: Dari A, pilih edge berikutnya

Kandidat edge: A-B, A-C

Hitung Heuristic (Ξ· = 1/distance):

Hitung Attractiveness (τα Γ— Ξ·Ξ²):

τα Γ— Ξ·Ξ² = Ο„1 Γ— Ξ·2
Edge Ο„ Ξ· τ¹ Γ— Ξ·Β² Calculation
A-B 1 0.100 0.0100 1 Γ— 0.100Β² = 0.0100
A-C 1 0.050 0.0025 1 Γ— 0.050Β² = 0.0025

Hitung Probabilitas:

Total attractiveness: 0.0100 + 0.0025 = 0.0125

PAB = 0.0100 / 0.0125 = 0.80 (80%)
PAC = 0.0025 / 0.0125 = 0.20 (20%)
βœ… Pilih: A-B (probabilitas tertinggi)
Path sekarang: A β†’ B

Step 2: Dari B, pilih edge berikutnya

Kandidat edge: B-C, B-D (A sudah dikunjungi)

Hitung Heuristic:

Hitung Attractiveness:

Edge Ο„ Ξ· τ¹ Γ— Ξ·Β²
B-C 1 0.067 0.0045
B-D 1 0.200 0.0400

Hitung Probabilitas:

Total: 0.0045 + 0.0400 = 0.0445

PBC = 0.0045 / 0.0445 = 0.10 (10%)
PBD = 0.0400 / 0.0445 = 0.90 (90%)
βœ… Pilih: B-D (lebih pendek, probabilitas tinggi)
Path sekarang: A β†’ B β†’ D

Step 3: Dari D, pilih edge berikutnya

Kandidat edge: D-C (A, B sudah dikunjungi)

Hanya 1 pilihan β†’ probabilitas 100%

βœ… Pilih: D-C
Path final: A β†’ B β†’ D β†’ C
Total distance: 10 + 5 + 12 = 27

♻️ UPDATE PHEROMONE (Setelah Semut 1)

Step 1: Evaporation (Semua Edge)

Ο„new = (1 - ρ) Γ— Ο„old = (1 - 0.5) Γ— Ο„old = 0.5 Γ— Ο„old
Edge Ο„old Evaporation Ο„after evap
A-B1.00.5 Γ— 1.00.5
A-C1.00.5 Γ— 1.00.5
B-C1.00.5 Γ— 1.00.5
B-D1.00.5 Γ— 1.00.5
C-D1.00.5 Γ— 1.00.5

Step 2: Deposit (Hanya Edge yang Dilalui)

Path Semut 1: A-B, B-D, D-C

Total distance (L): 27

Δτ = Q / L = 100 / 27 = 3.704
Edge Ο„after evap Dilalui? Δτ Ο„final
A-B 0.5 βœ“ Ya 3.704 4.204
A-C 0.5 βœ— Tidak 0 0.5
B-C 0.5 βœ— Tidak 0 0.5
B-D 0.5 βœ“ Ya 3.704 4.204
C-D 0.5 βœ“ Ya 3.704 4.204

πŸ“Š Hasil Iteration 1:

πŸ”„ ITERATION 2 - SEMUT 1

Step 1: Dari A (Dengan Pheromone Baru)

Pheromone sekarang:

Hitung Attractiveness:

Edge Ο„ Ξ· τ¹ Γ— Ξ·Β²
A-B 4.204 0.100 0.0420
A-C 0.5 0.050 0.0013

Hitung Probabilitas:

Total: 0.0420 + 0.0013 = 0.0433

PAB = 0.0420 / 0.0433 = 0.97 (97%)
PAC = 0.0013 / 0.0433 = 0.03 (3%)
βœ… Hampir pasti pilih A-B! (pheromone tinggi)
Ini adalah efek reinforcement learning!

πŸ’‘ Key Insights:

  1. Iteration 1: P(A-B) = 80% β†’ Pilih A-B
  2. Update pheromone: A-B naik dari 1.0 ke 4.204
  3. Iteration 2: P(A-B) = 97% β†’ Hampir pasti A-B!
  4. Konvergensi: Setelah beberapa iterasi, semua semut pilih path yang sama

🎯 Proses Belajar ACO:

Good solution β†’ High pheromone β†’ More ants choose it β†’ Even higher pheromone β†’ Convergence!

πŸ“ˆ Summary Calculation Table

Iteration Path Cost Ο„AB Ο„AC P(A-B)
0 - - 1.00 1.00 80%
1 A→B→D→C 27 4.20 0.50 97%
2 A→B→D→C 27 5.81 0.25 99%
3+ Aβ†’Bβ†’Dβ†’C 27 β†’ ∞ β†’ 0 β†’ 100%