Kecerdasan Artifisial

Pertemuan 04

Pencarian Lokal dan Optimisasi

Mata Kuliah: Kecerdasan Artifisial (AI401) | 3 SKS

🎯 Capaian Pembelajaran

Setelah pertemuan ini, mahasiswa mampu:

  1. Menjelaskan perbedaan pencarian lokal dengan pencarian sistematis
  2. Mengimplementasikan algoritma Hill Climbing dan variasinya
  3. Mengimplementasikan Simulated Annealing
  4. Menerapkan algoritma genetika untuk optimisasi
  5. Mengaplikasikan pencarian lokal pada N-Queens dan TSP

πŸ“‹ Agenda Hari Ini

Bagian 1

  • Konsep Pencarian Lokal
  • Hill Climbing
  • Simulated Annealing

Bagian 2

  • Local Beam Search
  • Algoritma Genetika
  • Aplikasi: N-Queens & TSP

πŸ“š Review: Pencarian Sistematis

Pada Pertemuan 2-3, kita mempelajari:

  • Uninformed Search: BFS, DFS, UCS
  • Informed Search: Greedy, A*
  • Menyimpan banyak state dalam memori
  • Menyimpan jalur ke solusi

⚠️ Bagaimana jika ruang pencarian SANGAT BESAR?

πŸ” Pencarian Lokal

Pencarian Lokal (Local Search) adalah algoritma yang hanya menyimpan satu state saat ini dan bergerak ke state tetangga tanpa menyimpan jalur.

Kapan digunakan?

  • Yang penting solusi, bukan jalur
  • Masalah optimisasi
  • Ruang pencarian sangat besar

πŸ“Š Perbandingan Pendekatan

Aspek Sistematis Lokal
Memori O(bd) O(1)
Jalur Tersimpan Tidak
Completeness Ya (umumnya) Tidak
Cocok untuk Path finding Optimisasi

πŸ”οΈ Landscape dalam Pencarian

Search Landscape

Gambar 1: Landscape dengan global maximum, local maximum, dan plateau

Fitur-fitur Landscape

Fitur Deskripsi Masalah
Global Max/Min Titik optimal sejati Tujuan kita! βœ…
Local Max/Min Optimal di area lokal Bisa terjebak ⚠️
Plateau Area datar Arah tidak jelas πŸ˜•
Ridge Puncak sempit Sulit navigasi πŸ§—

⛰️ Hill Climbing

Hill Climbing adalah algoritma yang terus bergerak ke arah nilai yang lebih baik dan berhenti ketika tidak ada tetangga yang lebih baik.

Disebut juga Greedy Local Search

Selalu pilih langkah terbaik secara lokal

Hill Climbing: Algoritma


def hill_climbing(problem):
    current = problem.initial_state()
    
    while True:
        neighbors = current.get_neighbors()
        best_neighbor = max(neighbors, 
                           key=problem.value)
        
        if problem.value(best_neighbor) <= \
           problem.value(current):
            return current  # Stuck!
        
        current = best_neighbor
                

Variasi Hill Climbing

Hill Climbing Variants

Gambar 2: Steepest Ascent, Stochastic, dan First-Choice

Tiga Variasi Hill Climbing

Steepest Ascent

Evaluasi SEMUA tetangga, pilih terbaik

Stochastic

Pilih ACAK dari yang lebih baik

First-Choice

Pilih PERTAMA yang lebih baik

πŸ”„ Random Restart Hill Climbing

Jalankan Hill Climbing berkali-kali dari titik awal acak, pilih hasil terbaik.

Probabilitas sukses:

P(sukses setelah k restart) = 1 - (1-p)k

p = probabilitas sukses satu kali

⚠️ Masalah Hill Climbing

Keterbatasan:

  • Terjebak di Local Maximum
  • Stuck di Plateau
  • Kesulitan di Ridge

Solusi:

  • Random Restart
  • Simulated Annealing
  • Genetic Algorithm

🧠 Quiz Time!

Pertanyaan 1:

Jika Hill Climbing memiliki probabilitas 25% untuk menemukan global optimum, berapa kali restart minimal agar probabilitas sukses β‰₯ 90%?

Jawaban:

1 - (0.75)k β‰₯ 0.90 β†’ k β‰₯ 8

Minimal 8 restart

πŸ”₯ Simulated Annealing

Simulated Annealing terinspirasi dari proses annealing dalam metalurgi - memanaskan logam lalu mendinginkan perlahan untuk struktur kristal optimal.

πŸ’‘ Ide Kunci: Kadang-kadang menerima langkah LEBIH BURUK untuk keluar dari local optima!

Proses Simulated Annealing

Simulated Annealing Process

Gambar 3: Temperatur tinggi β†’ eksplorasi, Temperatur rendah β†’ eksploitasi

Probabilitas Penerimaan

P(terima) = eΞ”E/T

Kondisi Probabilitas
T tinggi (panas) Mendekati 1 β†’ hampir selalu terima
T rendah (dingin) Mendekati 0 β†’ jarang terima
Ξ”E kecil (sedikit buruk) Lebih tinggi

Simulated Annealing: Algoritma


def simulated_annealing(problem, schedule):
    current = problem.initial_state()
    
    for t in range(1, MAX_ITER):
        T = schedule(t)  # Temperatur
        if T == 0:
            return current
        
        next = random.choice(current.neighbors())
        delta_E = value(next) - value(current)
        
        if delta_E > 0:  # Lebih baik
            current = next
        elif random.random() < exp(delta_E/T):
            current = next  # Terima yg lebih buruk!
                

πŸ“‰ Jadwal Pendinginan

Jenis Formula Karakteristik
Linear T(t) = Tβ‚€ - Ξ±t Sederhana
Exponential T(t) = Tβ‚€ Γ— Ξ±t Paling umum (Ξ±β‰ˆ0.95)
Logarithmic T(t) = Tβ‚€ / ln(t+1) Sangat lambat

🧠 Quiz Time!

Pertanyaan 2:

Nilai saat ini = 100, tetangga = 95, T = 5. Berapa probabilitas menerima tetangga?

Jawaban:

Ξ”E = 95 - 100 = -5

P = e-5/5 = e-1 = 0.368 (36.8%)

Hill Climbing vs Simulated Annealing

Aspek Hill Climbing Simulated Annealing
Langkah buruk ❌ Tidak pernah βœ… Bisa diterima
Escape local optima ❌ Tidak bisa βœ… Bisa
Kecepatan βœ… Cepat ⚠️ Lebih lambat
Hasil Local optimum Mendekati global

πŸ”¦ Local Beam Search

Local Beam Search memelihara k state secara bersamaan, bukan hanya satu.

Proses:

  1. Generate semua successors dari k state
  2. Pilih k terbaik dari SEMUA successors
  3. Ulangi

Local Beam Search (k=3)

Local Beam Search

Gambar 4: k state dipertahankan, pilih k terbaik dari semua successors

🧬 Algoritma Genetika

Genetic Algorithm terinspirasi dari evolusi biologis: seleksi alam, crossover, dan mutasi.
Biologi GA
ChromosomeSolusi kandidat
GenKomponen solusi
FitnessNilai objective
PopulasiKumpulan solusi

Alur Algoritma Genetika

Genetic Algorithm Flow

Gambar 5: Populasi β†’ Seleksi β†’ Crossover β†’ Mutasi β†’ Populasi Baru

Seleksi: Roulette Wheel

P(individu i) = fitness(i) / Ξ£ fitness(j)

Contoh:

Individu Fitness Probabilitas
A3030%
B5050%
C2020%

Crossover (Rekombinasi)

Crossover Types

Gambar 6: Single-point, Two-point, dan Uniform Crossover

Contoh Single-Point Crossover


Parent 1: [1, 1, 1, 1 | 1, 1, 1, 1]
Parent 2: [0, 0, 0, 0 | 0, 0, 0, 0]
              ↑ Titik potong

Offspring 1: [1, 1, 1, 1, 0, 0, 0, 0]
Offspring 2: [0, 0, 0, 0, 1, 1, 1, 1]
                

Mutasi

Mutasi: Perubahan acak kecil untuk mempertahankan keragaman genetik.

Sebelum: [1, 0, 1, 1, 0, 0, 1, 0]
                   ↑ mutasi
Setelah: [1, 0, 0, 1, 0, 0, 1, 0]
                

πŸ’‘ Mutation rate biasanya rendah (1-5%)

GA: Algoritma Lengkap


def genetic_algorithm(problem, pop_size, generations):
    population = [random_chromosome() 
                  for _ in range(pop_size)]
    
    for gen in range(generations):
        # Evaluasi fitness
        fitness = [problem.fitness(ind) 
                   for ind in population]
        
        # Buat populasi baru
        new_pop = [best_individual]  # Elitism
        
        while len(new_pop) < pop_size:
            p1, p2 = select(population, fitness)
            off1, off2 = crossover(p1, p2)
            new_pop.extend([mutate(off1), mutate(off2)])
        
        population = new_pop
                

πŸ‘‘ N-Queens Problem

Tempatkan N ratu pada papan NΓ—N sehingga tidak ada yang saling menyerang.
8-Queens Solution

Gambar 7: Contoh solusi 8-Queens

N-Queens: Representasi

Array 1D:

state = [0, 4, 7, 5, 2, 6, 1, 3]

Index = kolom, Value = baris

Heuristic h:

h = jumlah pasangan ratu yang saling menyerang

Goal: h = 0

N-Queens: Perbandingan Algoritma

Algoritma Success Rate (8-Queens)
Hill Climbing ~14%
Random Restart HC (100x) ~100%
Simulated Annealing ~94%
Genetic Algorithm ~90%

πŸ—ΊοΈ Traveling Salesman Problem

TSP: Cari rute terpendek yang mengunjungi setiap kota tepat satu kali dan kembali ke asal.

Representasi: Permutasi kota

[0, 3, 1, 4, 2]  # Urutan kunjungan

TSP: Operator 2-opt

2-opt Operator

Gambar 8: 2-opt membalik segmen untuk menghilangkan crossing

πŸŽ–οΈ Aplikasi Pertahanan

Rute Patroli

TSP untuk optimisasi checkpoint

Sensor Radar

Maksimalkan coverage area

Penjadwalan Misi

Alokasi resource optimal

🧠 Quiz Time!

Pertanyaan 3:

Untuk masalah dengan banyak local optima dan constraint kompleks, algoritma mana yang paling sesuai?

A. Steepest Ascent Hill Climbing
B. First-Choice Hill Climbing
C. Genetic Algorithm βœ…
D. Local Beam Search

πŸ“Š Perbandingan Algoritma

Algoritma Escape Local? Memori Best For
Hill Climbing ❌ O(1) Landscape smooth
Random Restart βœ… O(1) Multiple local optima
Simulated Annealing βœ… O(1) General optimization
Local Beam ⚠️ O(k) Parallel problems
Genetic Algorithm βœ… O(pop) Complex landscapes

πŸ“ Ringkasan

Konsep Poin Kunci
Pencarian Lokal Hanya simpan state saat ini, O(1)
Hill Climbing Greedy, bisa stuck di local optima
Simulated Annealing Terima langkah buruk dengan P = eΞ”E/T
Genetic Algorithm Populasi + Seleksi + Crossover + Mutasi
Aplikasi N-Queens, TSP, Penjadwalan

πŸ“… Pertemuan Berikutnya

Pertemuan 05: Pencarian Adversarial

Game Playing dengan AI

  • Karakteristik game two-player
  • Algoritma Minimax
  • Alpha-Beta Pruning
  • Fungsi Evaluasi

πŸ“š Referensi

  1. Russell, S. & Norvig, P. (2020). Artificial Intelligence: A Modern Approach (4th Ed.). Pearson. Chapter 4.1-4.2
  2. Ertel, W. (2017). Introduction to Artificial Intelligence (2nd Ed.). Springer. Chapter 5.
  3. Goldberg, D.E. (1989). Genetic Algorithms in Search, Optimization, and Machine Learning. Addison-Wesley.

Terima Kasih

πŸ€– Kecerdasan Artifisial

Pertemuan 04: Pencarian Lokal dan Optimisasi


Ada pertanyaan?