PTI480.07 - Constraint Satisfaction Problem
Transcript of PTI480.07 - Constraint Satisfaction Problem
-
7/29/2019 PTI480.07 - Constraint Satisfaction Problem
1/18
Constraint Satisfaction
Problems (CSP)M. JAUHARUL FUADY
-
7/29/2019 PTI480.07 - Constraint Satisfaction Problem
2/18
Pengertian
Merupakan bentuk khusus dari suatu masalah
State terdiri dari sejumlah variable Xiyang mempunyai nilaidari suatu domain Di.
Goal test adalah himpunan constraintyang harus dipenuhiberupa kombinasi nilai dari subset variable.
Solusi adalah suatu kombinasi assignment terhadap setiapvariable sehingga semua constraint terpenuhi.
Contoh masalah nyata
Penugasan kuliah (siapa mengajar apa)
Penjadwalan kuliah (kuliah kapan dan dimana)
Konfigurasi hardware (constraint: anggaran, spesifikasi, dsb)
-
7/29/2019 PTI480.07 - Constraint Satisfaction Problem
3/18
Contoh: Map Coloring
Variabel:
{ WA, NT, Q, NSW, V, SA, T }
Domain:
Di = { red, green, blue }
Constraint:Dua wilayah berbatasanharus berbeda warna
WA NT, NT SA,
(WA, NT) { (red,green),(red, blue), (green, red),(green, blue), }
-
7/29/2019 PTI480.07 - Constraint Satisfaction Problem
4/18
Contoh Solusi: Map Coloring
Solusi:
Pemberian nilai setiapvariabel yang memenuhisyarat (tidak melanggar
constraint)
Misal:
{ WA = red, NT =green,Q = red, NSW =green,
V = red, SA = blue,T =green }
-
7/29/2019 PTI480.07 - Constraint Satisfaction Problem
5/18
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 X1 + W + W = U + 10X2X2 + T + T = O + 10X3 F = X3
alldiff(F, O, R, T, U, W)
-
7/29/2019 PTI480.07 - Constraint Satisfaction Problem
6/18
Penyelesaian: Uninformed Search
Formulasi masalah CSP sebagai search
Initial state: assignment kosong { }
Successor function:pilih nilai untuk sebuah variabel yang belum di-assign yangdiperbolehkan (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
-
7/29/2019 PTI480.07 - Constraint Satisfaction Problem
7/18
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 satuvariabel saja
b = d, sehingga terdapat dn leaf
disebut juga backtracking search
Merupakan algoritma uninformedstandar untukmasalah CSP
-
7/29/2019 PTI480.07 - Constraint Satisfaction Problem
8/18
Contoh eksekusi Backtracking Search
-
7/29/2019 PTI480.07 - Constraint Satisfaction Problem
9/18
Mempercepat Penyelesaian CSP
Kinerja backtracking search dapat diperbaikidengan menentukan urutan pemilihan variabel dannilai 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 adanyafailure lebih awal? Bisakah struktur masalah CSP tersebut kita manfaatkan?
(dengan menggunakan representasi yang jelas)
-
7/29/2019 PTI480.07 - Constraint Satisfaction Problem
10/18
Heuristic 1: Most Constrained Variable
Prinsip
Pilih variabel yang memiliki kemungkinan nilai sah (nilai yangtidak melanggar constraint) paling sedikit.
-
7/29/2019 PTI480.07 - Constraint Satisfaction Problem
11/18
Heuristic 2: Most Constraining Variable
Prinsip
Pilih variableyang paling banyak terlibat constraint denganvariable lain.
Sebagai tie-breakerjika ada beberapa variableyang samabagusnya dari heuristic 1.
-
7/29/2019 PTI480.07 - Constraint Satisfaction Problem
12/18
Heuristic 3: Least Constraining Value
Prinsip
Pilih nilai yang paling sedikit menimbulkan batasankemungkinan nilai pada variable lain yang belum di-assign.
-
7/29/2019 PTI480.07 - Constraint Satisfaction Problem
13/18
Forward Checking
Prinsip
Catat kemungkinan nilai sah untuk semua variable yangbelum di-assign. Jika ada sebuah variable yang tidakmempunyai nilai sah, langsungfailure (backtrack dini).
-
7/29/2019 PTI480.07 - Constraint Satisfaction Problem
14/18
Constraint Propagation
Informasi dari suatu variableyang di-assignyangditeruskan ke variable lain disebut juga denganconstraint propagation.
Namun, tidak semua failure bisa dideteksi dini.
-
7/29/2019 PTI480.07 - Constraint Satisfaction Problem
15/18
Arc Consistency
Merupakan metode constraint propagation yanglebih canggih, dengan mempertahankan konsistensiantar constraint.
PrinsipX Y dikatakan konsisten jika dan hanya jika untuk setiapnilai sah x dari X ada nilai sah y dari Y.
-
7/29/2019 PTI480.07 - Constraint Satisfaction Problem
16/18
Penyelesaian dengan Local Search
Dalam praktek, local search cocok untuk CSP.
State harus lengkap/complete tapi boleh melanggarconstraint.
Operator/action: menukar nilai variable (reassign).
Pemilihan variable: pilih acak variable yangmelanggar constraint.
Pemilihan nilai: heuristic minimum conflict(pilih nilai yang melanggar constraint paling sedikit)
Lakukan local search dengan meminimalkan h(n)
-
7/29/2019 PTI480.07 - Constraint Satisfaction Problem
17/18
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
-
7/29/2019 PTI480.07 - Constraint Satisfaction Problem
18/18
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 sangatmempengaruhi kinerja
Forward checking dan arc consistency adalah bentukconstraint propagation untuk mendeteksi failure dini
Metode local search dengan heuristic min-conflictcukup efektif untuk CSP