Вы находитесь на странице: 1из 72

Opim S Sitompul

Pendahuluan Definisi Constraint Satisfaction Problems (CSP) Backtracking search untuk CSPs Local search untuk CSPs

Dalam penyelesaian masalah menggunakan pencarian, suatu masalah dapat diselesaikan dengan mencari dalam sebuah states space. State-state ini dapat dievaluasi dengan domain-specific heuristics dan diuji apakah merupakan goal states. Dari sudut tinjauan algoritma pencarian, tiap state adalah atomik atau indivisiblesebuah black box tanpa struktur internal.

Dalam kuliah ini dijabarkan sebuah cara untuk menyelesaikan berbagai masalah secara lebih efisien. Untuk tiap state digunakan sebuah factored representation: satu himpunan variabel, masingmasing memiliki satu nilai. Sebuah masalah diselesaikan apabila tiap variabel memiliki sebuah nilai yang memenuhi semua kendala (constraints) pada variabel tersebut Masalah yang dijabarkan dengan cara ini disebut constraint satisfaction problem, atau CSP.
4

Algoritma pencarian CSP memanfaatkan struktur dari state dan menggunakan general-purpose heuristics (bukan problemspecific heuristics) untuk dapat menyelesaikan masalah-masalah yang kompleks. Ide utamanya adalah menghilangkan sebagian besar ruang pencarian secara sekaligus dengan mengidentifikasi kombinasi variable/value yang melanggar constraint yang ada.

A constraint satisfaction problem (or CSP) didefinisikan oleh sebuah himpunan variabel, X1,X2, , Xn, dan sebuah himpunan constraints, C1,C2, , Cm. Tiap-tiap variabel Xi memiliki sebuah domain tidak kosong Di dari nilai-nilai yang mungkin. Tiap-tiap constraint Ci melibatkan beberapa subset variabel dan menentukan kombinasi niai-nilai yang mungkin untuk subset itu. State sebuah masalah didefinisikan oleh pemberian nilai ke beberapa atau semua variabel, {Xi = vi,Xj =vj , }.
6

Jadi, sebuah constraint satisfaction problem terdiri dari tiga komponen, X, D, and C: X adalah sebuah himpunan variabel, {X1, . . . , Xn}. D adalah sebuah himpunan domains, {D1, . . . ,Dn}, satu untuk setiap variabel. C adalah sebuah himpunan constraints yang menentukan kombinasi niai yang mungkin.

Tiap-tiap domain Di terdiri dari satu himpunan nilai yang mungkin, {v1, . . . , vk} untuk variable Xi. Tiap-tiap constraint Ci terdiri dari sebuah pasangan <scope, rel>, dimana:
scope adalah sebuah tupel variabel yang berpartisipasi dalam constraint, dan rel adalah sebuah relasi yang mendefinisikan nilai-nilai yang dapat diambil variabel.

Sebuah relasi dapat disajikan sebagai sebuah list eksplisit dari semua tupel nilai yang memenuhi constraint, Atau sebagai sebuah relasi abstrak yang mendukung dua operasi:
Menguji apakah sebuah tupel adalah anggota dari relasi, dan Melakukan enumerasi terhadap anggota-anggota relasi.

Contoh: Jika X1 dan X2 keduanya memiliki domain {A, B}, maka constraint yang mengatakan kedua
variabel harus memiliki nilai yang berbeda dapat ditulis sebagai: <(X1, X2), [(A,B), (B,A)]> atau <(X1, X2), X1 X2>

10

Untuk menyelesaikan sebuah CSP, perlu didefinisikan state space dan keadaan dari penyelesaian tersebut.

Tiap-tiap state dalam sebuah CSP didefinisikan oleh sebuah pemberian (assignment ) nilai ke beberapa atau semua variabel,
{Xi = vi, Xj = vj , . . .}

11

Sebuah pemberian nilai yang tidak melanggar sembarang constraints disebut konsisten atau legal assignment. Sebuah pemberian nilai adalah lengkap (complete assignment) apabila setiap variabel diberi nilai. Penyelesaian pada CSP adalah pemberian nilai yang konsisten dan lengkap. Sebuah partial assignment adalah assignment yang memberi nilai hanya ke beberapa variabel.
12

Variables WA, NT, Q, NSW, V, SA, T Domains Di = {red, green, blue} Constraints: adjacent regions must have different colors Mis., WA NT, or (WA,NT) in {(red,green),(red,blue),(green,red), (green,blue),(blue,red),(blue,green)}
13

Solutions merupakan complete dan consistent assignments, mis., WA = red, NT = green,Q = red,NSW = green,V = red,SA = blue,T = green
14

Four queens problem: letakkan 4 queens pada sebuah papan catur 4x4 sedemikian hingga tidak ada dua queen yang saling menyerang. Dalam CSP:
Q Q Q

Variables: X1,X2,X3,X4 masing2 dengan domain {1, 2, 3, 4}


Constraints:

Solution: {X1 2, X2 4, X3 1, X4 3}

No 2 on same col: X1 X2, X1 X3, X1 X4, X2 X3, X2 X4, X3 X4 No 2 on same diag: (X1 +1 X2 and X1 1 X2) dan lima constraints lain seperti ini.

15

Binary CSP: tiap constraint menghubungkan dua variabel Constraint graph: node adalah variable, arcs adalah constraint

16

Karena representasi state-state dalam CSP mengikuti pola standardyaitu, sebuah himpunan variabel dengan nilai-nilai yang diberikan successor function dan goal test dapat dituliskan secara generik yang berlaku untuk semua CSP. Kita dapat mengembangkan generik heuristik yang efektif yang tidak memerulukan keahlian domainspecific tambahan. Struktur constraint graph dapat digunakan untuk menyederhanakan proses penyelesaian, dalam beberapa hal memberikan reduksi exponensial dalam hal kompleksitas.
17

Variabel Diskrit
finite domains:
n variables, ukuran domain d O(dn) complete assignments e.g., Boolean CSPs, termasuk.~Boolean satisfiability (NPcomplete)

infinite domains:

integers, strings, dll. mis., job scheduling, variabel adalah start/end days untuk tiap job Memerlukan constraint language, e.g., StartJob1 + 5 StartJob3

Variabel Kontinu

mis., waktu start/end times untuk observasi Hubble Space Telescope linear constraints dapat diselesaikan dalam polynomial time dengan linear programming

18

Unary constraints melibatkan sebuah variable tunggal,


mis., SA green

Binary constraints melibatkan pasanganpasangan variabel,


mis., SA WA

Higher-order constraints melibatkan 3 atau lebih variabel,


mis., cryptarithmetic column constraints

19

Variables: F T U W R O X1 X2 X3 Domains: {0,1,2,3,4,5,6,7,8,9} Constraints: Alldiff (F,T,U,W,R,O)


O + O = R + 10 X1 X1 + W + W = U + 10 X2 X2 + T + T = O + 10 X3 X3 = F, T 0, F 0

20

X1, X2, dan X3 adalah variabel-variabel tambahan yang menyatakan digit (0 or 1) yang dibawa ke kolom berikutnya (carry). Higher-order constraints dapat disajikan dalam constraint hypergraph. Alldiff constraint dapat dipecah menjadi binary constraintsF T, F U, dst.

21

S E N D M O R E ------------------------- + M O N E Y

Variables: S, E, N, D, M, O, R, Y Domains: {0,1,2,3,4,5,6,7,8,9} atau {1,2,3,4,5,6,7,8,9} Constraints: Alldiff (S, E, N, D, M, O, R, Y)

D+ E = Y + 10 C1 C1 + N + R = E + 10 C2 C2 + E + O = N + 10 C3 C3 + S + M = O + 10 . C4
C4 = M

22

C1, C2, C3 dan C4 adalah variabel-variabel carry yang menyatakan carry digit (0 or 1). Diberikan sederetan variabel x1, , xn dengan domain berturut-turut adalah D1, , Dn didefinisikan: all_different(x1, , xn) := {d1, , dn) | di dj untuk i j}

Maka 28 disequality constraint dapat diganti oleh: all_different(S, E, N, D, M, O, R, Y)

23

9567 + 1085 -------------

10652

24

Assignment problems

Timetabling problems

e.g., who teaches what class e.g., which class is offered when and where?

Transportation scheduling Factory scheduling

Perhatikan bahwa banyak real-world problems melibatkan variabel-variabel bernilai real.

25

Oleh Lewis Carroll Pada sebuah jalan kecil terdapat lima rumah yang berbeda-beda warna. Lima lelaki berbeda kebangsaan tinggal di kelima rumah ini. Tiap lelaki memiliki profesi berbeda, meminum minuman berbeda, dan masingmasing memiliki hewan peliharaan berbeda.

26

Informasi: Lelaki Inggeris tinggal di rumah merah Lelaki Spanyol memiliki seekor anjing Lelaki Jepang adalah pelukis Lelaki Italia meminum teh Lelaki Norwegia tinggal di rumah pertama sebelah kiri Pemilik rumah hijau meminum kopi

27

Rumah hijau ada di sebelah kanan rumah putih Pemahat menternakkan keong Diplomat tinggal di rumah kuning Pemilik rumah di tengah meminum susu Lelaki Norwegia tinggal bersebelahan dengan rumah biru Pemain biola meminum jus buah

28

Serigala ada di rumah bersebelahan rumah dokter Kuda ada di rumah bersebelahan dengan rumah dilomat. Pertanyaan:
Siapa pemilik zebra dan siapa yang minum air putih?

29

Variable dan domain:


Lima rumah, dari kiri ke kanan: 1, 2, 3, 4, 5 Lima warna: merah, hijau, putih, kuning, biru Lima kebangsaan: Inggeris, Spanyol, Jepang, Italia, Norwegia Lima peliharaan: anjing, keong, serigala, kuda, dan (implisit) zebra Lima profesi: pelukis, pemahat, diplomat, pemain biola, dokter Lima minuman: teh, kopi, susu, jus, dan (implisit) air putih.

30

Untuk tiap rumah terdapat lima karakteristik:


Warna Kebangsaan pemilik Peliharaan pemilik Profesi pemilik Minuman favorit pemilik

Ada 25 variabel, lima untuk masing-masing karakteristik, berikan nama mnemonik berikut:

31

Variabel warna: merah, hijau, putih, kuning, biru Variabel kebangsaan: inggeris, spanyol, jepang, italia, norwegia Variabel peliharaan: anjing, keong, serigala, kuda, zebra Variabel profesi: pelukis, pemahat diplomat, pebiola, dokter Variabel minuman: teh, kopi, susu, jus, air

32

Diasumsikan masing-masing variabel memiliki range nilai [1 5].


Contoh:
pebiola = 3 (pebiola tinggal di rumah no. 3)

33

Constraint:
Inggeris tinggal di rumah warna merah: inggeris = merah Spanyol memiliki anjing: spanyol = anjing Jepang adalah pelukis: jepang = pelukis Italia meminum teh: Italia = teh Norwegia tinggal di rumah pertama sebelah kiri: norwegia = 1 Pemilik rumah hijau meminum kopi: hijau = kopi rumah hijau di sebelah kanan rumah putih: hijau = putih + 1 Pemahat menternakkan keong: pemahat = keong
34

Diplomat tinggal di rumah kuning: diplomat = kuning Rumah tengah minum susu: susu = 3 Norwegia tinggal di sebelah rumah biru: |norwegia biru| = 1 Pebiola meminum jus buah: pebiola = jus Serigala ada di sebelah rumah dokter: |serigala dokter| = 1 Kuda ada di sebelah rumah diplomat: |kuda diplomat| = 1

35

Ditambah 50 constraints ketidaksamaan, 10 untuk masing-masing 5 karakteristik.


Cth.: merah putih

all_different(merah, hijau, putih, kuning, biru) all_different(inggeris, spanyol, jepang, italia, norwegia) all_different(anjing, keong, serigala, kuda, zebra) all_different(pelukis, pemahat, diplomat, pebiola, dokter) all_different(teh, kopi, susu, jus, air)

36

Penyelesaiannya adalah tunggal: hanya ada satu penugasan untuk kesemua 25 variabel yang memenuhi konstrain.
Temukan penugasan tunggal untuk variabel profesi: x, y {pelukis, pemahat, diplomat, pebiola, dokter} Diperoleh: x = zebra dan y = airputih

Jawaban: x = jepang dan y = norwegia (Jepang punya zebra dan Norwegia minum air)

37

Banyak real-world CSPs melibatkan preference constraints yang menunjukkan penyelesaian mana yang lebih disukai. Contoh, dalam contoh university timetabling problem, dosen X boleh jadi lebih suka mengajar pagi hari sedangkan dosen Y lebih seka mengajar sore. Sebuah timetable yang memuat dosen X mengajar pada jam 2 sore masih merupakan penyelesaian, tetapi bukan yang optimal

38

Preference constraints dapat di kodekan pada pemberian variabel secara individu Contoh, memberikan slot sore untuk dosen X dengan biaya 2 points terhadap fungsi objectif keseluruhan, sedangkan slot pagi berbiaya 1.

39

Mulai dengan pendekatan langsung, kemudian perbaiki States-state didefinisikan oleh nilai-nilai yang telah diberikan sejauh ini

Initial state: empty assignment { } Successor function: berikan sebuah nilai ke variabel yang belum bernilai yang tidak konflik dengan pemberian saat ini
fail jika tidak terdapat legal assignments

Goal test: current assignment adalah complete

1.
2. 3. 4.

Hal ini sama untuk semua CSPs Setiap penyelesaian muncul pada kedalaman n dengan n variabel gunakan depth-first search Path tidak irrelevant, sehingga dapat juga menggunakan complete-state formulation b = (n - l )d pada depth l, karenanya n! dn leaves

40

Assignment variabel adalah komutatif, yaitu, [ WA = red maka NT = green ]

sama dengan [ NT = green then WA = red ]

Hanya perlu mempertimbangkan assignment ke satu variabel tunggal pada tiap node: b = d dan terdapat dn daun (leaves)

41

Depth-first search untuk CSPs dengan assignment variabel-tunggal disebut backtracking search

Backtracking search adalah algoritma uninformed dasar untuk CSP


Dapat menyelesaikan n-queens untuk n 25

42

43

44

45

46

47

Metode-metode General-purpose dapat memberikan perolehan sangat besar dalam hal kecepatan:
Which variable should be assigned next? In what order should its values be tried? Can we detect inevitable failure early?

48

Most constrained variable:

Pilih variabel dengan fewest legal values

a.k.a. minimum remaining values (MRV) heuristic

49

Tie-breaker diantara most constrained variables Most constraining variable:


Pilih variabel dengan most constraints pada remaining variables

50

Algoritma backtracking memuat baris:


var SELECT-UNASSIGNED-VARIABLE(VARIABLES[csp], assignment, csp).

Baris ini memilih next unassigned variable dengan urutan yang diberikan oleh list VARIABLES[csp]. Static variable ordering jarang menghasilkan pencarian paling effisien.
Contoh, setelah assignments untuk WA=red dan NT =green, hanya ada satu kemungkinan nilai untuk SA, sehingga masuk akal untuk memberikan SA=blue selanjutnya daripada memberikan nilai Q. Ternyata, setelah SA diberi nilai, pilihan-pilihan untuk Q, NSW, dan V semuanya dipaksakan (forced).

51

Diberikan sebuah variabel, pilih least constraining value:

Nilai yang menghilangkan (rules out) nilai paling sedikit dalam variabel-variabel selebihnya.

Dengan mengkombinasikan heuristikheuristik ini, 1000 queens adalah feasible.

52

Problem: X::{1,2}, Y::{1,2}, Z::{1,2} X = Y, X Z, Y > Z

generate & test


X 1 1 1 1 2 2 2 Y 1 1 2 2 1 1 2 Z 1 2 1 2 1 2 1 test fail fail fail fail fail fail passed

backtracking
X 1 Y 1 2 1 2 Z 1 2 test fail fail fail fail passed

53

Ide:
Catat sisa nilai-nilai sah untuk unassigned variables Hentikan pencarian apabila tak ada variabel lagi yang memiliki legal values

54

Ide:
Catat sisa legal values untuk unassigned variables Hentikan pencarian apabila tak ada lagi variabel yang memiliki legal values

55

Ide:
Catat sisa legal values untuk unassigned variables Hentikan pencarian apabila tidak ada lagi variabel memiliki legal values

56

Idea:
Keep track of remaining legal values for unassigned variables Terminate search when any variable has no legal values

57

Forward checking propagates information from assigned to unassigned variables, but doesn't provide early detection for all failures:

NT and SA cannot both be blue! Constraint propagation repeatedly enforces constraints locally
58

Membuang nilai tidak konsisten dari domain variabel Representasi graph CSP Hanya binary dan unary constraints (no problem!) nodes = variables edges = constraints node consistency (NC) arc consistency (AC) path consistency (PC) (strong) k-consistency
59

Teknik konsistensi yang paling banyak digunakan (good simplification/performance


ratio)

Menggunakan individual binary a a a constraints


b c b c b c

X Y Z Revisi berulang terhadap arcs

60

Consistency Techniques

Problem:
X::{1,2}, Y::{1,2}, Z::{1,2} X = Y, X Z, Y > Z
X
1 2 X

1 2

1 Y

2 Y 1 2

1 2

1 2 Z

61

Consistency Techniques

empty domain => no solution cardinality of all domains is 1 => solution Problem:
X::{1,2}, Y::{1,2}, Z::{1,2} X Y, X Z, Y Z
X
1 2

2 Z 1 2

62

Bentuk propagasi paling sederhana membuat tiap arc consistent X Y adalah consistent iff
Untuk setiap nilai x dari X terdapat beberapa y yang diizinkan

63

Bentuk propagasi paling sederhana membuat tiap arc consistent X Y adalah consistent iff
Untuk setiap nilai x dari X terdapat beberapa y yang diizinkan

64

Bentuk propagasi paling sederhana membuat tiap arc consistent X Y adalah consistent iff

Untuk setiap nilai x dari X terdapat beberapa y yang diizinkan

Jika X kehilangan nilai, neighbors dari X perlu diperiksa ulang

65

Bentuk propagasi paling sederhana membuat tiap arc consistent X Y adalah consistent iff
Untuk setiap nilai x dari X terdapat beberapa y yang diizinkan

Jika X kehilangan nilai, neighbors dari X perlu diperiksa ulang Arc consistency mendetaksi failure lebih awal daripada forward checking Dapat dijalankan sebagai sebuah preprocessor atau setelah tiap assignment

66

Time complexity: O(n2d3)


67

Hill-climbing, simulated annealing berlaku tipikal dengan "complete" states, yakni, all variables assigned Untuk diterapkan pada CSPs:
Izinkan states dengan unsatisfied constraints operators reassign variable values

Pemilihan variable : pilih secara acak sembarang variabel yang konflik Pemilihan nilai dengan min-conflicts heuristic:
Pilih nilai yang melanggar constraint paling sedikit yakni, hill-climb dengan h(n) = jumlah total violated constraints

68

States: 4 queens in 4 columns (44 = 256 states) Actions: move queen in column Goal test: no attacks Evaluation: h(n) = number of attacks

Dengan initial state acak, dapat menyelesaikan nqueens dalam waktu yang hampir konstan untuk sembarang n dengan probabilitas tinggi (mis., n = 10,000,000)

69

Masalah pencarian Standar:

state adalah sebuah "black box sembarang struktur data yang mendukung successor function, heuristic function, dan goal test CSPs adalah sebuah permasalahan khusus:
states didefinisikan oleh nilai-nilai dari himpunan variabel yang tetap

state didefinisikan oleh variabel-variabel Xi dengan nilainilai dari domain Di

goal test adalah sebuah himpunan constraints yang menentukan kombinasi yang mungkin dari nilai-nilai subsets variabel2 tersebut.
goal test didefinisikan oleh constraints pada nilai-nilai variabel.

70

CSP merupakan contoh sederhana dari formal representation language.


Dapat menggunakan general-purpose algorithms yang lebih kuat daripada standard search algorithms

71

Backtracking = depth-first search dengan sebuah variabel diberikan per node


Variable ordering dan value selection heuristics membantu secara significant. Forward checking mencegah assignments yang menjamin guarantee failure yang terjadi kemudian Constraint propagation (e.g., arc consistency) menambah pekerjaan pada nilai-nilai constrain values dan mendeteksi ketidak konsistenan Iterative min-conflicts biasanya efektif dalam praktek

72

Вам также может понравиться