Penyelesaian Masalah
dengan Pencarian
Model Problem & Pencarian Solusi
Mengkonversi situasi yang diberikan ke
dalam situasi lain menggunakan sekumpulan
operasi tertentu.
Searching
: merepresentasikan masalah ke
dalam ruang keadaan.
Untuk melakukan hal ini, diperlukan sedikit
Masalah Jurigen Air
3-galon 4-galon
Kran air
• Terdapat dua jurigen tanpa skala ukuran.
• Sebuah kran air yang bisa mengeluarkan air tanpa batas.
Ruang Keadaan
Keadaan bisa berupa jumlah air yang berada
dalam jurigen 4-galon dan jurigen 3-galon.
Keadaan = (
x
,
y
)
x
= 0, 1, 2, 3, 4
y
= 0, 1, 2, 3
Keadaan Awal = (0, 0)
Keadaan Tujuan = (
n
, 2) untuk setiap nilai
n
Himpunan Operator
Operator (aturan produksi) adalah langkah
untuk mengubah suatu keadaan menjadi
keadaan yang lain.
Himpunan operator harus lengkap.
Solusi mungkin tidak ditemukan jika
himpunan operatornya tidak lengkap.
Bagaimana mengetahui kelengkapan
1 (x,y) If x < 4
(4,y) Isi penuh jurigen 4 galon
2 (x,y) If y < 3
(x,3) Isi penuh jurigen 3 galon
3 (x,y) If x > 0
(x-d,y) Buang sebagian air dari jurigen 4 galon
4 (x,y) If y > 0
(x,y-d) Buang sebagian air dari jurigen 3 galon
5 (x,y) If x > 0
(0,y) Kosongkan jurigen 4 galon
6 (x,y) If y > 0
7 (x,y)
If x+y 4 and y > 0
(4,y-(4-x)) Tuangkan air dari jurigen 3 galon ke jurigen 4 galon sampai jurigen 4 galon penuh
8 (x,y)
If x+y 3 and x > 0
(x-(3-y),3) Tuangkan air dari jurigen 4 galon ke jurigen 3 galon sampai jurigen 3 galon penuh
9 (x,y)
If x+y 4 and y > 0
(x+y,0) Tuangkan seluruh air dari jurigen 3 galon ke jurigen 4 galon
10 (x,y)
If x+y 3 and x > 0
(0,x+y) Tuangkan seluruh air dari jurigen 4 galon ke jurigen 3 galon
11 (0,2) (2,0) Tuangkan 2 galon air dari jurigen 3 galon ke jurigen 4 galon
12 (2,y) (0,y) Buang 2 galon air dalam jurigen 4 galon sampai habis.
Model
State : sebuah keadaan yang unik di dalam
problem
Aksi : operasi untuk mengubah keadaan dari satu
state ke state lain
Ruang Pencarian : kumpulan state-state berbeda
Problem : Perbedaan antara state awal dengan
state goal
Solusi : menerapkan strategi searching untuk
menemukan rangkaian state yang mengantarkan
dari state awal ke state tujuan
Contoh: Romania
Liburan di Romania; tepatnya di Arad.
Perjalanan menuju Bucharest
Formulasikan tujuan:
di Bucharest
Formulasikan masalah:
states: kota-kota
actions: mengemudi antar 2 kota
Temukan solusi:
Formulasi problem
Sebuah masalah didefinisikan dalam 4 komponen:
1. status awal, contoh: “di Arad” atau”in (Arad)" 2. aksi atau fungsi suksesor
<Arad Zerind, Zerind> <Go(Zerind), Zerind>
S(x) = state space, himpunan dari aksi dan status yang mungkin dari status awal ke status akhir. Membentuk graf.
3. goal test:
eksplisit, contoh x = “Bucharest“atau”in (Arad)" implisit, contoh Biaya/path cost (tambahan)
contoh jumlah jarak, jumlah aksi yang dieksekusi, dll.
c(x,a,y) adalah biaya per aksi, diasumsikan besarnya ≥ 0. Sebuah solusi
Menentukan
state space
State space
merupakan abstraksi dari
penyelesaian masalah
Status (abstrak) = kumpulan dari
status-status riil
Aksi (abstrak) = kombinasi komplex dari
aksi-aksi riil
Contoh: "Arad
Zerind" merepresentasikan
sebuah himpunan kompleks dari rute, detours,
tempat istirahat, dll.
Contoh: 8-puzzle
status? Lokasi dari ubin (tile)
aksi? move blank left, right, up, down
goal test? = is state match (given)
biaya? 1 per aksi
Tree Search
Ide dasar:
Mensimulasikan eksplorasi state space dengan
membangkitkan semua status suksesor dari status yang baru saja dieksplor
Implementasi: status vs. node
Status adalah representasi dari konfigurasi fisik
Simpul (node) adalah struktur data yang merupakan bagian
dari pohon pencarian yang terdiri dari status, node induk (parent), aksi, biaya (path cost: g(x)), dan kedalaman (depth)
Fungsi Expand membangkitkan seluruh node suksesor,
berdasarkan status-status yang diberikan oleh fungsi
Strategi-strategi Pencarian
Strategi pencarian didefinisikan berdasarkan penentuan
urutan pemrosesan node
Strategi dievaluasi menurut dimensi-dimensi berikut:
completeness: apakah pasti menemukan solusi jika memang ada?
Kompleksitas waktu: jumlah nodes yang dibangkitkan
Kompleksitas memori: jumlah maksimum nodes di memori
optimal: apakah selalu menemukan solusi dengan biaya terendah?
Kompleksitas waktu dan memori diukur dalam terminologi
berikut:
b: faktor pencabangan maksimal dari pohon pencarian
d: kedalaman dari solusi berbiaya terendah
Strategi2 Pencarian BLIND SEARCH/
Uninformed
Strategi pencarian
Uninformed
hanya
menggunakan informasi yang tersedia pada
definisi masalah
Breadth-first search
Uniform-cost search
Depth-first search
Depth-limited search
Breadth-first search (BFS)
Memprioritaskan
node se-level
Implementasi:
fringe
berupa antrian (queue): suksesor2 baru
ditempatkan di belakang
Breadth-first search
(b)
(d)
Properti BFS
Complete Ya (jika
b
terbatas)
Waktu?
1+b+b
2+b
3+… +
b
d+
b(b
d-1
) = O(b
d+1)
memori?
O(b
d+1)
(menyimpan semua node di memory) Optimal? Ya (jika biaya=1 per langkah)
Perbaikan: Uniform Cost Search (UCS)
Prioritas node yang dieksplorasi adalah node yang
memberikan path cost terendah
Implementasi:
fringe = antrian berdasar biaya
Depth-first search
Mengeksplor node yang levelnya lebih bawah
Implementasi
:
Properties of depth-first search
Complete? Tidak: gagal pada ruang
pencarian dengan kedalaman yang tinggi
Waktu?
O(b
m)
: sangat jelek jika m jauh
lebih besar dari d
Memori?
O(bm)
Optimal? Tidak,
Jika ada lebih dari 1 solusi
27
INFORMED SEARCH/HEURISTIC
SEARCH
Ide:
- menggunakan fungsi evaluasi
f(n)
untuk
membangkitkan node suksesor
- mengurutkan node suksesor berdasarkan
harga, hasil dari
f(n)
Kasus khusus:
greedy BFS
A
*search
28
Greedy BFS
Mempertimbangkan harga perkiraan, bukan
harga sebenarnya
Fungsi Evaluasi
f(n) = h(n)
= estimasi biaya dari node n ke tujuan
contoh
h
SLD(n)
=
straight-line distance
dari
node n ke ke kota B
Greedy BFS memprioritaskan node yang
29
Fungsi Heuristik
Fungsi h(N), memperkirakan biaya dari jalur
termurah dari node n ke node tujuan.
contoh: 8-puzzle
1 2 3 4 5 6 7 8 1 2 3 4 5 6 7 8 N goalh(N) = jumlah ubin salah alamat = 6
h(N) = jumlah jarak setiap posisi ubin ke posisi akhirnya = 2 + 3 + 0 + 1 + 3 + 0 + 3 + 1
30
Romania (
step cost
dalam km
)
A (366) B (0) C (160) D (242) E (161) F (176) G (77) H (151) I (226) L (244) M (241) N (234) O (380) P (100) R (193) S (253) T (329) U (80) V (199) Z (374) Jarak langsung ke B
31
32
Properti Greedy BFS
Complete? Tidak – mungkin terjadi loop
contoh: I
N
I
N
Waktu?
O(b
m)
Memori?
O(b
m)
– menyimpan semua nodes
di memori
33
A
*
search
Menggabungkan
uniform cost search
dengan
greedy search
Ide: menghindari jalur dengan biaya yang tinggi
Fungsi evaluasi
f(n) = g(n) + h(n)
g(n)
= biaya sesungguhnya dari node awal ke
node n
h(n)
= perkiraan biaya dari node n ke
tujuan
f(n)
= perkiraan biaya total dari node asal
34
35
Properti A*
Complete? Ya (kecuali jika terdapat node
dengan f
≤ f(G)
)
Waktu? Exponential
memori? Menyimpan semua node di memori
36
Kasus Khusus Searching
Tempatkan n ratu pada papan n x n kotak, setiap ratu
menempati sebuah kotak, tidak ada 2 atau lebih ratu pada kolom, baris, dan diagonal yang sama
37
38
Hill-climbing search
Problem: tergantung dari status awal, bisa
39
Hill-climbing search
: Persoalan
8-Ratu
h = jumlah pasangan ratu yang berada pada baris /kolom/ diagonal yang sama h = 17 utnuk status di atas
40
Hill-climbing search
: 6-Ratu
Sebuah minimum lokal dengan
h = 1
41
Simulated annealing (SA) search
Idea: menghindari maksimum lokal dengan membolehkan
status yang lebih jelek dari status sebelumnya, tetapi secara gradual mengurangi frekuensinya
Constraint Satisfaction
Problems
Constraint satisfaction problems (CSP)
Pencarian standar:
state adalah sebuah "black box“ – struktur data
mendukung fungsi suksesor, fungsi heuristik, dan goal test
CSP:
state didefinisikan dalam bentuk variabel Xi dengan nilai
dari domain Di
goal test adalah himpunan konstrain yang
menspesikasikan kombinasi nilai variabel yang dibolehkan
Contoh:
Map-Coloring
Variabel WA, NT, Q, NSW, V, SA, T Domain Di = {merah, hijau, biru}
Konstrain: daerah-daerah yang bertetangga harus mempunyai warna yang berbeda
Contoh: WA ≠ NT atau (WA,NT) in {(merah,hijau),(merah,biru),(hijau,merah), (hijau,biru),(biru,merah),(biru,hijau)}
Constraint graph
Binary CSP: setiap konstrain berhubungan dengan 2 variabel
Constraint graph: simpul adalah variabel dan busur adalah
konstrain
Solusi berupa pernyataan lengkap dan konsisten, contohnya:
WA = merah, NT = hijau,Q = merah,NSW = hijau,V = merah,SA = biru,T = hijau
Jenis Konstrain
Unary constraints
hanya melibatkan sebuah
variabel,
contoh SA ≠ hijau
Binary constraints
melibatkan pasangan variabel
contoh SA ≠ WA
Higher-order constraints
melibatkan 3 atau lebih
variabel
Contoh:
Cryptarithmetic
Variabel: F T U W
R O X1 X2 X3
Domain: {0,1,2,3,4,5,6,7,8,9} Konstrain: 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
CSP pada dunia nyata
Persoalan penugasan
Contoh: siapa (dosen) mengajar kelas apa
Timetabling
Contoh: jadwal perkuliahan
Penjadwalan transportasi
Penjadwalan produksi
Formulasi Pencarian standar
Menggunakan DFS
Solusi akan ditemukan pada kedalaman n untuk variabel
berjumlah n
Jalur/path tidak dipentingkan
Pernyataan bersifat komutatif, contoh:
[WA=merah maka NT=hijau] sama dengan [NT=hijau maka WA=merah]
Status awal: himpunan kosong { }
Fungsi suksesor: menyatakan sebuah nilai ke sebuah variabel yang tidak konflik dengan pernyataan-pernyataan yang sudah ada
Gagal jika terdapat pernyataan tidak legal
Games vs. search problems
"Unpredictable" opponent
specifying a
move for every possible opponent reply
Time limits
unlikely to find goal, must
approximate
Game tree (2-player,
deterministic, turns)
Minimax
Perfect play for deterministic games
Idea: choose move to position with highest minimax value
= best achievable payoff against best play
E.g., 2-ply game:
Properties of minimax
Complete? Yes (if tree is finite)
Optimal? Yes (against an optimal opponent)
Time complexity? O(bm)
Space complexity? O(bm) (depth-first exploration)
For chess, b ≈ 35, m ≈100 for "reasonable" games
exact solution completely infeasible