Kecerdasan Artifisial

Pertemuan 06

Constraint Satisfaction Problems (CSP)

Mata Kuliah: Kecerdasan Artifisial (AI401) | 3 SKS

🎯 Capaian Pembelajaran

Setelah pertemuan ini, mahasiswa mampu:

  1. Memformulasikan masalah sebagai CSP
  2. Menerapkan teknik constraint propagation
  3. Mengimplementasikan algoritma AC-3
  4. Menerapkan backtracking search untuk CSP
  5. Menggunakan heuristik MRV, Degree, dan LCV
  6. Mengimplementasikan forward checking

πŸ“‹ Agenda Hari Ini

Bagian 1

  • Definisi CSP
  • Contoh CSP Klasik
  • Constraint Graph

Bagian 2

  • Constraint Propagation
  • Backtracking Search
  • Heuristik & Forward Checking

πŸ€” Mengapa CSP?

Problem: Algoritma pencarian sebelumnya (BFS, DFS, A*) memperlakukan state sebagai "black box"

CSP memungkinkan kita:

  • Mengeksploitasi struktur internal masalah
  • Mendeteksi failure lebih awal
  • Menggunakan heuristik domain-independent

πŸ“ Definisi Formal CSP

CSP didefinisikan oleh tiga komponen:
  1. X = {X₁, Xβ‚‚, ..., Xβ‚™} : himpunan variabel
  2. D = {D₁, Dβ‚‚, ..., Dβ‚™} : himpunan domain
  3. C = {C₁, Cβ‚‚, ..., Cβ‚˜} : himpunan constraint

Solusi: Assignment lengkap yang memenuhi semua constraint

Komponen CSP

Komponen Deskripsi Contoh (Map Coloring)
Variabel (X) Entitas yang diberi nilai WA, NT, SA, Q, NSW, V, T
Domain (D) Nilai yang mungkin {Merah, Hijau, Biru}
Constraint (C) Batasan yang dipenuhi Tetangga β‰  warna sama

Jenis-Jenis Constraint

Jenis Variabel Contoh
Unary 1 variabel X₁ β‰  Merah
Binary 2 variabel X₁ β‰  Xβ‚‚
Higher-order > 2 variabel X₁ + Xβ‚‚ + X₃ ≀ 10
Global Banyak variabel Alldiff(X₁, Xβ‚‚, ..., Xβ‚™)

πŸ—ΊοΈ Contoh: Map Coloring

Constraint Graph Australia

Gambar: Constraint graph untuk pewarnaan peta Australia

Formulasi Map Coloring

Variabel:

WA, NT, SA, Q, NSW, V, T

Domain:

{R, G, B} untuk semua

Constraint:

  • WA β‰  NT
  • WA β‰  SA
  • NT β‰  SA
  • NT β‰  Q
  • SA β‰  Q
  • SA β‰  NSW
  • SA β‰  V
  • Q β‰  NSW
  • NSW β‰  V

πŸ‘‘ Contoh: N-Queens Problem

4-Queens Problem

Gambar: Solusi valid 4-Queens dan constraint-nya

Formulasi N-Queens

Variabel: Q₁, Qβ‚‚, ..., Qβ‚™ (satu ratu per kolom)

Domain: {1, 2, ..., N} (baris yang mungkin)

Constraint:

  • Tidak sebaris: Qα΅’ β‰  Qβ±Ό untuk semua i β‰  j
  • Tidak sediagonal: |Qα΅’ - Qβ±Ό| β‰  |i - j|

πŸ”’ Contoh: Sudoku

Variabel:

81 sel (X₁₁ ... X₉₉)

Domain:

{1-9} atau singleton

Constraint:

  • 9 Alldiff (baris)
  • 9 Alldiff (kolom)
  • 9 Alldiff (kotak 3Γ—3)

Total: 27 Γ— C(9,2) = 972 binary constraint

πŸ”€ Contoh: Cryptarithmetic

SEND + MORE = MONEY

Variabel: S, E, N, D, M, O, R, Y, C₁, Cβ‚‚, C₃, Cβ‚„

Constraint:

  • Alldiff(S, E, N, D, M, O, R, Y)
  • S β‰  0, M β‰  0
  • D + E = Y + 10Γ—C₁
  • ... (column constraints)

πŸ” CSP sebagai Search Problem

Komponen Definisi untuk CSP
Initial State Assignment kosong { }
Successor Assign nilai ke variabel
Goal Test Assignment lengkap + semua constraint terpenuhi
Path Cost Konstan (tidak relevan)

✨ Sifat Komutatif

Commutative Property: Urutan assignment variabel tidak mempengaruhi hasil akhir

Implikasi:

  • Pilih satu variabel per level
  • Branching factor = d (ukuran domain)
  • Search tree lebih kecil

🌊 Constraint Propagation

Constraint Propagation: Teknik mengurangi domain variabel dengan memanfaatkan constraint

Tujuan:

  • Deteksi inconsistency lebih awal
  • Kurangi search space
  • Hapus nilai yang tidak mungkin

πŸ“ Node Consistency

Node Consistency: Semua nilai dalam domain memenuhi unary constraint

Contoh:

  • D(X₁) = {1, 2, 3, 4, 5}
  • Constraint: X₁ > 2 dan X₁ ≀ 4
  • Hasil: D(X₁) = {3, 4}

↔️ Arc Consistency

Arc Consistency: Untuk setiap nilai di D(Xα΅’), ada nilai di D(Xβ±Ό) yang memenuhi constraint
Arc Consistency

Contoh Arc Consistency

D(X₁) = {1, 2, 3}, D(Xβ‚‚) = {1, 2}, Constraint: X₁ < Xβ‚‚

Arc (X₁, Xβ‚‚):

  • X₁=1: Ada Xβ‚‚>1? βœ“ (Xβ‚‚=2)
  • X₁=2: Ada Xβ‚‚>2? βœ— Hapus!
  • X₁=3: Ada Xβ‚‚>3? βœ— Hapus!

D(X₁) = {1}

Arc (Xβ‚‚, X₁):

  • Xβ‚‚=1: Ada X₁<1? βœ— Hapus!
  • Xβ‚‚=2: Ada X₁<2? βœ“ (X₁=1)

D(Xβ‚‚) = {2}

πŸ”„ Algoritma AC-3

def AC3(csp):
    queue = all_arcs(csp)
    while queue not empty:
        (Xi, Xj) = queue.pop()
        if REVISE(csp, Xi, Xj):
            if domain[Xi] is empty:
                return False
            for Xk in neighbors[Xi] - {Xj}:
                queue.add((Xk, Xi))
    return True

Kompleksitas: O(edΒ³) β€” e = edges, d = domain size

Fungsi REVISE

def REVISE(csp, Xi, Xj):
    revised = False
    for x in domain[Xi]:
        # Cek apakah ada support di Xj
        if no y in domain[Xj] satisfies 
           constraint(Xi, Xj):
            domain[Xi].remove(x)
            revised = True
    return revised

πŸ”™ Backtracking Search

Backtracking: DFS yang memilih satu variabel per langkah dan backtrack saat tidak ada nilai legal
Backtracking Search Tree

Algoritma Backtracking

def BACKTRACK(assignment, csp):
    if assignment is complete:
        return assignment
    var = SELECT_UNASSIGNED_VARIABLE(csp)
    for value in ORDER_DOMAIN_VALUES(var):
        if value is consistent:
            assignment[var] = value
            result = BACKTRACK(assignment, csp)
            if result != failure:
                return result
            del assignment[var]
    return failure

πŸ“Š Heuristik Pemilihan Variabel

MRV

Minimum Remaining Values

Pilih variabel dengan domain terkecil

Degree Heuristic

Tiebreaker untuk MRV

Pilih yang constraint terbanyak

Contoh MRV

Variabel Domain |Domain|
A {1, 2, 3, 4} 4
B βœ“ {1, 2} 2
C {1, 2, 3} 3

MRV = "Fail-First" β†’ Temukan failure lebih awal!

🎯 Heuristik Pemilihan Nilai

LCV (Least Constraining Value)

Pilih nilai yang menghilangkan paling sedikit nilai dari domain tetangga

LCV Heuristic

Contoh LCV

A memiliki tetangga B dan C, Constraint: A β‰  B, A β‰  C

D(A) = {R, G, B}, D(B) = {R, G}, D(C) = {G, B}

Nilai A Hilang dari B Hilang dari C Total
R 1 0 1 βœ“
G 1 1 2
B 0 1 1 βœ“

Pilih A = R atau A = B (LCV = 1)

⏩ Forward Checking

Forward Checking: Hapus nilai inkonsisten dari domain variabel tetangga segera setelah setiap assignment
  • Deteksi failure lebih awal
  • Jika domain tetangga kosong β†’ backtrack!

Ilustrasi Forward Checking

Forward Checking Process

Gambar: Domain dikurangi setelah setiap assignment

Contoh Forward Checking

Map coloring: WA, NT, SA dengan D = {R, G, B}

Step 1: Assign WA = R

  • D(NT) = {G, B} (hapus R)
  • D(SA) = {G, B} (hapus R)

Step 2: Assign NT = G

  • D(SA) = {B} (hapus G)

Step 3: Assign SA = B βœ“

Solusi: {WA: R, NT: G, SA: B}

🌲 Tree-Structured CSP

Tree-structured CSP: Constraint graph membentuk tree (tanpa cycle)

Keuntungan:

  • Dapat diselesaikan dalam O(ndΒ²)
  • Tanpa backtracking!
Algoritma: Arc consistency dari leaf ke root, lalu assign dari root ke leaf

βœ‚οΈ Cutset Conditioning

Cutset: Variabel yang jika dihapus menghasilkan tree structure

Jika cutset berukuran c:

Kompleksitas: O(dc Γ— (n-c)dΒ²)

πŸŽ–οΈ Aplikasi Pertahanan

Resource Allocation

Alokasi tim/unit ke sektor operasi dengan berbagai constraint

Frequency Assignment

Alokasi frekuensi komunikasi tanpa interference

Scheduling

Penjadwalan patroli, operasi, dan shift personel

πŸ“‹ Studi Kasus: Alokasi Tim

4 tim (Alpha, Bravo, Charlie, Delta) ke 4 sektor (S1-S4)

Constraint:

  • Alpha tidak boleh ke S1
  • Bravo-Charlie harus adjacent
  • Delta tidak boleh ke S4

Solusi: Alpha:S4, Bravo:S2, Charlie:S1, Delta:S3

🧠 Quiz Time!

Pertanyaan 1:

Apa yang dimaksud dengan Arc Consistency?

A. Semua nilai memenuhi unary constraint
B. Graph tidak memiliki cycle
C. Setiap nilai memiliki support di tetangga βœ“
D. Semua constraint terpenuhi

🧠 Quiz Time!

Pertanyaan 2:

MRV heuristic memilih variabel dengan:

A. Domain terbesar
B. Domain terkecil βœ“
C. Constraint paling sedikit
D. Constraint paling banyak

MRV = "Fail-First" β†’ Temukan failure lebih awal!

🧠 Quiz Time!

Pertanyaan 3:

Kompleksitas waktu algoritma AC-3 adalah:

A. O(nΒ²)
B. O(ndΒ²)
C. O(edΒ³) βœ“
D. O(2ⁿ)

πŸ“ Ringkasan

Konsep Deskripsi
CSP Variabel + Domain + Constraint
Node Consistency Unary constraint satisfaction
Arc Consistency Binary constraint support
AC-3 O(edΒ³) arc consistency
MRV + Degree Variable ordering heuristics
LCV Value ordering heuristic
Forward Checking Early failure detection

πŸ“… Pertemuan Berikutnya

Pertemuan 07: Review dan Latihan Komprehensif

Persiapan Ujian Tengah Semester (UTS)

  • Review Pertemuan 1-6
  • Latihan soal komprehensif
  • Tips mengerjakan UTS

πŸ“š Referensi

  1. Russell, S. & Norvig, P. (2020). Artificial Intelligence: A Modern Approach (4th Ed.). Pearson. Chapter 6
  2. Poole, D.L. & Mackworth, A.K. (2023). Artificial Intelligence: Foundations of Computational Agents (3rd Ed.). Cambridge University Press. Chapter 4
  3. CS188 Berkeley AI Materials: https://inst.eecs.berkeley.edu/~cs188/

Terima Kasih

πŸ€– Kecerdasan Artifisial

Pertemuan 06: Constraint Satisfaction Problems (CSP)


Ada pertanyaan?