2 Problem SolvingbySearching

57
Penyelesaian Masalah dengan Pencarian

description

2 Problem SolvingbySearching

Transcript of 2 Problem SolvingbySearching

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 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

Contoh: Romania

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

Contoh tree search

Implementasi: general tree search

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)

Breadth-first search

(b)

(d)

(c)

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

Depth-first search

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

Pencarian Heuristik

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

31

Greedy BFS (contoh)

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

34

A* search (contoh)

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

37

Hill-climbing search

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

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

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

Backtracking search

Contoh backtracking

Game Playing Search

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:

Minimax algorithm

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