csp

2
CSP adalah suatu permasalahan seseorang harus mencari nilai untuk set variabel (finite) yang memenuhi set constraint (finite) [6, 7]. CSP terdiri dari komponenkomponen berikut: _ Variabel, yang merupakan penampung dapat diisi berbagai nilai. _ Constraint yang merupakan suatu aturan yang ditentukan untuk mengatur nilai boleh diisikan ke variabel, atau kombinasi variabel. _ Domain yang merupakan kumpulan nilai legal dapat diisi ke variabel. _ Solusi yang merupakan assignment nilai-nilai dari domain ke setiap variabel tidak ada constraint yang dilanggar. CSP dimulai dari solusi kosong dan diakhiri dengan sebuah solusi yang memenuhi semua constraint (consistent). Pencarian solusi dilakukan dengan mencoba mengisi nilai domain pada setiap variabel satu demi satu tanpa melanggar constraint, sampai solusi ditemukan. Backtracking : Algoritma yang paling banyak dipakai untuk melakukan pencarian sistematik untuk menyelesaikan CSP adalah backtracking. Algoritma backtracking search (penelusuran kembali) adalah suatu bentuk algoritma depth-first-search. Backtracking dapat dilihat sebagaimana searching dalam tree, karena setiap node mewakili state dan turunan dari setiap node mewakili ekstensi dari state tersebut. Pada metode backtracking, variabel diisi secara sequential selagi semua variabel relevan dengan constraint yang sudah diinisialisasi. 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. Langkah tersebut berguna untuk menghindari eksplorasi lebih lanjut dari solusi partial yang salah. Keuntungan backtracking adalah pemeriksaan consistency hanya perlu dilakukan terhadap assignment yang terakhir dilakukan karena pemeriksaan terhadap assignment yang sebelumnya sudah dilakukan sebelumnya. Pada algoritma backtracking, teknik look ahead digunakan untuk meramalkan efek pemilihan variabel branching untuk mengevaluasi nilai-nilai variabel tersebut. Forward checking adalah salah satu cara untuk melakukan look ahead. Forward checking mencegah terjadinya konflik dengan melarang nilai-nilai yang belum diisikan ke variabel untuk dipakai. Ketika suatu nilai diisikan ke suatu variabel,

Upload: putranti-puji-purnomo

Post on 16-Feb-2016

229 views

Category:

Documents


1 download

DESCRIPTION

Algoritma CSP

TRANSCRIPT

Page 1: Csp

CSP adalah suatu permasalahan seseorang harusmencari nilai untuk set variabel (finite) yang memenuhiset constraint (finite) [6, 7]. CSP terdiri dari komponenkomponenberikut:_ Variabel, yang merupakan penampung dapat diisi berbagainilai._ Constraint yang merupakan suatu aturan yang ditentukanuntuk mengatur nilai boleh diisikan ke variabel,atau kombinasi variabel._ Domain yang merupakan kumpulan nilai legal dapatdiisi ke variabel._ Solusi yang merupakan assignment nilai-nilai daridomain ke setiap variabel tidak ada constraint yangdilanggar.CSP dimulai dari solusi kosong dan diakhiri dengan sebuahsolusi yang memenuhi semua constraint (consistent).Pencarian solusi dilakukan dengan mencoba mengisi nilaidomain pada setiap variabel satu demi satu tanpa melanggarconstraint, sampai solusi ditemukan.

Backtracking :

Algoritma yang paling banyak dipakai untuk melakukanpencarian sistematik untuk menyelesaikan CSP adalah backtracking.Algoritma backtracking search (penelusuran kembali)adalah suatu bentuk algoritma depth-first-search. Backtrackingdapat dilihat sebagaimana searching dalam tree,karena setiap node mewakili state dan turunan dari setiapnode mewakili ekstensi dari state tersebut.Pada metode backtracking, variabel diisi secara sequentialselagi semua variabel relevan dengan constraint yangsudah diinisialisasi. Jika solusi partial melanggar constraint,backtracking melakukan langkah kembali ke solusi partialsebelumnya dan memilih nilai lain yang belum dicoba untukvariabel yang ingin diisikan. Langkah tersebut bergunauntuk menghindari eksplorasi lebih lanjut dari solusi partialyang salah. Keuntungan backtracking adalah pemeriksaanconsistency hanya perlu dilakukan terhadap assignmentyang terakhir dilakukan karena pemeriksaan terhadapassignment yang sebelumnya sudah dilakukan sebelumnya.Pada algoritma backtracking, teknik look ahead digunakanuntuk meramalkan efek pemilihan variabel branchinguntuk mengevaluasi nilai-nilai variabel tersebut. Forwardchecking adalah salah satu cara untuk melakukan lookahead. Forward checking mencegah terjadinya konflik denganmelarang nilai-nilai yang belum diisikan ke variabeluntuk dipakai. Ketika suatu nilai diisikan ke suatu variabel,nilai yang berada di domain dari variabel yang konflik denganassignment tersebut akan dihilangkan dari domain.Minimum Remaining Value (MRV) adalah suatu teknikyang dikembangkan untuk menangani masalah kemungkinanbesar gagal pada pencarian menggunakan CSP.MRV berkerja dengan memilih variabel yang memiliki domainlegal dan paling sedikit (memiliki kemungkinan untukmembuat suatu dead-end paling besar) untuk diisikan

Page 2: Csp

terlebih dulu.

Penelusuran dengan Backtracking (BT).Algoritma backtracking menggunakan Constructivemethods, yang berarti mengembangkan solusi partialsedikit demi sedikit dengan tetap menjaga consistency,sehingga mencapai consistent complete assignment.2. Forward Checking (FC).Forward checking berkerja dengan membuat suatutabel yang menyatakan nilai domain yang masih tersediauntuk setiap variabel. Kemudian pada tabel inidihilangkan domain yang sudah tidak boleh diambillagi.3. Minimum Remaining Value (MRV).Minimum remaining value dapat bekerja bersamaandengan FC dengan memilihkan variabel yang diisikan.Variabel yang dipilih adalah variabel yang memilikidomain paling sedikit. Pertimbangan yang digunakanadalah variabel yang jumlah domain-nyapaling sedikit mempunyai kesempatan gagal lebihbesar. Hal ini dapat memotong percabangan treeyang tidak perlu dan mempercepat waktu pembuatanjadwal.