informed (heuristic) search

43
Informed (Heuristic) Search

Upload: jory

Post on 21-Jan-2016

88 views

Category:

Documents


0 download

DESCRIPTION

Informed (Heuristic) Search. Informed (Heuristic) Search. Pencarian buta tidak selalu dapat diterapkan dengan baik, hal ini disebabkan waktu aksesnya yang cukup lama serta besarnya memori yang dibutuhkan. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Informed (Heuristic) Search

Informed (Heuristic) Search

Page 2: Informed (Heuristic) Search

Informed (Heuristic) Search Pencarian buta tidak selalu dapat

diterapkan dengan baik, hal ini disebabkan waktu aksesnya yang cukup lama serta besarnya memori yang dibutuhkan.

Kelemahan ini sebenarnya dapat diatasi jika ada informasi tambahan (fungsi heuristik) dari domain yang bersangkutan.

Fungsi heuristik digunakan untuk menghitung biaya perkiraan dari suatu simpul tertentu menuju ke simpul tujuan.

Page 3: Informed (Heuristic) Search

Fungsi heuristik

Misalkan pada kasus 8-puzzle Ada 4 operator yang dapat digunakan

untuk menggerakkan dari satu keadaan (state) ke keadaan yang baru.

Geser ubin kosong ke kiri Geser ubin kosong ke kanan Geser ubin kosong ke atas Geser ubin kosong ke bawah

Page 4: Informed (Heuristic) Search

Fungsi heuristik

Page 5: Informed (Heuristic) Search

Fungsi heuristik

Informasi yang diberikan dapat berupa jumlah ubin yang menempati posisi yang benar. Jumlah yang lebih tinggi adalah yang diharapkan.

Sehingga langkah selanjutnya yang harus dilakukan adalah menggeser ubin kosong ke kiri.

Page 6: Informed (Heuristic) Search

Fungsi heuristikFungsi heuristik

Informasi yang diberikan berupa Informasi yang diberikan berupa straight-line distancestraight-line distance (jarak dalam garis (jarak dalam garis lurus) antara tiap kota dengan Bucharest. lurus) antara tiap kota dengan Bucharest.

Page 7: Informed (Heuristic) Search

Informed (Heuristic) Search Di sini hanya akan dibahas 6

metode yang tergolong informed search, yaitu:

Generate and Test Simple Hill Climbing Steepest-Ascent Hill Climbing Simulated Annealing Greedy Best-First Search A*

Page 8: Informed (Heuristic) Search

Generate-and-Test (GT) Metode Generate-and-Test (GT) adalah

metode yang paling sederhana dalam teknik pencarian heuristik.

Di dalam GT, terdapat dua prosedur penting: Pembangkit (generate), yang

membangkitkan semua solusi yang mungkin.

Test, yang menguji solusi yang dibangkitkan tersebut.

Algoritma GT menggunakan prosedur Depth First Search karena suatu solusi harus dibangkitkan secara lengkap sebelum dilakukan Test.

Page 9: Informed (Heuristic) Search

Generate-and-Test (GT)

Dengan penggunaan memori yang sedikit, DFS bisa digunakan sebagai prosedur pembangkit yang menghasilkan suatu solusi.

Prosedur Test bisa menggunakan fungsi heuristik.

Page 10: Informed (Heuristic) Search

Algoritma Generate-and-Test 1. Bangkitkan sebuah solusi yang

mungkin. Solusi bisa berupa suatu keadaan (state) tertentu. Solusi juga bisa berupa sebuah jalur dari satu posisi asal ke posisi tujuan, seperti dalam kasus pencarian rute dari satu kota asal ke kota tujuan.

2. Tes apakah solusi yang dibangkitkan tersebut adalah sebuah solusi yang bisa diterima sesuai dengan kriteria yang diberikan.

3. Jika solusi telah ditemukan, keluar. Jika belum, kembali ke langkah 1.

Page 11: Informed (Heuristic) Search

Generate-and-Test (GT) Contoh: Traveling Salesman

Problem (TSP) Seorang salesman ingin

mengunjungi sejumlah n kota. Akan dicari rute terpendek di mana setiap kota hanya boleh dikunjungi tepat 1 kali.

Jarak antara tiap-tiap kota sudah diketahui. Misalkan ada 4 kota dengan jarak antara tiap-tiap kota seperti terlihat pada gambar berikut.

Page 12: Informed (Heuristic) Search

Generate-and-Test (GT)

Penyelesaian dengan menggunakan Generate-and-Test dilakukan dengan membangkitkan solusi-solusi yang mungkin dengan menyusun kota-kota dalam urutan abjad, yaitu: A-B-C-D A-B-D-C A-C-B-D A-C-D-B dan seterusnya

Page 13: Informed (Heuristic) Search

Generate-and-Test

Misalkan kita mulai dari node A. Kita pilih sebagai keadaan awal adalah lintasan ABCD dengan panjang lintasan = 19.

Kemudian kita lakukan backtracking untuk mendapatkan lintasan ABDC dengan panjang lintasan = 18.

Page 14: Informed (Heuristic) Search

Generate-and-Test Lintasan ini kita bandingkan dengan

lintasan ABCD, ternyata ABDC < ABCD, sehingga lintasan terpilih adalah ABDC.

Kita lakukan lagi backtracking untuk mendapatkan lintasan ACBD (=12), ternyata ACBD < ABDC, maka lintasan terpilih sekarang adalah ACBD.

Demikian seterusnya hingga ditemukan solusi yang sebenarnya.

Salah satu kelemahan dari metode ini adalah perlunya dibangkitkan semua kemungkinan solusi sehingga membutuhkan waktu yang cukup besar dalam pencariannya.

Page 15: Informed (Heuristic) Search

Hill Climbing (HC) Terdapat 2 jenis HC yang sedikit

berbeda, yakni Simple Hill Climbing (HC sederhana) dan Steepest-Ascent Hill Climbing (HC dengan memilih kemiringan yang paling tajam/curam).

Simple HC, langsung memilih new state yang memiliki jalur yang lebih baik (“curam”) daripada jalur-jalur sebelumnya tanpa memperhitungkan jalur-jalur lain yang lebih “curam”.

Sedangkan Steepest-Ascent HC, akan mengevaluasi semua state yang berada di bawah current state dan memilih state dengan jalur yang paling “curam”.

Page 16: Informed (Heuristic) Search

Algoritma Simple HCAlgoritma Simple HC1.1. Evaluasi Evaluasi initial stateinitial state. Jika state ini adalah . Jika state ini adalah goal stategoal state, ,

maka kembalikan state ini sebagai solusi dan keluar dari maka kembalikan state ini sebagai solusi dan keluar dari program. Jika state ini bukan goal state, lanjutkan proses program. Jika state ini bukan goal state, lanjutkan proses dengan initial state sebagai dengan initial state sebagai current statecurrent state..

2.2. Ulangi sampai solusi ditemukan atau sampai tidak ada Ulangi sampai solusi ditemukan atau sampai tidak ada operator baru yang dapat diaplikasikan terhadap current operator baru yang dapat diaplikasikan terhadap current state:state:

a)a) Pilih sebuah operator yang belum diaplikasikan Pilih sebuah operator yang belum diaplikasikan terhadap current state dan aplikasikan operator terhadap current state dan aplikasikan operator tersebut sehingga menghasilkan new state.tersebut sehingga menghasilkan new state.

b)b) Evaluasi new state:Evaluasi new state:I.I. Jika state ini adalah goal state, maka Jika state ini adalah goal state, maka

kembalikan state ini sebagai solusi dan kembalikan state ini sebagai solusi dan keluar dari program.keluar dari program.

II.II. Jika state ini bukan goal state tetapi lebih Jika state ini bukan goal state tetapi lebih baik daripada current state, maka jadikan baik daripada current state, maka jadikan state ini sebagai current state.state ini sebagai current state.

III.III. Jika state ini tidak lebih baik daripada current Jika state ini tidak lebih baik daripada current state, kembali ke langkah 2.a.state, kembali ke langkah 2.a.

Page 17: Informed (Heuristic) Search

Pencarian solusi menggunakan Simple HC

S menyatakan intial state, sedangkan G menyatakan goal state.

Variable f di setiap state menyatakan biaya antara state tersebut dengan goal state. Nilai f pada goal state = 0.

Page 18: Informed (Heuristic) Search

Pencarian solusi menggunakan Simple HC

Simple HC langsung memilih state B sebagai next state karena nilai f pada state B lebih kecil dibandingkan nilai f pada state S.

Di sini tidak dipertimbangkan nilai f pada state C. Misalkan pada akhir iterasi, Simple HC mengembalikan solusi G

yang berada di level 6, padahal ada solusi yang lebih baik pada level 2. Dengan demikian Simple HC tidak optimal.

Page 19: Informed (Heuristic) Search

Algoritma Steepest-Ascent HCAlgoritma Steepest-Ascent HC1.1. Evaluasi Evaluasi initial stateinitial state. Jika state ini adalah . Jika state ini adalah goal stategoal state, maka kembalikan , maka kembalikan

state ini sebagai solusi dan keluar dari program. Jika state ini bukan state ini sebagai solusi dan keluar dari program. Jika state ini bukan goal state, lanjutkan proses dengan initial state sebagai goal state, lanjutkan proses dengan initial state sebagai current statecurrent state..

2.2. Ulangi sampai solusi ditemukan atau sampai tidak ada perubahan Ulangi sampai solusi ditemukan atau sampai tidak ada perubahan terhadap current state:terhadap current state:

a)a) Misalkan SUK adalah suatu state yang menjadi suksesor dari Misalkan SUK adalah suatu state yang menjadi suksesor dari current state.current state.

b)b) Untuk setiap operator yang bisa dilakukan terhadap current Untuk setiap operator yang bisa dilakukan terhadap current state, kerjakan:state, kerjakan:

I.I. Aplikasikan operator tersebut dan bangkitkan new state.Aplikasikan operator tersebut dan bangkitkan new state.II.II. Evaluasi new state. Jika merupakan goal state, kembalikan Evaluasi new state. Jika merupakan goal state, kembalikan

state ini sebagai solusi dan keluar dari program. Jika bukan state ini sebagai solusi dan keluar dari program. Jika bukan goal state, bandingkan new state dengan SUK. Jika new goal state, bandingkan new state dengan SUK. Jika new state lebih baik daripada SUK, maka ganti SUK dengan new state lebih baik daripada SUK, maka ganti SUK dengan new state. Jika tidak lebih baik, SUK tidak perlu diganti.state. Jika tidak lebih baik, SUK tidak perlu diganti.

c)c) Jika SUK lebih baik dari current state, maka ganti current Jika SUK lebih baik dari current state, maka ganti current state dengan SUKstate dengan SUK

Page 20: Informed (Heuristic) Search

Pencarian solusi menggunakan Steepest-Ascent HC

Dari state S, Steepest-Ascent HC akan mengevaluasi semua state yang menjadi next state atau suksesornya, yaitu A, B, dan C. Dari ketiga suksesor tersebut dipilih suksesor dengan nilai f yang terkecil.

State C akan dipilih sebagai suksesor S. Misalkan, hasil penelusuran menemukan solusi G di level 4, padahal ada

solusi optimal di level 2, dalam hal ini Steepest-Ascent HC dikatakan terjebak pada solusi lokal atau local minimum. Jadi Steepest-Ascent HC juga tidak optimal.

Page 21: Informed (Heuristic) Search

Simulated Anealing (SA) SA memanfaatkan analogi cara

pendinginan dan pembekuan metal menjadi sebuah kristal dengan energi yang minimal.

SA menggunakan sebuah rumus probabilitas yang memungkinkannya bisa keluar dari local minimum.

Ketika new state tidak lebih baik dari current state, maka new state tersebut masih mungkin dipilih dengan probabilitas sebagai berikut:

p(E) = e-E/T ……………(4.1)

Page 22: Informed (Heuristic) Search

Algoritma Simulated AnnealingAlgoritma Simulated Annealing1.1. Evaluasi Evaluasi initial stateinitial state. Jika state ini adalah . Jika state ini adalah goal stategoal state, maka , maka

kembalikan state ini sebagai solusi dan keluar dari program. kembalikan state ini sebagai solusi dan keluar dari program. Jika state ini bukan goal state, lanjutkan proses dengan initial Jika state ini bukan goal state, lanjutkan proses dengan initial state sebagai state sebagai current statecurrent state..

2.2. Inisialisasi BEST-SO-FAR dengan current state.Inisialisasi BEST-SO-FAR dengan current state.3.3. Inisialisasi T sesuai dengan annealing schedule.Inisialisasi T sesuai dengan annealing schedule.4.4. Ulangi sampai solusi ditemukan atau sampai tidak ada lagi Ulangi sampai solusi ditemukan atau sampai tidak ada lagi

operator baru yang dapat diaplikasikan terhadap current state:operator baru yang dapat diaplikasikan terhadap current state:a)a) Pilih sebuah operator yang belum diaplikasikan terhadap Pilih sebuah operator yang belum diaplikasikan terhadap

current state dan aplikasikan operator tersebut sehingga current state dan aplikasikan operator tersebut sehingga menghasilkan new state.menghasilkan new state.

b)b) Evaluasi new state. Hitung:Evaluasi new state. Hitung:E = f(current state) – f(new state)E = f(current state) – f(new state)

I.I. Jika new state adalah goal state, maka kembalikan Jika new state adalah goal state, maka kembalikan state ini sebagai solusi dan keluar dari program.state ini sebagai solusi dan keluar dari program.

II.II. Jika new state bukan goal tetapi lebih baik daripada Jika new state bukan goal tetapi lebih baik daripada current state (current state (E > 0), maka set current state ke new E > 0), maka set current state ke new state. Juga set BEST-SO-FAR ke new state.state. Juga set BEST-SO-FAR ke new state.

Page 23: Informed (Heuristic) Search

Algoritma Simulated AnnealingAlgoritma Simulated AnnealingIII.III. Jika new state tidak lebih baik daripada Jika new state tidak lebih baik daripada

current state (current state (E ≤ 0), maka set current E ≤ 0), maka set current state ke new state dengan probabilitas p state ke new state dengan probabilitas p seperti didefinisikan oleh persamaan 4.1 di seperti didefinisikan oleh persamaan 4.1 di atas. atas. Langkah ini biasanya Langkah ini biasanya diimplementasikan dengan membangkitkan diimplementasikan dengan membangkitkan sebuah bilangan acak dalam interval [0,1]. sebuah bilangan acak dalam interval [0,1]. Jika bilangan tersebut lebih besar dari p, Jika bilangan tersebut lebih besar dari p, maka jangan mengerjakan apa pun.maka jangan mengerjakan apa pun.

c)c) Jika diperlukan, revisi nilai T berdasarkan Jika diperlukan, revisi nilai T berdasarkan annealing schedule.annealing schedule.

5.5. Kembalikan BEST-SO-FAR sebagai solusi.Kembalikan BEST-SO-FAR sebagai solusi.

Page 24: Informed (Heuristic) Search

Pencarian solusi menggunakan Simulated Annealing

Misalkan S adalah current state dan A adalah new state. Ketika dievaluasi, ternyata new state tidak lebih baik daripada

current state. Tetapi, ketika dibangkitkan bilangan acak dalam interval [0,1]

menghasilkan angka kurang dari probabilitas p, maka A dipilih sebagai current state.

Pada akhirnya, SA dapat menemukan solusi optimum di level 2. Karena bergantung pada suatu nilai probabilitas, maka SA tidak

selalu optimal.

Page 25: Informed (Heuristic) Search

Best First Search Sesuai dengan namanya, Best First

Search membangkitkan simpul berikutnya dari sebuah simpul (yang sejauh ini) terbaik di antara semua leaf node (simpul daun) yang pernah dibangkitkan.

Penentuan simpul terbaik dapat dilakukan dengan menggunakan informasi berupa biaya perkiraan dari suatu simpul menuju ke goal atau gabungan antara biaya sebenarnya dan biaya perkiraan tersebut.

Page 26: Informed (Heuristic) Search

Best First Search

Terdapat 2 jenis algoritma Best First Search: Greedy Best First Search, yang

hanya memperhitungkan biaya perkiraan saja.

Algoritma A* yang memperhitungkan gabungan dua biaya, biaya sebenarnya dan biaya perkiraan.

Secara informal, pseudo code algoritma Best First Search diilustrasikan berikut ini.

Page 27: Informed (Heuristic) Search

Best First Search Pada algoritma tersebut, OPEN

adalah list yang digunakan untuk menyimpan simpul-simpul yang pernah dibangkitkan dan nilai heuristiknya telah dihitung tetapi belum dipilih sebagai simpul terbaik.

CLOSED digunakan untuk menyimpan simpul-simpul yang sudah pernah dibangkitkan dan sudah pernah terpilih sebagai simpul terbaik.

Page 28: Informed (Heuristic) Search

Algoritma Best First SearchAlgoritma Best First Search1.1. OPEN berisi initial state dan CLOSED masih kosong.OPEN berisi initial state dan CLOSED masih kosong.2.2. Ulangi sampai goal ditemukan atau sampai tidak ada lagi node Ulangi sampai goal ditemukan atau sampai tidak ada lagi node

di dalam OPEN:di dalam OPEN:a)a) Ambil simpul terbaik yang ada di OPEN.Ambil simpul terbaik yang ada di OPEN.b)b) Jika simpul tersebut sama dengan goal, maka sukses.Jika simpul tersebut sama dengan goal, maka sukses.c)c) Jika tidak, masukkan simpul tersebut ke dalam CLOSED.Jika tidak, masukkan simpul tersebut ke dalam CLOSED.d)d) Bangkitkan semua suksesor dari simpul tersebut.Bangkitkan semua suksesor dari simpul tersebut.e)e) Untuk setiap suksesor kerjakan:Untuk setiap suksesor kerjakan:

I.I. Jika suksesor tersebut belum pernah dibangkitkan, Jika suksesor tersebut belum pernah dibangkitkan, evaluasi suksesor tersebut, tambahkan ke OPEN, evaluasi suksesor tersebut, tambahkan ke OPEN, dan catat parent atau orang tuanya.dan catat parent atau orang tuanya.

II.II. Jika suksesor tersebut sudah pernah dibangkitkan, Jika suksesor tersebut sudah pernah dibangkitkan, ubah parent-nya jika jalur melalui parent ini lebih ubah parent-nya jika jalur melalui parent ini lebih baik daripada jalur melalui parent yang baik daripada jalur melalui parent yang sebelumnyasebelumnya. Selanjutnya perbarui biaya untuk . Selanjutnya perbarui biaya untuk suksesor tersebut dan nodes lain yang berada di level suksesor tersebut dan nodes lain yang berada di level bawahnya.bawahnya.

Page 29: Informed (Heuristic) Search

Greedy Best First Search Greedy Best First Search hanya

memperhitungkan biaya perkiraan (estimated cost) saja, yakni:

f(n) = h(n)

di mana h(n)= perkiraan biaya dari simpul n ke goal.

Biaya yang sebenarnya (actual cost) tidak diperhitungkan.

Dengan hanya memperhitungkan biaya perkiraan yang belum tentu kebenarannya maka algoritma ini menjadi tidak optimal.

Page 30: Informed (Heuristic) Search

Greedy Best First SearchGreedy Best First Search

f(n) = h(n)f(n) = h(n) h(n) = jarak garis lurus dari node n ke goal (Bucharest)h(n) = jarak garis lurus dari node n ke goal (Bucharest)

Page 31: Informed (Heuristic) Search

Greedy Best-First SearchGreedy Best-First Search

Page 32: Informed (Heuristic) Search

Greedy Best-First SearchGreedy Best-First Search

Page 33: Informed (Heuristic) Search

Greedy Best-First SearchGreedy Best-First Search

Page 34: Informed (Heuristic) Search

Greedy Best-First SearchGreedy Best-First Search

Solusi yang ditemukan adalah: Arad, Sibiu, Fagaras, Solusi yang ditemukan adalah: Arad, Sibiu, Fagaras, Bucharest.Bucharest.

Ternyata solusi ini tidak optimal karena ada solusi lain yang Ternyata solusi ini tidak optimal karena ada solusi lain yang lebih baik, yaitu: Arad, Sibiu, Rimnicu Vilcea, Pitesti, lebih baik, yaitu: Arad, Sibiu, Rimnicu Vilcea, Pitesti, Bucharest yang lebih pendek 32 kilometer.Bucharest yang lebih pendek 32 kilometer.

Page 35: Informed (Heuristic) Search

Algoritma A* Algoritma ini merupakan algoritma Best

First Search yang menggabungkan Uniform Cost Search dan Greedy Best First Search.

Algoritma ini memperhitungkan biaya dari biaya sebenarnya ditambah dengan biaya perkiraan.

Dalam notasi matematika dituliskan sebagai:

f(n) = g(n) + h(n)

g(n) = biaya sebenarnya untuk mencapai simpul n h(n) = perkiraan biaya dari simpul n ke goal. f(n) = perkiraan total biaya jalur yang melalui

simpul n ke goal. Dengan perhitungan biaya seperti ini,

algoritma A* adalah complete dan optimal.

Page 36: Informed (Heuristic) Search

A*A*

f(n) = g(n) + h(n)f(n) = g(n) + h(n) g(n) = biaya sebenarnya untuk mencapai sebuah node (kota) ng(n) = biaya sebenarnya untuk mencapai sebuah node (kota) n h(n) = jarak garis lurus dari node n ke goal (Bucharest)h(n) = jarak garis lurus dari node n ke goal (Bucharest)

Page 37: Informed (Heuristic) Search

AA** search example search example

Page 38: Informed (Heuristic) Search

AA** search example search example

Page 39: Informed (Heuristic) Search

AA** search example search example

Page 40: Informed (Heuristic) Search

AA** search example search example

Page 41: Informed (Heuristic) Search

AA** search example search example

Page 42: Informed (Heuristic) Search

AA** search example search example

Page 43: Informed (Heuristic) Search

AA** search example search example

Solusi yang ditemukan adalah solusi optimal, yaitu: Solusi yang ditemukan adalah solusi optimal, yaitu: Arad, Sibiu, Rimnicu Vilcea, Pitesti, Bucharest.Arad, Sibiu, Rimnicu Vilcea, Pitesti, Bucharest.