Fungsi: Algoritma exact untuk MST yang GUARANTEED optimal
Mengapa ada?
Alternatif yang TIDAK dipilih: Prim's Algorithm
Alasan: Kruskal lebih intuitif untuk comparison (edge-based like ACO)
Fungsi: ACO untuk TSP dengan parameter STANDAR (α=1, β=2, ρ=0.5)
Mengapa ada?
Reasoning IDE: "Bagaimana jika kita pakai ACO tanpa tuning?"
Fungsi: ACO untuk TSP dengan parameter DI-TUNE (β=2, ρ=0.3)
Mengapa ada?
Reasoning IDE: "TSP kompleks, butuh exploration lebih (ρ kecil)"
Expected: Tuned > Same (tapi experiment bisa buktikan berbeda!)
Fungsi: ACO untuk MST dengan parameter berbeda
Mengapa ada DUA versi?
Reasoning IDE: "MST berbeda dari TSP, butuh parameter berbeda"
Fungsi: ACO untuk TSP dengan CONSTRAINT: max degree = 3
Mengapa ada constraint?
Reasoning IDE: "Dalam realita, ada batasan fisik/teknis"
Contoh aplikasi: Router max 3 koneksi, delivery truck max 3 routes
Fungsi: MST dengan degree constraint
Mengapa perlu ini?
Reasoning IDE: "Network design with limited ports per node"
Butuh baseline yang PASTI optimal → Kruskal
Reasoning: Tanpa ground truth, tidak bisa measure performance
ACO dengan parameter default → ACO_Same
Reasoning: Butuh baseline heuristic untuk comparison
Apakah tuning improve performance? → ACO_Tuned
Reasoning: Scientific method - test hypothesis with experiment
Apakah ACO universal atau problem-specific? → TSP vs MST
Reasoning: Testing generalization capability
Apakah ACO robust dengan constraint? → Degree=3
Reasoning: Real-world never ideal, always has constraints
| Alternatif yang TIDAK Dipilih | Mengapa TIDAK? | Trade-off |
|---|---|---|
| Genetic Algorithm (GA) |
• Lebih kompleks untuk explain • Parameter lebih banyak (crossover, mutation) • Fokus ke ACO sebagai study case |
Pro: Possibly better performance Con: Harder to analyze, more parameters |
| Simulated Annealing (SA) |
• Single solution (vs population) • Different paradigm (physics vs biology) • Less interpretable |
Pro: Simple, fast Con: Less parallel, less diverse |
| Particle Swarm Optimization |
• Better for continuous optimization • Not natural for graph problems • Encoding graph in particles complex |
Pro: Fast convergence Con: Not graph-native |
| Neural Networks / Deep Learning |
• Need large training data • Black box (hard to explain) • Overkill for small graphs |
Pro: Can learn patterns Con: Need data, not interpretable |
| Hanya 1 Parameter Setting |
• Tidak bisa test effect of tuning • Tidak scientific (no comparison) • Miss insight tentang sensitivity |
Pro: Simple Con: Limited insight |
| Original ACO | Our Improvement | Benefit |
|---|---|---|
| TSP Cycle (n edges) | TSP Path (n-1 edges) | Fair comparison dengan MST ✅ |
| Single parameter set | Same vs Tuned variants | Parameter sensitivity analysis ✅ |
| No constraints | Degree constraint support | Real-world applicability ✅ |
| TSP only | TSP + MST comparison | Problem generalization test ✅ |
| No visualization | Complete graph + solution viz | Better understanding & presentation ✅ |
| Random data | CSV dataset loader | Reproducibility & real data ✅ |
| Print results only | Statistical analysis + plots | Scientific rigor ✅ |
Paradox: Heuristik = "tidak pasti", tapi kita butuh scientific rigor!
Tanpa ground truth (Kruskal), tidak tahu apakah heuristik bagus atau tidak.
Heuristik tanpa validasi = tebak-tebakan!
Butuh baseline untuk measure improvement.
Contoh: "ACO 5% dari optimal" lebih bermakna daripada "ACO dapat 1000"
Research butuh: Hypothesis → Experiment → Validation
Exact algorithm = alat validasi hypothesis heuristik
Tahu dimana heuristik sacrifice accuracy for speed
Quantify: "10x faster, 5% less accurate"
Exact algorithm reveal problem structure
Help design better heuristic
Optimize cost + time + reliability simultaneously
Specialized ACO untuk domain tertentu (healthcare, logistics, etc)
Understand "mengapa" heuristik memilih solusi tertentu
Important untuk AI ethics & trust
Algorithm yang improve dari historical data
Learn patterns dari past problems
From "Approximate" to "Intelligent Approximation"
Heuristik masa depan bukan sekedar "cukup bagus", tapi "tahu kapan harus exact, kapan bisa approximate".
🎯 The Ultimate Goal:
"Membuat heuristik yang punya 'scientific consciousness' - tahu limitasinya sendiri, bisa explain keputusannya, dan continuous self-improvement."
Ini berarti:
💡 Bottom Line:
"Setiap algoritma dipilih dengan reasoning yang jelas. Bukan random, tapi systematic exploration dari problem space dengan scientific methodology."