Mata Kuliah: Kecerdasan Artifisial (AI401) | 3 SKS
Setelah pertemuan ini, mahasiswa mampu:
Problem: Algoritma pencarian sebelumnya (BFS, DFS, A*) memperlakukan state sebagai "black box"
CSP memungkinkan kita:
Solusi: Assignment lengkap yang memenuhi semua constraint
| 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 | 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β) |
Gambar: Constraint graph untuk pewarnaan peta Australia
Variabel:
WA, NT, SA, Q, NSW, V, T
Domain:
{R, G, B} untuk semua
Constraint:
Gambar: Solusi valid 4-Queens dan constraint-nya
Variabel: Qβ, Qβ, ..., Qβ (satu ratu per kolom)
Domain: {1, 2, ..., N} (baris yang mungkin)
Constraint:
Variabel:
81 sel (Xββ ... Xββ)
Domain:
{1-9} atau singleton
Constraint:
Total: 27 Γ C(9,2) = 972 binary constraint
SEND + MORE = MONEY
Variabel: S, E, N, D, M, O, R, Y, Cβ, Cβ, Cβ, Cβ
Constraint:
| 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) |
Implikasi:
Tujuan:
Contoh:
D(Xβ) = {1, 2, 3}, D(Xβ) = {1, 2}, Constraint: Xβ < Xβ
Arc (Xβ, Xβ):
D(Xβ) = {1}
Arc (Xβ, Xβ):
D(Xβ) = {2}
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
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
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
Minimum Remaining Values
Pilih variabel dengan domain terkecil
Tiebreaker untuk MRV
Pilih yang constraint terbanyak
| 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!
Pilih nilai yang menghilangkan paling sedikit nilai dari domain tetangga
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)
Gambar: Domain dikurangi setelah setiap assignment
Map coloring: WA, NT, SA dengan D = {R, G, B}
Step 1: Assign WA = R
Step 2: Assign NT = G
Step 3: Assign SA = B β
Solusi: {WA: R, NT: G, SA: B}
Keuntungan:
Jika cutset berukuran c:
Kompleksitas: O(dc Γ (n-c)dΒ²)
Alokasi tim/unit ke sektor operasi dengan berbagai constraint
Alokasi frekuensi komunikasi tanpa interference
Penjadwalan patroli, operasi, dan shift personel
4 tim (Alpha, Bravo, Charlie, Delta) ke 4 sektor (S1-S4)
Constraint:
Solusi: Alpha:S4, Bravo:S2, Charlie:S1, Delta:S3
Pertanyaan 1:
Apa yang dimaksud dengan Arc Consistency?
Pertanyaan 2:
MRV heuristic memilih variabel dengan:
MRV = "Fail-First" β Temukan failure lebih awal!
Pertanyaan 3:
Kompleksitas waktu algoritma AC-3 adalah:
| 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 |
Persiapan Ujian Tengah Semester (UTS)
Pertemuan 06: Constraint Satisfaction Problems (CSP)
Ada pertanyaan?