You are on page 1of 8

ASSIGNMENT ARTIFICIAL INTELLIGENT

“CONSTRAINT SATISFACTION PROBLEM (CSP)”

DISUSUN OLEH SANDAG, GREEN A. 08520075

FAKULTAS ILMU KOMPUTER UNIVERSITAS KLABAT 2010

Constraint Satisfaction Problems merupakan sebuah pendekatan untuk menyelesaikan suatu masalah dengan tujuan menemukan keadaan atau obyek yang memenuhi sejumlah persyaratan atau criteria. Sebuah constraint diartikan sebagai sebuah batasan dari solusi yang memungkinkan dalam sebuah problem optimasi. Perbedaan antara Standard Search Problems dan Constaint Satisfaction Problems adalah: Standard Search Problems: state yang dimiliki adalah "black box“ yang merepresentasikan struktur data yang mendukung fungsi successor, fungsi heuristic dan goal test. Bentuk state terserah asal tersedia goal test dan successor function Constaint Satisfaction Problems: statenya didefinisikan sebagai sejumlah variable Xi yang nilainya dari domain/ranah Di . Goal test adalah himpunan constraint/syarat yang harus dipenuhi berupa kombinasi nilai dari subset variable. Solusi adalah penetapan nilai (assignment) terhadap semua variable sehingga semua syarat dipenuhi. Definisi ini adalah contoh bahasa representasi yang formal. Tersedia beberapa algoritma CSP yang lebih canggih dari algoritma search biasa. Prosedur pembatasan (Constraint Satisfaction) adalah sebagai berikut : 1. Pilihlah sebuah simpul yang belum dikembangkan dalam graph pencarian (search). 2. Terapkan aturan-aturan inferensi pembatas (constraint) untuk simpul yang dipilih untuk menghasilkan semua pembatasan baru yang dimungkinkan. 3. Jika himpunan pembatas berisi sebuah kontradiksi, maka laporkanlah bahwa lintasan ini terhenti. 4. Jika himpunan pembatas menggambarkan sebuah solusi yang lengkap, maka laporkan- lah adanya kesuksesan. 5. Jika tidak ditemukan adanya kontradiksi atau solusi lengkap, maka solusi-solusi parsial baru yang konsisten dengan himpunan pembatas saat ini. Sisipkan solusi-solusi parsial ke dalam graph pencarian (search).

Contoh CSP dalam mewarnai peta Australia:

 Variables WA, NT, Q, NSW, V, SA, T  Domains Di = {red,green,blue}  Constraints: 2 wilayah yang berbatasan harus berbeda warna: WA ≠ NT, NT ≠ SA, . . .(WA, NT) ϵ {(red, green), (red, blue), (green, red), (green, blue),…..} Contoh sulusi CSP mewarnai peta:

Solusi adalah pemberian nilai setiap variabel yang memenuhi syarat, mis: {WA = red, NT = green,Q = red,NSW = green, V = red, SA = blue, T = green}

Representasi CSP CSP biasanya direpresentasikan dengan sebuah graf, tanpa arah, disebut sebagai Constraint Graph, dengan node-nya adalah variable dan jalurnya adalah batasan yang dimiliki oleh node. Untuk batasan tunggal, dapat dilengkapi dengan mendefinisikan ulang domain yang ada sehingga mengisi variable tersebut. Constraint dengan batasan yang lebih tinggi dapat dinyatakan dalam arc(jalur berarah). Sebuah constraint akan dapat mempengaruhi satu atau lebih variable(1…n) dalam definisi permasalahan. Jika semua constraint dalam CSP adalah biner(ada minimal 2 variabel kemungkinan untuk solusi berikut), maka semua bariabel dan constraint dapat derepresentasikan dalam sebuah graf, dan algoritma CSP dapat diberlakukan untuk mengeksploitasi graf.

Constraint Graph Binary CSP: sebuah constraint menyangkut hubungan maksimal 2 variable. Constraint graph: representasi di mana node adalah variable, edge adalah constraint, misalkan:

CSP Dapat Dikelompokkan Menjadi 1. Berdasarkan nilai domain :  Variabel diskrit Domain berhingga (finite): dengan ukuran d, ada O(dn) kemungkinan assignment yang lengkap. Domain tak hingga(infinite), mis: integer, string, dll. Misalnya: penjadwalan (kuliah, bis, pekerjaan, dll.). Perlu constraint language, mis: +5≤ Integer CSP dengan linear constraint dapat diselesaikan  Variabel continuous: contohnya linear programming 2. Berdasarkan banyaknya variabel dengan jenis constraint :  Unary constraint: menyatakan persyaratan sebuah variabel, mis: SA ≠ green  Binary constraint: menyatakan persyaratan sepasang variabel, mis: SA ≠ WA  n-ary constraint (higher-order): menyatakan persyaratan tiga atau lebih variabel, misalnya: cryptarithmetic  Preference, atau soft constraint: syarat yang sebaiknya dipenuhi, tetapi tidak harus. Mis: r lebih baik dari g. Biasanya dinyatakan sebagai cost sebuah nilai variabel. 3. Apakah constraint merupakan keharusan atau preference :  Absolute: violation which rules out a potential solution  Preference: constraint yang dibuat sesuai dengan keinginan atau tidak mutlak ada. Keuntungan CSP:  Successor function dan goal test tidak problem specific  Heuristic function, tidak ada problem atau domain specific  Constraint graph dapat digunakan untuk menyederhanakan proses solusi Menyelesaikan CSP dengan search biasa: Mari kita mulai dengan pendekatan sederhana dengan mengformulasikan masalah CSP sebagai search Initial state: assignment kosong: {} Successor function: pilih nilai untuk sebuah variable yang belum di-assign yang sah: tidak konflik dengan assignment. Jika tidak ada: gagal! Goal test: apakah assignment sudah lengkap. Solusi pasti di depth n untuk n variabel → depth first search di sini Path tidak penting.

Backtracking search for CSP Variable assignment berlaku komutatif, dalam arti: [WA=red lalu NT=green] sama saja [NT=green lalu WA=red]. Pada tiap level, hanya perlu meng-assign satu variable b = d, ada leaf... Depth first search pada CSP dengan assignment satu variabel tiap level disebut backtracking search. Dalam metode ini, diperlukan penyusunan ulang dalam urutan pengisian variable. Cara yang paling efektif adalah dengan mencari solusi untuk variable dengan constraint terbanyak, atau

dengan domain yang paling sedikit. Urutan akan sangat menentukan cepat atau lambatnya solusi ditemukan. Algoritma dimulai dengan mengisikan variable dalam contraintnya, kemudian melakukan evaluasi terhadap constraint, apakah terpenuhi atau tidak. Lakukan hal yang sama, sampai semua variable terisi. Jika variable tidak dapat diisikan, maka harus dilakukan pengecekan ulang (backtracking), ke node di atasnya, atau variable sebelumnya.

Contoh backtracking

Performance CSP CSP dapat diselesaikan tanpa domain spesifik heuristic menggunakan General Purpose Method yang dapat meningkatkan speed atau kecepatan dalam proses pencarian Urutan pemilihan variable dan nilai mempengaruhi kinerja backtracking. Terdapat beberapa strategi yang berlaku secara umum (general-purpose): 1 Variable mana yang perlu di-assign terlebih dulu? 2 Nilai apakah yang perlu dicoba terlebih dulu? 3 Apakah kita bisa mendeteksi kepastian failure lebih awal? 4 Apakah kita bisa memanfaatkan struktur masalah CSP? (Representasinya jelas!) Most Constrained Variable Variabel yang paling dibatasi adalah memilih variable yang memiliki kemungkinan nilai sah paling sedikit

Most Constraining Variable Variable paling membatasi adalah memilih variable yang terlibat constraint dengan variable lain (yang belum di-assign) yang paling banyak.Tie − breaker : gunakan kalau ada 2 atau lebih variable yang sama bagusnya berdasarkan Most Constrained Variable.

Least Constraining Value Nilai paling membatasi adalah memilih nilai yang menimbulkan batasan kemungkinan nilai variable lain (yang belum di-assign) yang paling sedikit.

Jika ketiga prinsip ini digunakan, masalah n-queens dengan n=1000 bisa diselesaikan! Forward checking Catat kemungkinan nilai sah untuk semua variabel yang belum di-assign. Jika ada sebuah variable yang tidak ada kemungkinan nilai sah, langsung failure (backtrack). Teknik ini menggunakan constraint selama proses pencarian. Setiap kali variable X diassign nilai maka harus mencek setiap unassign variable Y yang terhubung dengan X. Kemudian hapus setiap nilai atau domain pada Y yang inconsistent dengan nilai yang dipilih untuk X.

Kelemahannya: tidak mendeteksi semua kegagalan di awal proses pencarian. Constraint propagation Forward checking mem-propagasi (meneruskan) informasi dari variable yang sudah di-assign ke yang belum. Secara umum, ini disebut constraint propagation. Namun, tidak semua failure bisa di-deteksi secara dini:

NT dan SA tetanggaan ! tidak boleh sama-sama biru!. Forward checking hanya mempertimbangkan setiap constraint secara terpisah. Jika tidak konsisten maka akan didelete variable tersebut. Sedangkan untuk proses constraint propagation itu mencek implikasi suatu constraint pada sebuah variable terhadap vaiable yang lain. Menggunakan teknik ini adalah merupakan tekni pencarian yang cepat. Jika untuk setiap nilai X yang ada pada variable A ada beberapa nilai Y dari variable B yang consistent dengan X, maka variable A dan variable B dikatakan consistent jika tidak consistent maka delete nilai pada variable B Arc Consistency Arc consistency adalah metode constraint propagation yang lebih canggih. Konsistensi antar constraint dipertahankan. Arc X → Y adalah edge satu arah dari variable X ke Y dalam constraint graph. Prinsip Arc Consistency X → Y dikatakan konsisten jika dan hanya jika untuk setiap nilai sah x dari X ada nilai sah y dari Y.

Algoritma AC3 Algoritma AC3 melakukan constraint propagation sbb: Periksa semua arc dalam constraint graph, jika untuk X → Y ada nilai sah x dari X sehingga tidak ada nilai sah y dari Y, buang x. Jika ada nilai x yang dibuang, periksa ulang semua “tetangga” X di dalam constraint graph. Algoritma AC3 ini bisa mendeteksi failure lebih cepat daripada forward checking. AC3 dapat dijalankan sebagai pra-proses sebelum melakukan backtracking, atau bisa dijalankan setelah setiap assignment.

Kelemahan dari Arc Consistency: tidak semua inconsistency dapat ditemukan oleh algoritma AC3. Ketika algoritma AC3, mengunjungi kembali jalur pada kesempatan kedua, algoritma ini akan melakukan evaluasi ulang terhadap nilai-nilai variable yang telah diketahui sebelumnya untuk mencapai kekonsistenan atau ketidak-konsistenan, dan tidak dipangaruhi oleh reduksi domain . karena adanya pengulangan evaluasi dan dinilai tidak efisien maka diperkenalkan algoritma AC4 untuk menangani constraint pada jalur(edge). Algoritma ini bekerja dengan nilai individual yang berpasangan. Submasalah independen

Assignment T (Tasmania) adalah submasalah independen. Andaikan CSP dengan n variabel ! submasalah masing-masiang c variabel: Dari O( ) menjadi O(n/c × ) misalkan boolean CSP n = 80, d = 2, c = 20, bisa memproses 10 juta node/detik ≈ 4 miliar tahun jadi 4 x Pendekatan local search untuk solusi CSP Dalam praktek, local search cocok untuk CSP. State harus lengkap/complete (semua variable harus ter-assign) tapi boleh melanggar constraint. Operator/action-nya: menukar nilai variabel (reassign). Pemilihan variable: pilih secara acak variable yang melanggar sebuah constraint. Pemilihan nilai: gunakan heuristic minimum conflict: pilih nilai yang melanggar constraint paling sedikit. Lakukan local search (hillclimb, simulated annealing, genetic algorithm, dll.) meminimalkan h(n) = jumlah pelanggaran constraint. Perhatian: secara teoritis pendekatan ini tidak dijamin complete. Local search untuk CSP Contoh masalah 4-queens: State: 4 menteri dalam 4 kolom (44 = 256 state) Operator/action: pindahkan menteri dalam kolom Goal test: tidak ada menteri saling makan Evaluation/fitness function: h(n) = jumlah pasangan menteri saling makan

Metode inin bisa menyelesaikan 1000000-queens problem!