CSP merupakan pendekatan untuk memecahkan masalah matematis dengan menemukan solusi yang memenuhi sejumlah kendala. Terdiri dari variabel, domain nilai, dan kendala antarvariabel. Solusinya adalah penugasan nilai variabel tanpa melanggar kendala. Algoritmanya mencoba penugasan nilai secara berurutan menggunakan backtracking dan propagasi kendala.
2. Constraint Satisfaction Problem (CSP)
• Sebuah pendekatan dari problem yang bersifat
matematis dengan tujuan menemukan keadaan atau
obyek yang memenuhi sejumlah persyaratan
(constraint) atau kriteria yang sudah ditetapkan.
• Constraint adalah sebuah batasan dari solusi
memungkinkan dalam sebuah problem optimasi.
3. Constraint Satisfaction Problem (CSP)
a. Himpunan variabel {X1, X2, …, Xn}
b. Himpunan constraint (batasan/persyaratan) : {C1, C2, Cn}.
c. Setiap variabel Xi, memiliki domain Di yang tidak kosong,
sesuai nilai-nilai yang dimungkinkan
d. Setiap constraint Ci terdiri dari suatu subset dari variabel
dan memenuhi kombinasi nilai yang diijinkan untuk subset
tersebut
e. Sebuah state dari problem didefinisikan dengan sebuah
assignment nilai untuk satu atau semua variabel : {Xi=vi,
Xj=vj, ....., }
f. Solusi untuk CSP adalah tugas lengkap yang tidak melanggar
semua kendala
4. Komponen Constraint Satisfaction Problem
(CSP)
a. Variabel, merupakan penampung, dan dapat diisi berbagai nilai.
b. Constraint yang merupakan suatu aturan yang ditentukan untuk
mengatur nilai boleh diisikan ke variabel, atau kombinasi variabel.
c. Domain yang merupakan kumpulan nilai legal dapat diisi ke variabel.
d. Goal test adalah himpunan constraint/syarat yang harus dipenuhi
berupa kombinasi nilai dari subset variable.
e. Solusi adalah penetapan nilai (assignment) terhadap semua variabel
sehingga semua syarat dipenuhi
f. CSP dimulai dari solusi kosong dan diakhiri dengan sebuah solusi yang
memenuhi semua constraint (consistent).
g. Pencarian solusi dilakukan dengan mencoba mengisi nilai domain
pada setiap variabel satu demi satu tanpa melanggar constraint,
sampai solusi ditemukan.
5. Jenis-Jenis Constraint
a. Unary Constraint: menyatakan persyaratan sebuah
variabel (mis: SA ≠ g)
b. Binary constraint : menyatakan persyaratan sepasang
variabel, mis: SA ≠ WA
c. n-ary constraint (Higher-Order) : menyatakan
persyaratan tiga atau lebih variabel (constrain untuk >2
variabel)
d. Preferences Constraint (Soft Constraints) : syarat yang
sebaiknya dipenuhi, tetapi tidak harus. Mis: red lebih
baik dari green. Biasanya dinyatakan sebagai cost sebuah
nilai variabel.
6. Beberapa problem yang dikategorikan
CSP :
a. pewarnaan peta (map coloring)
b. n-queen problem
c. Teka-Teki Silang
d. Penjadwalan
c. Dsb
7. Constraint Satisfaction Problem (CSP)
• Contoh : Diketahui sebuah peta Australia dengan beberapa
kota seperti gambar di bawah. Lakukan pewarnaan, dimana
setiap kota yang saling berbatasan tidak boleh mempunyai
warna yang sama. Jenis warna : Red, Green, Blue
8. Representasi CSP sebagai Graph
• Constraint Graph : representasi
di mana node adalah variable,
edge adalah constraint, mis:
• Contoh : Nilai WA dibatasi
dengan constraint dari nilai NT
dan SA, sehingga node WA
memiliki edge terhubung ke
node NT dan SA
• T tidak dipengaruhi apapun,
sehingga node T menjadi
subgraph
9. Inisialisasi Pewarnaan Peta Australia
Terdapat set variabel X1,X2,...,Xn
Variables WA, NT, Q, NSW, V, SA, dan T untuk negara bagian
Western Australia, Northern Territory, Queensland, New Soutg
Wales, Victoria, South Australia, Tasmania
Domains Di = {red,green,blue}
Constraints: adjacent region memiliki warna berbeda
Mis : WA ≠ NT, atau (WA,NT) in {(red,green), (red,blue),
(green,red), (green,blue), (blue,red), (blue,green)}
Ini berarti :
- X = {WA, NT, Q, NSW, V, SA, T }
- D = {Red, Green, Blue}
- C = { SA WA, SA NT, SA Q, SA NSW, SA V, dst}
- Pasangan WA dan NT : {(red; green); (red; blue); (green; red);
(green; blue); (blue; red); (blue; green)}:
10. Constraint Satisfaction Problem (CSP)
• Solusi : pemberian nilai setiap variabel yang memenuhi
syarat.
• Mis : {WA=red, NT=green, Q=red, NSW=green, V=red,
SA=blue, T=green}
• Contoh salah satu solusi :
11. Algoritma Untuk Solusi CSP
a. Backtracking Search : Pemilihan state yang memenuhi
syarat constraint
b. Constraint propagation (Inference, dugaan solusi) :
– Menggunakan constraint untuk mengurangi jumlah
kemungkinan nilai pada variabel dan sebaliknya
– pendekatan: forward checking, arc consistency
12. Algoritma CSP 1 : Backtracking
a. Backtracking search adalah suatu bentuk algoritma depth-
first-search untuk CSP dengan pemberian nilai pada single-
variable
b. Backtracking dapat dilihat sebagaimana searching dalam
tree, karena setiap node mewakili state dan turunan dari
setiap node mewakili eksistensi dari state tersebut.
c. Pada backtracking search, variabel diisi secara sequential
selagi semua variabel relevan dengan constraint yang
sudah diinisialisasi.
d. Jika solusi partial melanggar constraint, backtracking
melakukan langkah kembali ke solusi partial sebelumnya
dan memilih nilai lain yang belum dicoba untuk variabel
yang ingin diisikan.
13. Constraint Satisfaction Problem (CSP)
e. Langkah tersebut berguna untuk menghindari eksplorasi
lebih lanjut dari solusi partial yang salah.
f. Keuntungan backtracking : pemeriksaan consistency hanya
perlu dilakukan terhadap assignment yang terakhir
dilakukan karena pemeriksaan terhadap assignment yang
sebelumnya sudah dilakukan sebelumnya.
g. Ketika suatu nilai diisikan ke suatu variabel, nilai yang
berada di domain dari variabel yang konflik dengan
assignment tersebut akan dihilangkan dari domain.
14. Backtracking Search
a. Variabel assignment berlaku komutatif, yang
berati : [WA=red lalu NT=green] sama saja
[NT=green lalu WA=red]
b. Depth first search pada CSP dengan assignment
satu variabel tiap level disebut backtracking
search.
16. Langkah Penting Backtracking
a. SELECT-UNASSIGNED-VARIABLE (urutan pemilihan variabel)
Most Constrained Variable (Minimum Remaining Values, MRV)
1. Pilih variabel dengan variasi kemungkinan nilai paling sedikit
2. Jika >1 variabel, maka digunakan Most Constraining
Variable
Most Constraining Variable (MCV)
1. Pilih variabel yang memiliki jumlah constraint lebih banyak
b. ORDER-DOMAIN-VALUES (urutan pemilihan nilai dari variabel)
Least Constraining Value (LCV)
1. Pilih nilai variabel yang memiliki constraint lebih sedikit untuk
variabel lain
2. Atau pilih nilai variabel yang membuat variabel lain memiliki
kemungkinan pilihan nilai lebih banyak
19. Algoritma CSP 2 : Constraint Propagation
• Pendekatan Forward Checking
Cara termudah untuk menghindari konflik isi variabel
b. Melalui forward checking hanya akan dievaluasi constraint antara
variabel saat ini dan variabel berikutnya. Jika suatu nilai dialokasikan
untuk variabel saat ini, maka nilai apapun dari variabel berikutnya
yang dapat membawa konflik dari variabel saat ini akan disingkirkan
dari domain.
c. Keuntungannya adalah jika domain dari variabel berikutnya adalah
kosong, maka segera diketahui bahwa solusi yang terbentuk ternyata
salah.
d. Dengan forward checking, maka pencabangan dari pohon pencarian
akan dipangkas lebih awal, dibanding dengan backtracking.
e. Catat kemungkinan nilai sah (konsisten) untuk semua variabel yang
belum di-assign. Jika ada sebuah variabel yang tidak ada kemungkinan
nilai sah, langsung failure (backtrack)
20. Ide Forward Checking
a. Tahap Inisialisasi
b. Simpan nilai valid untuk variabel yang belum di-assign
c. Bila salah satu variabel tidak mempunyai kemungkinan nilai yang
valid maka search dihentikan (Backtrack untuk pilihan lain)
Contoh Solusi : Tahap Inisialisasi
24. Constraint Satisfaction Problem (CSP)
Perhatikan permasalahan di atas : NT dan SA berwarna sama
yakni biru, padahal NT dan SA bertetangga, sehingga hal
ini tidak diperbolehkan
Perhatikan :
• Forward checking hanya mempertimbangkan setiap
constraint secara terpisah.
• Forward checking memberikan informasi dari variabel
yang dialokasi, namun tidak dapat mendeteksi kegagalan
sebelumnya.
• Namun, tidak semua failure bisa di-deteksi secara dini