2 Problem SolvingbySearching
-
Upload
megawatisinaga -
Category
Documents
-
view
16 -
download
1
description
Transcript of 2 Problem SolvingbySearching
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 kemampuan rekayasa.
Masalah Jurigen Air
3-galon
4-galon
Kran air
• Terdapat dua jurigen tanpa skala ukuran. • Sebuah kran air yang bisa mengeluarkan air tanpa batas. • Bagaimana mendapatkan tepat 2 galon air di dalam jurigen 3-galon?
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 berupa bilangan bulat [0, 4].
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 himpunan operator?
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
(x,0) Kosongkan jurigen 3 galon
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
8
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:
Urutan kota, contohnya: Arad, Sibiu, Fagaras, Bucharest
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
adalah urutan aksi mulai dari status awal sampai dengan status akhir
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
[Note: optimal solution of n-Puzzle family is NP-hard]
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 SuccessorFn
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
m: kedalaman maksimum dari ruang pencarian (mungkin ∞)
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
Iterative deepening search
Breadth-first search (BFS)
Memprioritaskan node se-level
Implementasi:
fringe berupa antrian (queue): suksesor2 baru ditempatkan di belakang
(a)
Properti BFS
Complete Ya (jika b terbatas)
Waktu? 1+b+b2+b3+… +bd + b(bd-1) = O(bd+1)
memori? O(bd+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
Ekivalen dengan BFS jika biaya per langkah sama
Depth-first search
Mengeksplor node yang levelnya lebih bawah
Implementasi:
fringe = stack, menempatkan suksesor di depan
Properties of depth-first search
Complete? Tidak: gagal pada ruang pencarian dengan kedalaman yang tinggi
Waktu? O(bm) : sangat jelek jika m jauh lebih besar dari d
Memori? O(bm)
Optimal? Tidak, Jika ada lebih dari 1 solusi pada level yang beda, solusi mungkin
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 hSLD(n) = straight-line distance dari node n ke ke kota B
Greedy BFS memprioritaskan node yang terlihat lebih dekat ke tujuan
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 goal
h(N) = jumlah ubin salah alamat = 6
h(N) = jumlah jarak setiap posisi ubin ke posisi akhirnya = 2 + 3 + 0 + 1 + 3 + 0 + 3 + 1
= 13
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
32
Properti Greedy BFS
Complete? Tidak – mungkin terjadi loop contoh: I N I N
Waktu? O(bm)
Memori? O(bm) – menyimpan semua nodes di memori
Optimal? Tidak (krn yg dgunakan hanya harga perkiraan)
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 ke node tujuan dengan melewati n
35
Properti A*
Complete? Ya (kecuali jika terdapat node dengan f ≤ f(G) )
Waktu? Exponential
memori? Menyimpan semua node di memori
Optimal? ya
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
38
Hill-climbing search
Problem: tergantung dari status awal, bisa terjebak pada maksimum lokal maxima
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
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 (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
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
Goal test: Pernyataan lengkap
Games vs. search problems
"Unpredictable" opponent specifying a
move for every possible opponent reply
Time limits unlikely to find goal, must
approximate
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: