You are on page 1of 18

Constraint Satisfaction Problems (CSP)

M. JAUHARUL FUADY

Pengertian
Merupakan bentuk khusus dari suatu masalah
State terdiri dari sejumlah variable Xi yang mempunyai nilai dari suatu domain Di. Goal test adalah himpunan constraint yang harus dipenuhi berupa kombinasi nilai dari subset variable. Solusi adalah suatu kombinasi assignment terhadap setiap variable sehingga semua constraint terpenuhi.

Contoh masalah nyata


Penugasan kuliah (siapa mengajar apa) Penjadwalan kuliah (kuliah kapan dan dimana) Konfigurasi hardware (constraint: anggaran, spesifikasi, dsb)

Contoh: Map Coloring


Variabel:
{ WA, NT, Q, NSW, V, SA, T }

Domain:
Di = { red, green, blue }

Constraint:
Dua wilayah berbatasan harus berbeda warna WA NT, NT SA, (WA, NT) { (red, green), (red, blue), (green, red), (green, blue), }

Contoh Solusi: Map Coloring


Solusi:
Pemberian nilai setiap variabel yang memenuhi syarat (tidak melanggar constraint)

Misal:
{ WA = red, NT = green, Q = red, NSW = green, V = red, SA = blue, T = green }

Contoh Lain: Cryptarithmetic

Variabel: { F, O, R, T, U, W, X1, X2, X3 } Domain: Di = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 } Constraint: O + O = R + 10X1


X2 + T + T = O + 10X3 X1 + W + W = U + 10X2 F = X3

alldiff(F, O, R, T, U, W)

Penyelesaian: Uninformed Search


Formulasi masalah CSP sebagai search
Initial state: assignment kosong { } Successor function: pilih nilai untuk sebuah variabel yang belum di-assign yang diperbolehkan (tidak menyebabkan konflik). Jika tidak ada: gagal! Goal test: apakah assignment sudah lengkap

Bisa menyelesaikan semua masalah CSP


Solusi pasti ditemukan di depth n, dengan n adalah banyaknya variabel depth first search Inefisiensi: path tidak penting

Depth First Search pada CSP


Variable assignment berlaku komutatif
[WA=red lalu NT=green] sama saja dengan [NT=green lalu WA=red]

Pada tiap level, hanya perlu meng-assign satu variabel saja


b = d, sehingga terdapat dn leaf disebut juga backtracking search

Merupakan algoritma uninformed standar untuk masalah CSP

Contoh eksekusi Backtracking Search

Mempercepat Penyelesaian CSP


Kinerja backtracking search dapat diperbaiki dengan menentukan urutan pemilihan variabel dan nilai yang di-assign ke suatu variabel. Terdapat beberapa strategi tambahan (heuristics) yang dapat diberlakukan umum (general-purpose)
Variabel mana yang dipilih untuk di-assign terlebih dahulu? Nilai apa yang dipilih untuk di-assign? Apakah kita bisa mendeteksi adanya failure lebih awal? Bisakah struktur masalah CSP tersebut kita manfaatkan? (dengan menggunakan representasi yang jelas)

Heuristic 1: Most Constrained Variable


Prinsip
Pilih variabel yang memiliki kemungkinan nilai sah (nilai yang tidak melanggar constraint) paling sedikit.

Heuristic 2: Most Constraining Variable


Prinsip
Pilih variable yang paling banyak terlibat constraint dengan variable lain. Sebagai tie-breaker jika ada beberapa variable yang sama bagusnya dari heuristic 1.

Heuristic 3: Least Constraining Value


Prinsip
Pilih nilai yang paling sedikit menimbulkan batasan kemungkinan nilai pada variable lain yang belum di-assign.

Forward Checking
Prinsip
Catat kemungkinan nilai sah untuk semua variable yang belum di-assign. Jika ada sebuah variable yang tidak mempunyai nilai sah, langsung failure (backtrack dini).

Constraint Propagation
Informasi dari suatu variable yang di-assign yang diteruskan ke variable lain disebut juga dengan constraint propagation. Namun, tidak semua failure bisa dideteksi dini.

Arc Consistency
Merupakan metode constraint propagation yang lebih canggih, dengan mempertahankan konsistensi antar constraint. Prinsip
X Y dikatakan konsisten jika dan hanya jika untuk setiap nilai sah x dari X ada nilai sah y dari Y.

Penyelesaian dengan Local Search


Dalam praktek, local search cocok untuk CSP. State harus lengkap/complete tapi boleh melanggar constraint. Operator/action: menukar nilai variable (reassign). Pemilihan variable: pilih acak variable yang melanggar constraint. Pemilihan nilai: heuristic minimum conflict (pilih nilai yang melanggar constraint paling sedikit) Lakukan local search dengan meminimalkan h(n)

Local Search untuk CSP 4-Queens


State: 4 queen dalam 4 kolom (44 = 256 state) Operator/action: pindahkan queen dalam kolom Goal test: tidak ada yang saling makan Evaluation/fitness function: h(n) = jumlah pasangan yang saling makan

Ringkasan
CSP adalah masalah dalam bentuk spesifik
State berupa assignment nilai terhadap himpunan variable Goal test berupa constraint terhadap nilai variable

Backtracking search
Depth first search yang mempertimbangkan satu variable pada tiap level Heuristic urutan pemilihan variable dan nilai sangat mempengaruhi kinerja Forward checking dan arc consistency adalah bentuk constraint propagation untuk mendeteksi failure dini

Metode local search dengan heuristic min-conflict cukup efektif untuk CSP

You might also like