Anda di halaman 1dari 23

BAB 2 LANDASAN TEORI

2.1 Constraint S atisfaction Problem 2.1.1 PengertianDasar Const raint adalah batasandalam pengertianyang paling sederhana.Dalam kehidupan sehari-hari,mungkin sering didengarkalimat sepertiberikut: pekerjaan itu harus selesai sebelumjam 10 m alam , seorangguru cum a dapatm engajarm aksim altiga kelas dalam sehari,persegi panjangharusberadadi sebelahkiri dari lingkaran.S eseorang dapatmelakukan apa saja dalam hal ini kecua li m elanggar const raint, m isal nya dia dapatm enggeser persegi panjangke m ana saja sepanjang persegi panjangitu ad a di sebelahkiri lingkaran, dia dapatm engajarkelas seba nyak m ungkin asal janganlebih dari tiga untuk hari apa saja,dia dapatm enyelesaikanpekerjaankapansaja asal sebelumjam 10 m alam . Dari kehidupan sehari-hariini definisi constraint dibuat sedikit lebih ilmiah. Const raint adalah relasi logis di antarabeberapa variabel, yang m asing-m asing m engam bilsebuah nilai dalam sebuah domain . Jadi const raint itu m em batasi nilai yang dapat diambil oleh variabel terse but. Dalam contoh guru m engajarkelas sebanyak m ungkin asal janganlebih dari tiga untuk hari apa saja,variabel nya adalahjum lah kelas yang diambil guru, domain -nya adalahbilanganasli, batasan nya adalahvariabel yang bersangkutan tidak boleh lebih dari tiga . Constraint seringdigunakan dalam percakapan sehari-hari jika dilihat definisi paragraf di atas. Um um nya orang jarang m enyelesaikanm asalahdengansatu const raint seperti dalam contoh di atas,tetapi m asalah-m asalah yang ada biasa nya disertai dengankoleksi const raint yang jarang berkaitan. Hal ini tentu saja m em perum itm asalah. Sebelum nya penyebutan m asalahdenganconst raint ini distandarkan.Komunitas internasional memberi nam a const raint satisfaction problem kepada m asalah dengan const raint ini. Masa- lah optim alisasipenjad walan pekerjaan term asukconst raint satisfactionproblem , tepat-

7 nya const raint satisfactionoptimizationproblem. P erbedaan const raint satisfactionproblem denganconst raint satisfactionoptimizationproblem akan dibahasnanti nya. Dari sini juga dapat diam bil pengertian dari penyelesaian terhadap const raint satisfaction

problem. Penyelesaian dari const raint satisfaction problem adalah pem berian nilai terhadap sem ua variabel dari domain m asing-m asing variabel yang berkaitan di m ana sem uaconstraint di- penuhi. Dalam contoh guru m engajarkelas seba nyak m ungkin asal jangan lebih dari tiga untuk hari apa saja, pe nyelesaian dari const raint satisfaction problem ini adalah variabel yang bersangkutan(jum lah kelas yang diam bil guru) m endapat nilai 1 atau 2 atau 3 karenanilai 1 atau 2 atau 3 beradapada domain variabel itu (bilanganasli) dan tidak m elangg ar constraint (tidak boleh lebih dari tiga). Untuk m enyelesaikan m asalah const raint satisfaction problem , diperlukan

constraint programming .

Const raint programming adalah pem belajaran sistem

kom putasi berdasa r- kan const raint. Ide utam a dari const raint programming ini adalah m enyelesaikanm asalahdengan m enyatakan const raint (kondisi, sifat, kebutuhan) yang harus dipenuhi oleh solusi. Dengan kata lain, const raint program m ing adalah

pendekatan alternatif terhadap pemro- gram anyang berisikanperm odelan suatum asalah sebagaihim punankebutuhan (constra- int) yang berurutan diselesaikan m etode um um ataupunspesifikuntuk domain(Krzysztof Apt, 2005,p1). 2.1.2 D efinisiForm al Constraint Satisfaction Problem Berikut adalah definisi form al dari hal-hal yang berhu bungandenganconstraint satisfaction problem. Definisi1. Sebuah Domain berisikan nilai yang dapatdiambil oleh sebuah variabel. S ebuah domain itu bersi fat khususuntuk sebuah variabel. Jadi m asing-m asing variabel itu memiliki dom ain -nya m asing-m asing. Kesepakatan um um m em berihuruf kapital D untuk m enyebut dom ain . Berikut adalahcontohuntuk dom aindari variabel x. (nilai x) Dx

8 Domain dalam const raint satisfactionproblem sering nya memiliki anggotabilangan bulat. A nggotasebuah dom ainboleh saja bukan num erik. H al yang dapatm enjadianggota dari sebuah domain adalahsimbol. Contoh anggotadom ain yang bukan num erik adalah nam abulan dalam satu tahun. A nggotadom ain -nya adalahJanuari,Februari,M aret, April, Mei, Juni, Juli, Agustus,Septem be r, Oktobe r, Novem be r, dan Desember. Definisi2. Sebuah label adalahpem beriannilai dari dom ain sebuah variabel ke variabel itu. Jika ingin memberinilai v ke variabelx digunakan notasi <x,v >. Tentunya v Dx . Definisi3. Kum pulan label adalahtupel dari label. Kum pulan label digunakanuntuk menyatakan pem beriannilai-nilai ke variabel yang jumlah nya lebih dari satu. Digunakan notasi tupel (<x1 , v1 ><x2 , v2 >. . .<xn , vn >) untuk menyatakan kumpulan label dari pemberianv1 , v2 , . . . , vn padax1 , x2 , . . . , xn . Karena kumpulanlabel adalahtupel, urutan dari label pada representasi ini menjadi tidak signifikan. Dengan kata lain, (<x, a><y, b><z, c>) dianggap sam a seperti kumpulanlabel (<y, b><x, a><z, c>), (<z, c><x, a><y, b>), dan lain-lain. Di sam ping itu, adalahpentinguntuk mengingatbahwa tupel tidak memiliki anggotayang sama. S ebuah const raint pada sebuah him punan variabel m em batasinilai yang dapat

diambil secara bersam aan.M enurut konsep, sebuah const raint dapat dilihat sebagai sebuah him- punan yang memiliki sem uakum pulanlabel yang valid pada variabel yang bersangkutan(Edward Tsang, 1996, p7). Walaupun begitu, pada kenyataan nya di lapangan, constra- int dapat dinyatakan dengan banyak cara, contoh nya, fungsi, pertidaksam aan, matriks, dan lain-lain. Definisi4.

9 Sebuah co nstrain m t enurutkonsep adalahsebuah him punankum pulanlabel pada variabel yang berkaitan.DigunakanCs untuk m enyatakanconst raint pada himpunan variabelS . Bila ada m asalah,solusi tentu ingin dicari. Dalam constraint satisfactionproblem, sebelumsolusi const raint satisfactionproblem secaram atem atikadibahas,akan dibahas pengertianpem enuhan const raint. Sebenar nya pem enuhan const raint adalah relasi binari antarasebuah label atau sebuah kum pulanlabel dengansebuah constraint. Definisi5. Jika variabelvariabel dari kumpulanlabel X adalahsam adenganvariabelvariabel dari elem en kum pulan label pada const raint C, m aka X m em enuhiconstraintC jika dan hanya jika X adalahelem endari C: memenuhic onstraint( (<x1 , v1 ><x2 , v2 >. . . <xk , vk >), Cx1 ,x2 ,...,x k ) (<x1 , v1 ><x2 , v2 >. . . <xk , vk >) Cx1 ,x2 ,...,xk Mem enuhiconst raint juga didefinisikanantaralabel dan constraint unari. Definisi6. memenuhic onstraint(<x, v >, Cx ) (<x, v >) Cx Jika dikatakankumpulanlabel L memenuhiconstraint C , itu artinya jika C adalah se- buah const raint pada variabel x1 , x2 , . . . , xk atau subse t-nya, m aka label pada variabel itu dalam L adalah valid sepanjangC dipenuhi. Untuk contoh nya, (<a, 1><b, 2><c, 3><d, 4>) memenuhiconstraint Cc,d jika dan hanya jika (<c, 3><d, 4>) adalah anggotaCc,d : Cc,d = . . ., (<c, 3><d, 4>), . . . S etelahberba gai hal yang m erupakanbagian dari constraint satisfactionproblem itu sudahdidefinisikan,pekerjaanm endefinisikan const raint satisfactionproblem itu menjadi

10 m udah. Sebelum nya untuk m enyegarkan ingatan,dalam bahasaum um const raint satisfaction problem adalahsebuah m asalahdengansebuah him punanvariabel denganjumlah berhingga,m asing-m asing diasosiasikan dengansebuah domain denganjum lah anggota berhinggajuga, dan sebuah him punan const raint yang m em batasinilai yang dapat diambil oleh variabelvariabel ini secarabersam aan. Berikut diberikan definis i formal dari constraint satisfactionproblem. Definisi7. Sebuah constraint satisfaction problemadalahsebuah him punandengantiga variabel: (Z, D, C ) di m ana Z = sebuah him punan dari variabelvariabel denganjumlah berhingg a x1 , x2 , . . . , xn ; D = sebuah fungsi yang m em etakansetiapvariabel padaZ ke sebuah himpunan dari objek-objek: D : Z him punanobjek-objekdenganjum lah berhingga(jenis apa pun). Disebut Dxi sebagaihim punandari objek-objekyang dipetakandari xi oleh D. Objek-objek ini adalah nilai-nilai yang mungkin bagi xi dan himpunanDxi sebagai domain xi ; C = sebuah him punanconst raint yang berhingga(yang memiliki kemungkinankoson g) atas sebuah su bsetvariabelvariabel di Z . Dengankata lain, C adalah se- buah him punanatas kum pulanlabel. Digunakancsp(P) untuk m enyatakanP adalahconst raint satisfactionproblem. Cx1 ,x2 ,...,x k m em batasi him punan kum pulan label yang x1 , x2 , . . . , dan xk yang dapat diambil secara bersam aan. S ebagai contoh, jika variabel x hanya dapat m engam bilnilai a, b dan c, m a ka ditulis Cx = (<x, a>), (<x, b>), (<x, c>). Perhatikan perbedaan antara

Cx dan Dx : Cx adalahsebuah him punan kum pulan label sem entara Dx adalah sebuah himpunannilai. Nilai x yang m ungkin juga harus m em enuhiconst raint selain Cx . Hal itu berarti walaupun<x, a> memenuhiCx , a mungkin bukan nilai yang valid bagi x untuk keseluruhan m asalah.Untuk m endapatkan label yang valid, <x, a> mesti memenuhi sem uaconst raint yang m engandung constraintx, contoh nya Cx,y , Cx,y,z , dan lain-lain. Berikut adalahpengertian m atem atika dari solus i a ta sconstraint satisfactionproblem. Definisi8. S ebuah tup el so lu siatas sebuah const raint satisfactionproblem adalahkumpulan label yang sem uaanggota nya m em enuhisem uaconstraint: csp(( Z, D, C )): x1 , x2 , . . . , xn Z : v1 Dx1 , v2 Dx2 , . . . , vn Dxn : tupel solusi((< x1 , v1 > <x2 , v2 > . . . <xn , vn >), (Z, D, C )) ((Z = x1 , x2 , . . . , xn ) (C C : memenuhic onstraint((<x1 , v1 > <x2 , v2 > . . . <xn , vn >), C))) Sebuah const raint satisfactionproblem disebut memiliki penyelesaianjika memiliki tupel solusi.Tergantungdari kebutuhanaplikasi nya, const raint satisfactionproblem dapat dikat egorikan m enjadibeberapa kategori sebagai berikut. 1. Const raint satisfaction p roblem di m anayang dicari adalahsolusiyang m anasaja. 2. Const raint satisfaction p roblem di m anayang dicari adalahsem uasolusi. 3. Const raint satisfactionproblem di m anayang dicari adalahsolusiyang optim al, di m anaoptim al itu didefinisikanm enurutkebutuhanpengguna. 2.2 PencarianSistem atis 2.2.1 G enerate and Te s t S ebenar nya siapa pun dapat m enyelesaikanconst raint satisfactionproblem yang m ana pun. Cara nya gam pang sekali. M encobasem uakom binasinilai ke variabelvariabel yang

ada. Cari ini dijam in dapat m em peroleh sebuah solusi,jika ada,atau m embuktikan bahwa m asalah ini tidak bisa dipecahkan.O leh karena itu, algoritma ini dipastikan dapat mencari sem ua solusi dengan lengkap. Untuk const raint satisfaction problem yang sederhana tentu saja ini tidak m enjadi m asalah.Tetapi const raint satisfaction problem adalahm asalahNP- hard. Artinya seiring denganm eningkat nya jum lah variabel pada constraint satisfaction p roblem, jumlah kom binasi yang harus dicoba m eningkatsecara kuadrat. Menghabis-kan waktu yang sangat lam a untuk m encoba sem ua kom binasi bahkan walaupun dibantu kom puter dengan spesifikasi yang canggih dalam

m enghitung nya. Jadi kebanyakan waktu dalam risetconst raint programming dihabiskan dalam mencari algoritmapencarianyang efisien.Dari riset ini m unculbeberapa algoritm a pencariansistem atis.Algoritma generate and test m em angtidak efisien tapi algoritm aini m enjadidasardari pengem bangan algori- tm a pencariansistem atislainnya. Oleh karena itu, untuk memahamialgoritma pencarian sistem atis lainnya, perlu dipaham i terlebih dahulualgoritm agenerate and test. Sebelumalgoritm agenerate and test ini dibahas,ada baik nya pencariankom binasinilai ke variabelvariabel itu divisualisasikan ke dalam bentukpohon.Visualisasipencarian kombinasinilai bagi variabelvariabel akanm em udahkan pem aham an algoritmapencarian sistem atis yang m anapun dalam const raint programming. Misal nya ada const raint satisfactionproblem sebagaiberikut. Const raint satisfaction problem ini terdiri dari tiga variabel, a, b, dan c. Da untuk constraint satisfactionproblem ini adalah {1, 2, 3} sedangkan Db -nya {1, 2} dan Dc -nya {1, 2}. Dalam gambar 2.2, pencariansolusi nya mulaidari variabel a. Karenajum lah anggotaDa adalah3 maka a da 3 jalan dari titik yang paling atas (solusi nya m ulai dicari dari variabel a). Titik yang ditandai dengan mewakili statuspencarian. Artinya dalam konteks gam barini adalah diputuskan(setidak nya untuk sem entara) untuk m em berinilai 1 ke variabela dan sedang mempertimbangkan nilai apakahyang akandiberikanke variabelb. Algoritma generate and test dapat dibayangkan sebagai algoritm a depth-fi rst search yang paling dasar. Dalam konteks gam bar pohon ini, algoritm a nya dim ulai dengannilai a paling kiri yaitu 1, kemudiannilai b p alin g kiri yaitu 1, kemudiannilai c paling kiri yaitu 1.

G am bar2.1: Ruang pencarian untuk csp(Z, D, C ) denganurutan (a, b , c) di m ana Z = {a, b , c}, Da = {1, 2, 3}, Db = {1, 2}, dan Dc = { 1, 2} S etelahsem uavariabel diberi nilai, barulahalgoritmaini m enguji apakahkom binasinilai ini m em enuhisem uaconst raint yang ada. Jika tidak, dicoba nilai variabel yang terakhir kali diberi nilai (c) yang lain, yaitu 2 . Ujilah lagi. Jika tidak, karena sem ua nilai untuk variabel c untuk kumpulan label (<a, 1><b, 1>) sudahdicoba, m aka dicoba nilai untuk variabel b berikut nya. Begitu seterus nya. Jumlah kombinasi yang dicoba oleh algoritmaini sam adenganukuranproduk Cartesian sem uadom ain variabel. Sepertiyang sudahdijelaskan,algoritm agenerate and test ini sangattidak efisien karena algoritm aini m enghasilkan banyak pem berian nilai ke variabelvariabel yang ditolak padafa s e uji coba. Sebagaitam bahan, generator seakan-akan tidak peduli denganpem berian nilai yang memiliki konflik dan terus m em berikannilai yang lain tanpa m em andang konflik. Singkat nya, algoritmaini m erupakan generator yang buta. Dapatdipastikanalgoritma ini tidak berguna padaham pir sem uam asalahconst raint satisfactionproblem karena kebanyakan m asalah const raint satisfactionproblem bersi fat eksponensial. Contoh nya pada m asalahpewarnaan tiga warna pada n verteks. Ada 3n kemungkinanpewarnaan. Untuk n lebih besar daripada 20, m engiterasisem ua kem ungkinan berada di luar jangkau-

an (Brian Hayes,2003,p13). Ada yang dapatdilakukan untuk m eningkatkan pendekatan algoritmaini. 2.2.2 Backtracking Algoritma ini adalah algoritm a yang paling umum dan paling banyak dipakai dalam aplikasi penghitunganuntuk constraint satisfaction problem. Pada da sar nya back- tracking secara perlahan-lahan m encoba m engem bangkan kum pulan label yang ma- sih belum lengkap untuk beberapa variabel, menuju ke kum pulan label yang leng- kap, dengan secara berulang-ulang memilih nilai bagi variabel yang lain yang kon- sisten dengan solusi yang masih belum lengkap ini. Algoritma

backtracking ada- lah pendekatanbrute-fo rce yang sudah diperbaiki, yang secara sistem atik m encari se- buah solusi atas sebuah m a sa lah di antara sem ua pilihan yang a da (Eitan Gurari, http://www.cse.ohio-

state.edu/gurari/course/cis680/cis680Ch19.htm 1999). l, Berikut ini adalah alur algoritma ini. Variabel yang diperiksa sekarangdiberi nilai tertentu.Label ini diperiksakecocokan nya dengan sem ua label yang sudahm asukdalam tupel solusi. Jika label ini tidak cocok denganlabel-labelyang sudahada di tupel solusi, m aka label ini akan ditolak, dan label yang lain akan dicoba. Pada kasusdi m ana sem ua label sudahditolak, label yang m asukke tupel solusi terakhir kalinya dianggaptidak cocok lagi, dan ditolak. Memeriksa label yang masuk ke tupel solusi terakhir kali disebut backtrack. P rosesini berlanjut sam paisem ua variabel sudah diberi label atau tidak ada la- gi label yang bisa di-backtrack, yakni dalam hal sem ualabel untuk variabel pertam asudahditolak. Pada kasusterakhir ini, constraint satisfactionproblem dianggap tidak memiliki penyelesaian. Pa d a backtracking ini, tidak ada usahauntuk m enggunakan const raint selainpadasaat m em eriksakekonsistenan label untuk variabel yang sedangdiperiksa dengan kumpulan label yang sudahada di dalam tupel solusi. Prosesini adalahpencarianyang sangatmelelahkandi m ana secarasistem atisdieksplorasiseluruhruang pencarian.P rosesini sam a dengangenerate and test , bersi fat lengkapdan sem uahasil yang didapatkan nya memenuhi

const raint. Tidak ada usahauntuk m engurangi sebagian ruangpencarian. Contoh berikut akan m em perjelas algoritm a backtracking dan perbedaan nya deng an generate and test. A da sebuah const raint satisfactionproblem yang terdiri dari 3 variabel, yaitu a denganDa = {1, 2, 3, 4}, b d e n g a nDb = {1, 2, 3, 4}, dan c denganDc = {4, 5, 6}. Const raint-nya adalah Ca,b = a < b dan Ca,b,c = a + b = c. Pencarian solusi dimulai dari variabel a. Diberikan nilai 1 untuk a. Pa d a sa a tini label <a, 1> akan diperiksa apa- kah m elanggarconst raint yang ada. Tapi karena tidak ada const raint unari untuk a maka pencarianbergerakke tingkat yang lebih dalam ,yaitu tingkat di m an a va riab el b b erad a .b diberi nilai 1. Pa d a s a a tini label <b, 1> diperiksaapakahkonsisten dengankum pulanlabel yang sudahada dalam tupel solusi (<a, 1>) dan const raint unari untuk b jika ada . Label <b, 1> tidak konsisten dengan kum pulanlabel (<a, 1>) karenam elanggar const raint Ca,b . Maka dicari nilai yang lain untuk b, yaitu 2. Seperti biasa label<b, 2> ini akan diperiksa apakahkonsistendengankum pulanlabel (<a, 1>). Hasil nya adalahkonsisten. Pencarian pun bergerak ke tingkat yang paling dalam , yaitu tingkat di m ana variabel c berada. c diberi nilai, yaitu 4. Pa d a s a a t ini label <c, 4> akan diperiksa apakah konsisten deng an kum pulan label (<a, 1>,<b, 2>). Ternyata tidak karena m elanggar const raint Ca,b,c . Ma- ka diberikan nilai yang lain untuk c. Dapat dilihat tidak ada satu pun nilai dari Dc yang konsisten dengan kum pulan label (<a, 1>,<b, 2>). Maka pencarian melakukan backtrack seperti yang terlihat pada gam bar 2.3. Label terakhir dari kum pulan label (<a, 1>,<b, 2>) yaitu <b, 2> ditolak dan nilai yang lain diberikan untuk b. Dapat dilihat perbedaanback- tracking dengan generate and test di m ana pencariandenganm etode generate and test m em berinilai ke sem uavariabel terlebih dahulu sebelumm em eriksaapakahpem beriannilai ini m em enuhiconst raint atau tidak. S em entaraitu pencariandengan m etode back- tracking m em eriksaapakah pem berian nilai itu m em enuhiconst raint yang ada padasaatsetiap variabeldiberi nilai.

Gambar2.2: Contohconst raint satisfactionproblem di m anaterjadi backtrack 2.3 Ko n s iste n s Constraint i 2.3.1 PengertianDasar N am alain konsistensi const raint adalahproblem reduction . Intinya adalahberusaha mengurangi m asalahdenganharapanm asalahyang bersangkutan m enjadi lebih m udah diselesaikan. S ekarangini sudahdiketahui teknik konsistensiini sangatpenting dalam penyelesaianconst raint satisfactionproblem yang berat sehinggasem uaaplikasi komersial penyelesaianconst raint satisfactionproblem m enggunakan teknik konsistensiini sebagai langkahdasar(Christian Bessire; Jean-Charles Rgin, 2001, p1). Sejarahkonsistensi const raint dapatditelusuri dari peningkatan efisiensiprogrampengenalan gam baroleh peneliti di intelejensisem u. Pengenalan gam barm elibatkanpem berianlabel kepadasem ua garis pada gam bardengancara yang konsisten.Jum lahkom binasi pem berianlabel pada garis yang m em ungkinkan dapatm enjadisangatbesa r, sem entara hanya sedikit yang konsisten. Teknik konsistensidenganefektif m embuang sem uapem beriannilai yang tidak konsistenpada tahap awal. Dengandem ikian m em perpendek pencarianuntuk pemberian nilai yang konsisten. Untuk m engilustrasikan teknik konsistensi ini akandiberikansebuah contohconstraint

Gam bar2.3: Graf m enggam barkan constraint satisfactionproblem yang sangatsederhana.Anggap A < B adalahconst raint antara variabel A dengan dom ain DA = {3..7} dan variabel B dengan dom ain DB =

{1..5}. Denganjelas tam pakbahwa untuk sebagiannilai pada DA tidak ada nilai yang konsistendi DB yang memenuhi const raint A < B dan sebalik nya. Nilai yang

demikian dapat dibuang dari dom ain yang berkaitan tanpa kehilangansolusi apa pun. Reduksi itu aman. Didapatkandomain yang tereduksiDA = {3, 4} dan DB = {4, 5} . Perhatikanbahwa reduksiini tidak m embuang sem uapasangan yang tidak konsisten. Sebagaicontoh kum pulanlabel (<A, 4>,<B, 4>) m asih dapatdihasilkandari domain , tetapi untuk setiap nilai A dari DA adalah mungkin untuk mencarinilai B yang konsisten dan sebaliknya. Walaupunteknik konsistensi ini jarangdigunakan sendirian untuk m enghasilkan solusi (walaupundapat),teknik konsistensiini m em bantum enyelesaikanconst raint satisfaction problem dalam beberapacara. Teknik konsistensiini dapat dipakai sebelumpencarian m aupunpadasaatpencarian. Const raint sering direpresentasikan dengangam bargraf (gam bar 2.4) di m anasetiap verteks mewakili variabel dan busur antar dua verteks mewakili constraint binari yang m engikat variabelvariabel yang dihubungkan denganbusur tersebut. Constraint unari diwakilkan denganbusur melingkar. 2.3.2 Ko n s is te n s Verteks i Teknik konsistensiyang paling sederhana adalahkonsistensiverteks.

Definisi9. Sebuah const raint satisfactionproblem adalahkonsistensecaraverteks jika dan hanya jika untuk sem ua variabel sem ua nilai di domain -nya memenuhiconst raint unari untuk variabelyang bersangkutan. csp(( Z, D, C )) : konsistenverteks(( Z, D, C )) (x Z : (v Dx : memenuhic onstraint(<x, v >, Cx ))) Konsistensiverteks sering disebut juga dengankonsistensi-1.Angka 1 ini mewakili const raint unari yang harusdipenuhioleh sem uavariabel. Jika domain DX untuk variabel X memiliki nilai a yang tidak memenuhiconstraint unari untuk variabel X , m aka pem beriannilai a ke X akan m engakibatkan kegagalan langsung. Oleh karena itu ketidak konsistenan secaraverteks dapat dihapuskandeng an m embuang sem ua nilai dari domain DX untuk variabel X yang tidak memenuhi constra- int unari padaX (Roman Bartk, 2005, p15). 2.3.3 Ko n s is te n s Busur i Jika const raint satisfactionproblem yang a da su da hm en ja dikonsiste nse caraverte ks,maka const raint unari dapatdihapus.Setelahkonsistensecaraverteks,m aka pekerjaan yang tersisaa da la hm em astikan ko nsistenseca rabusur. Busur m elam bangkan const raint binari. D ua variabel dikatakan konsisten secara busur jika untuk setiap nilai dari domain variabel pertam a dapat ditem ukan nilai dari domain variabel kedua dan label ini memenuhicon- straint untuk kedua variabeltersebut.

Definisi10. Pasanganvariabel (x, y ) sebuah csp(Z, D, C ) a dalahkon siste nsecarabusur jika dan

hanya jika setiap nilai a di domain x yang m em enuhiconst raint pada x, a da nilai dari domainy yang m em enuhi const raint paday dan konsistendenganlabel <x, a>: csp(( Z, D, C )) : x, y Z : konsistenbusur((x, y ), (Z, D, C )) (a Dx : memenuhic onstraint((<x, a>, Cx ) b Dy : (memenuhic onstraint((<y, b>), Cy )) memenuhic onstraint((<x, a>, <y, b>, Cx,y ))) Dari definisi, jelas bahwa busur (Vi , Vj ) dapat dibuat konsisten denganm enghapus nilai-nilai di domain dari Vi di m anatidak ada nilai yang berkaitandi domain Dj sehingga const raint binari antaraVi dan Vj dipenuhi (perhatikanbahwa m enghapus nilai-nilai terse but tidak m enghapus solusi yang m anapun dari const raint satisfactionproblem yang bersangkutan). Sebuah const raint satisfactionproblem dikatakankonsistensecarabusur jika setiap nilai pada setiap domain memiliki dukungandi domain yang lain. Membuat m as alah const raint satisfactionproblem konsistensecaraverteks sering dilakukan di tahap prapem rosesan: m engurangiukuran beberapadomain biasa nya m embuat m asalahmenjadi lebih m udahdipecahkan (BarbaraM. Smith, 1995, p5). Untuk m embuat setiapbusur dari graf const raint konsisten, atau dengan kata lain untuk m embuat suatu const raint satisfac- tion problem konsisten secara busur, adalah tidak cukup untuk m elakukan penghapusannilai-nilai yang tidak konsisten secara busur untuk suatu variabel di domain hanya sekali saja. Ketika domain dari Vi sudah dikurangi anggota nya, m aka setiapbusur (Vi , Vj ) yang sudahpernahdiotak-atikharusdiperiksalagi, karenabeberapa anggotadari dom ainuntuk Vi mungkin tidak konsistenlagi dengananggotadomain variabelvariabel yang diperiksa kekonsistenan nya secarabusur terhadapvariabel Vi . Untuk m engatasim asalahini, dikem bangkan algoritm a AC-1 yang pada dasar nya m engulangpem eriksaan kekonsistenan antaradua variabel terus-m enerus sam paitidak ada dom ain m anapun yang berubah.Berikut adalahdari algoritm aAC-1. REVISI adalahalgoritm abiasa yang mengkonsistenkan dua variabel secarabusur.

AlgoritmaAC-1 prosedurAC-1(G) Q <- (Vi,Vj) di busur(G),i#j ulang UBAH <- salah untuk setiapbusur(Vi,Vj) di Q lakukan UBAH <- REVISI(Vi,Vj) atau UBAH akhir untuk sam paibukan (UBAH) akhir prosedurAC-1

Dapat diperhatikan bahwa untuk m enerapkan teknik konsistensi busur ini, constra- int satisfaction problem yang ada diubah m enjadi const raint satisfaction problem binari (const raint satisfactionproblem yang sem ua const raint-nya binari atau unari). Jika ada const raint yang melibatkan tiga variabel atau lebih, const raint yang bersangkutan mesti dipisahkanm enjadibeberapa const raint binari atau unari. Kekurangandari algoritma ini adalahtidak begitu efisien karenasetiap revisi sukse s dari satu busur pada suatu iterasi m em aksasem uabusur untuk direvisi lagi pada iterasi berikut nya, walaupun hanya sebagiankecil dari m erekayang dipengaruhioleh revisi ini. Kekurangandari algoritmaAC-1 ditutupi oleh algoritmaAC-3 yang melakukanrevisi kem bali hanya bagi busur-busur yang memiliki kem ungkinandipengaruhioleh revisi sebelumnya. AlgoritmaAC-3 prosedurAC-3(G) Q <- (Vi,Vj) padabusur(G ),i#j ketika Q tidak kosong lakukan pilih dan hapusbusur (Vk,Vm) dari Q jika REVISI(Vk,Vm) maka Q <- Q bergabung {(Vi,Vk) bilamana(Vi,Vk) di busur(G),i#k, i#m} akhir jika akhir ketika akhir prosedurAC-3

Gambar2.4: Graf const raint yang konsistensecarabusur tetapi tidak m em pu nyai solusi Ketika algoritmaAC-3 merevisi busur untuk kedua kalinya, algoritmaini menguji pasan gannilai yang sudah di ketahui (dari iterasi sebelum nya) apakahkonsistenatau tidak konsisten dan m ana yang tidak terpengaruhioleh reduksi domain. Ide utam a dari algo- ritma AC-3 berdasarkan konsep dukungan . Nilai didukung jika ad a nilai yang cocok di domain setiap variabel lainnya. Ketika sebu ah nilai V dibuang dari domain variabel X , adalah tidak perlu untuk m em eriksa sem ua const raint binari CY,X . Tepat nya, nilai-nilai dalam DY dukungan. Walaupun sudahm encapaitahap konsistensecarabusur yang m engakibatkan banyak ketidak konsistenandibuang dari graf constraint , tidaklah cukup untuk m endapatkan solusi. Jika ukuran domain m asing-m asing variabel m enjadi satu, m aka const raint satisfaction problem tepat m em pu nyai satu solusiyang didapatkandenganm em berikannilai ke masing-masing variabel dari domain masing-masing. Hal ini berlaku juga untuk konsistensiverteks. Jika ada domain yang m enjadikosong,m aka const raint satisfactionproblem-nya tidakm em pu nyai solusi. Lain daripadaitu, solusi nya tidak pasti. Contohberikut (gambar2.5) menunjukkan bahwa graf const raint konsistensecarabusur tetapi tidak ada satu pun label yang m em enuhisem uaconstraint. 2.4 O ptim alisasi D alam Constraint Satisfaction Problem 2.4.1 PengertianDasar Pada bagian sebelum nya, sudah dibahas teknik-teknik constraint satisfaction problem di m ana sem ua solusi nya untuk m enyelesaikan sam a baik nya. Pada dapat diabaikan jika tidak memerlukan V untuk

perm asalahan seperti optim alisasipenjad walan pekerjaan di industri, beberapasolusi adalahlebih baik daripada

solusi lainnya. Pada kasuslainnya, pem beriannilai kepadavariabelvariabel yang sam a m engakibatkan harga yang berbeda. Tugas dari perm asalahan ini adalah untuk mencari solusi yang paling optimal di m anakeoptim alansuatusolusi itu didefinisikanoleh fungsi yang spesifik untuk aplikasi. M asalah ini biasa disebut sebagaiconstraint satisfaction optim izationproblem untuk m em bedakan denganconst raint satisfactionproblem biasa. Sem uam asalahoptim alisasiyang dipelajari di riset operasional adalahconst raint satisfaction roblem p padapengertian um um ,di m anaconst raint um um nya adalahnumerik. Definisi11. Sebuah const raint satisfaction optim ization problem didefinisikan sebagai

constra- int satisfactionproblem dengan fungsi optim alisasif yang m em etakan setiaptupel solusike sebuah nilai numerik: (Z, D, C, f ) di m ana(Z, D, C, f ) adalahconst raint satisfactionproblem , dan jika S adalah him- punantupel solusidari (Z, D, C ), maka f : S nilai numerik Diberikan sebuah tupel solusiT , f (T ) disebut sebagai nilai f dari T . Tugas dalam const raint satisfactionoptimizationproblem adalahuntuk m encaritupel solusi nilai f yang optimal (minimal atau maksimal)yang ditentukanoleh fungsi f optimalisasi yang spesifik untuk aplikasi. Const raint yang umum disebut hard constraints, sem entara fungsi f disebut soft const raints . Penam aan ini m enggam barkan bahwa hard const raints harusdipenuhi,sem entara soft const raints memiliki preferensi terhadapbeberapa solusi(yang m em pu nyai nilai tinggi/rendah) dari yang lainnya (yang mempu nyai nilai lebih rendah/lebih tinggi) (Anonim,

http://en.wikipedia.org/wiki/Constraint_optimization, 2006). Masalah alokasi sum berdaya di penjad walan adalahconst raint satisfactionoptimization problem. Pada banyak m asalahpenjad walan, m encari solusi yang m ana pun tidaklah cukup baik. Seseorang m ungkin ingin m encari cara yang paling ekonomis dalam m engalokasikan sum berdaya ke pekerjaan-pe kerjaan, atau m engalokasi m esin ke

pekerjaan-pe kerjaan, m em aksim alkan beberapa kualitas yang bisa diukur dari hasil keluaran.Masalah-m asalah ini adalahconst raint satisfactionoptim izationproblem. Untuk m encarisolusi yang paling optim al, seseorang m ungkin harus m encarisem ua solusi terlebih dahulu,dan kem udianm em bandingkan nilai f m ereka. Sebagiandari ruang pencariandapatdipotongjika seseorang dapatm embuktikan bahwa solusiyang lebih optim al dari solusi sebelum nya tidak beradadi dalam nya. Hal ini berarti tidak ada solusi yang berada di dalam nya atau nilai f pada setiap solusi di ruang pencarian yang dipotong itu tidak lebih optim al dari solusiyang sudahdidapatkan (sub-optimal). 2.4.2 Bran ch and Bound Untuk menyelesaikanmasalahconst raint satisfaction optimization problem, digunakan fungsi f untuk m em andupencarian.Branch and bound , yang m erupakan algoritm apencarianum um dalam pencariansolusioptim al, m enggunakan fungsi f . Di sini tetap digunakan tupel solusi untuk menyebut kumpulanlabel yang memberikannilai kepadasem ua variabel yang memenuhiconstraint. Perlu diperhatikanbahwa tupel solusi di sini tidak harusm engacukepadasolusi optim al pada const raint satisfactionoptimizationproblem. Branch and bound adalahteknik yang terkenal pada riset operasidan intelejensi sem u. Teknik ini didasarkan pada fungsi heuristik yang baik dalam m em perkirakan nilai terbaik (terbaik m enurutfungsi optim alisasi)padasem uaverteks di bawah cabangyang sedang diperiksa pada pohon pencarian(Edward Tsang, 1996, p301). Jika fungsi heuristik nya bagus,seseorang dapatm em otongruang pencarianyang di dalam nya tidak terdapatsolusi optimal. Oleh karenaitu, walaupunbranch and bound tidak mengurangi kompleksitas algoritm apencarian, tapi teknik ini dapatm enjadilebih efisiendaripada backtracking saja. Untuk m enerapkan branch and bound pada const raint satisfactionoptim ization problem, seseorangm em erlukan sebuah fungsi heuristik h yang m em etakansem ua kumpulan label C L ke sebuah nilai numerik (h : C L angka). Nilai ini disebut nilai h dari kumpulan label. Supayafungsi h dapatditerim a,nilai h dari setiap kumpulanlabel C L harus lebih besar(lebih kecil) dari nilai f dari setiap tupel solusi pada m asalahmaksimalisasi

(minimalisasi). Sebuah variabel global, yang disebut sebagaibound , akan diinisialisasiminus tak terhingga pada m asalah m aksim alisasi. Teknik ini m encari solusi dengan kelakuan depth- first. Teknik ini menggunakanbacktracking. Ketika sebuah label ingin

ditam bahkan ke kumpulanlabel, nilai h dari kum pulanlabel yang ada (berikut label yang baru m asuk itu) dihitung. Jika nilai h ini lebih kecil dari bound pada m asalah m aksim alisasi, m aka cabang tem pat kum pulanlabel beradadipotong. Ketika sebuah tupel solusi ditem ukan, nilai f di- hitung. Nilai f akan m enjadi nilai bound jika dan hanya jika lebih besardari bound yang sudahada pada m asalahm aksim alisasi.Ketika nilai f ini lebih besar dari bound , maka solusi yang baru ditem ukan akan dim asukkan ke kum pulan solusi terbaik sam pai saat ini. Setelah pencarian selesai, tupel solusi yang terakhir didapatkandapat dianggapsebag a i solusi yangpaling optimal. Prosedur Branch_and_Bound di bawah ini m em berikan langkah-langkahdalam mene- rapkan strategi branch and bound depth-fi rst dalam m enyelesaikanconstraint satisfaction optimization problem, di m ana nilai f maksimum diperlukan. Masalah minimalisasi da- pat dihadapi seperti m asalah m aksim alisasi dengan m enggantikan sem uanilai f dan h dengannegasi nilai m ereka.Untuk m embuat prosedurm enjadilebih sederhana, prosedurini hanya m engem balikan satu tupel solusi yang m em pu nyai nilai f optimal; tupel solusi lainnya yang mempu nyai nilai f yang sam adiabaikan.

AlgoritmaBranch_and_Bound prosedurBranch_and_Boun d(Z,D,C,f,h) BOUND minus tak terhingg a BEST_S_SO_ FAR NIL BNB(Z,,D,C,f,h) kembalikan(BEST_S_SO_FAR) akhir prosedurBranch_and_Bound prosedurBNB(BELUM_LABEL, KUMPULAN_LABEL,D,C,f,h) jika (BELUM_LABEL={}) maka jika (f(KUMPULAN_LABEL) > BOUND) maka BOUND f(KUMPULAN_LABEL) BEST_S_SO_ FAR KUMPULAN_LABEL selainjika (h(KUMPULAN_LABEL) > BOUND) maka pilih variabelx dari BELUM_LABEL ulangi pilih nilai v dari Dx hapusv dari Dx jika (KUMPULAN_LABEL + <x,v> memenuhiconst raint) maka BNB(BELUM_LABEL-x, KUMPULAN_LABEL + <x,v>, D, C, f, h) akhir jika sam pai(Dx ={}) akhir jika akhir jika akhir prosedurBNB

Efisiensidari branch and bound ditentukanoleh dua faktor: kualitas fungsi heuristik dan apakahbound yang bagus ditem ukanpadatahapawal. Pada m asalah maksimalisasi, jika nilai h adalah selalu m em perkirakanlebih tinggi dari nilai f , m aka perkiraan menjadi lebih dekat ke nilai f (contoh nya, semakin kecil nilai h tanpa lebih kecil dari nilai f ), lebih besar kem ungkinan nya bagian yang cukup besar dari ruang pencarian dipotong. Sebuah cabangakan dipotong oleh branch and bound jika nilai h dari verteks yang sedangdiperika lebih rendahdari bound (padam asalahm aksim alisasi). Ini berartibahkan jika denganfungsi heuristik diperbaiki,branch and bound akan m em otongproporsiyang berbedadari ruang pencarianjika cabangdiurutkan secaraberbeda,karenabatas yang

berbedaakanditem ukandi bawah cabangyang berbeda. Gambar 2.6 m enunjukkansebuah contoh dari constraint satisfaction optimization problem . Sem uadari lim a variabel x1 , x2 , x3 , dan x4 mempu nyai domainnumerik. Nilai f dari sebuah kum pulanlabel adalahtotal perkaliandari sem uanilai yang diambil variabelvariabel ini. Tugasnya adalahm encaritupel solusi dengannilai f maksimum. Khusus contoh constraint satisfactionoptimization problem ini hanya diperlukan solusi tunggal sehingga nilai h yang sam adenganbound akandipotongjuga .

Gambar2.5: Contohconst raint satisfactionoptimizationproblem yang sederhana G am bar 2.7 m enunjukkanruang yang dijelajahi oleh backtracking sederhana. Setiap verteks pada gam bar 2.7 mewakili sebuah kum pulan label, dan setiap cabangmewakili pem beriansebuah nilai ke variabel yang belum m endapatkan nilai. Variabelvariabel diasum sikan untuk diperiksadenganurutan: x1 , x2 , x3 , dan x4 . Gambar 2.8 m enunjukkanruang yang dicari oleh branch and bound denganurutan pencarianyang sam adenganbacktracking. Nilai h untuk sebuah verteks dihitung ketika nilai yang diberikan sejauh ini ditam bahkandengannilai maksimal dari variabel yang belum diberi nilai. Sebagai contoh, nilai h dari (<x1 ,3>,<x2 ,2>) adalah3 * 2 (nilai yang diberikansejauhini) dikalikan dengan4 * 4 (nilai m aksim umyang dapatdiberikanke x3 dan x4 ), yaitu 16. Menurut prosedurBranch_and_Bound yang dijelaskansebelum nya, bound diinisialisasi ke m inus tak terhingga.Ketika verteks untuk(<x1 ,2><x2 ,3><x3 ,4><x4 ,2>) dicapai, bound diberi nilai (2 * 3 * 4 * 2 =) 48. Nilai bound ini tidak memiliki efek bagi setengah kiri dari pohon pencarian.Ketika verteks (<x1 ,3><x2 ,2><x3 ,3>) diperiksa,nilai h (yaitu

Gam bar2.6: Ruangpencarianyang dijelajahioleh backtracking sederhana dalam constra- int satisfactionoptimizationproblem

G am bar2.7: Ruang pencarianyang dijelajahi oleh branch and bound dalam constraint satisfactionoptimizationproblem

G am bar2.8: Ruang pencarianyang dijelajahi oleh branch and bound dalam constraint satisfactionoptimization problem ketika bound yang bagus ditem ukanpada tahap awal pencarian 48) ditem ukansam anilainya denganbound (yaitu 48). Maka dari itu, cabangdi bawah verteks (<x1 ,3><x2 ,2><x3 ,3>) dipotong. Setelahpem otongan ini, pencarianbergerak ke cabangberikut nya. (<x1 ,3><x2 ,2><x3 ,4><x4 ,2>) kem udian ditem ukandan disimpulkan sebagaisolusi yang paling optimal. Pada gam bar 2.8, 15 verteks dijelajahi, dengan per- bandingan 17 vertekspadagam bar2.7. Gam bar 2.9 m enunjukkan penting nya m enem ukan bound yang lebih ketat pada tahap awal. Pada gam bar 2.9, urutan pencarian nya adalahx1 , x4 , x2 , dan x3 denganurutan nilai domain dimulai dari yang paling besar. Solusi optim al ditem ukansetelah6 verteks dijelajahi. Bound 96 digunakanuntuk m em otongcabangdi bawah (<x1 ,2><x4 ,2>) (yang nilai h-nya 48). Hanya 11 verteksyang dijelajahi padagam bar2.9.

Anda mungkin juga menyukai