Metodepencarianheuristik 121108094422-phpapp02

27
1 METODE PENCARIAN HEURISTIK

description

Metodepencarianheuristik

Transcript of Metodepencarianheuristik 121108094422-phpapp02

Page 1: Metodepencarianheuristik 121108094422-phpapp02

1

METODE PENCARIAN HEURISTIK

Page 2: Metodepencarianheuristik 121108094422-phpapp02

2

Pencarian Heuristik

Merupakan teknik yang digunakan untuk meningkatkan efisiensi dari proses pencarian

Dalam pencarian state space, heuristik adalah aturan untuk memilih cabang-cabang yang paling mungkin menyebabkan penyelesaian permasalahan dapat diterima

Page 3: Metodepencarianheuristik 121108094422-phpapp02

3

Metode Pencarian Heuristik

1. Generate and Test (Pembangkit dan Pengujian)

2. Hill Climbing (Pendakian Bukit)

3. Best First Search (Pencarian Terbaik Pertama)

4. Simulated Annealing

Page 4: Metodepencarianheuristik 121108094422-phpapp02

4

Generate and Test (Pembangkit dan Pengujian)

Pengabungan antara depth first search dengan pelacakan mundur (backtracking)

Nilai Pengujian berupa jawaban ‘ya’ atau ‘tidak’

Jika pembangkit possible solution dikerjakan secara sistimatis, maka prosedur akan mencari solusinya, jika ada.

Page 5: Metodepencarianheuristik 121108094422-phpapp02

5

Algoritma:

Bangkitkan suatu kemungkinan solusi

Uji apakah node tersebut merupakan solusi, dengan cara membandingkan node atau node akhir suatu lintasan yang dipilih dengan kumpulan tujuan yang diharapkan

Jika solusi ditemukan, keluar. Jika tidak, ulangi langkah pertama.nya dengan

Page 6: Metodepencarianheuristik 121108094422-phpapp02

6

Contoh kasus: Traveling Salesman Problem (TSP)

Seorang salesmen ingin mengunjungi n kota. Jarak antara tiap-tiap kota sudah diketahui. Diinginkan rute terpendek dimana setiap kota sudah diketahui.

A B

C D

8

657

3 4

Page 7: Metodepencarianheuristik 121108094422-phpapp02

7

Contoh Kasus

Penyelesaian dengan metode Generate and Test

DA B C

C DB

B D C BC D

D B B CD C

Page 8: Metodepencarianheuristik 121108094422-phpapp02

8

Contoh Kasus

Pencarian ke- Lintasan Panjang Lintasan Lintasan Terpilih Panjang Lintasan Terpilih

1 ABCD 19 ABCD 19

2 ABDC 18 ABDC 18

3 ACBD 12 ACBD 12

4 ACDB 13 ACBD 12

5 ADBC 16 ACBD 12

Dst…

Page 9: Metodepencarianheuristik 121108094422-phpapp02

9

Hill Climbing (Pendakian Bukit)

Hampir sama Generate and Test, perbedaan terjadi pada feedback dari prosedur test untuk pembangkitan keadaan berikutnya.

Tes yang berupa fungsi heuristik akan menunjukkan seberapa baik nilai terkaan yang diambil terhadap keadaan lain yang mungkin

Page 10: Metodepencarianheuristik 121108094422-phpapp02

10

Simple Hill Climbing

Algoritma:

1. Evaluasi keadaan awal, jika tujuan berhenti jika tidak lanjut dengan keadaan sekarang sebagai keadaan awal

2. Kerjakan langkah berikut sampai solusi ditemukan atau tidak ada lagi operator baru sebagai keadaan sekarang

Page 11: Metodepencarianheuristik 121108094422-phpapp02

11

i. Cari operator yang belum pernah digunakan. Gunakan operator untuk keadaan yang baru.

ii. Evaluasi keadaan sekarang:

a) Jika keadaan tujuan , keluar.

b) Jika bukan tujuan, namun nilainya lebih baik dari sekarang, maka jadikan keadaan tersebut sebagai keadaaan sekarang

c) Jika keadaan baru tidak lebih baik daripada keadaan sekarang, maka llanjutkan iterasi.

iii. Jika keadaan baru tidak lebih baik dari pada keadaan sekarang, maka lanjutkan interasi.

Algoritma Simple HC

Page 12: Metodepencarianheuristik 121108094422-phpapp02

12

Traveling Salesman Problem Dengan Simple Hill Climbing

Seorang salesman ingin mengunjungi n kota. Jarak antara tiap-tiap kota sudah diketahui. Kita ingin mengetahui rute terpendek dimana setiap

kota hanya boleh dikunjungi tepat 1 kali. Misal ada 4 kota dengan jarak antara tiap-tiap kota

seperti berikut ini :

Page 13: Metodepencarianheuristik 121108094422-phpapp02

13

Steepest – Ascent HC

Gerakan pencarian selanjutnya berdasar nilai heuristik terbaik

Algoritma:

1) Evaluasi keadaan awal, jika tujuan berhenti jika tidak lanjut dengan keadaan sekarang sebagai keadaan awal

2) Kerjakan hingga tujuan tercapai atau hingga iterasi tidak memberi perubahan sekarang.

Page 14: Metodepencarianheuristik 121108094422-phpapp02

14

i. Tentukan SUCC sebagai nilai heuristik terbaik dari successor-successor

ii. Kerjakan tiap operator yang digunakan oleh keadaan sekarang.

a. Gunakan operator tersebut dan bentuk keadan baru

b. Evaluasi keadaan baru. Jika tujuan keluar, jika bukan bandingkan nilai heuristiknya dengan SUCC. Jika lebih baik jadikan nilai heuristik keadaan baru ter sebut sebagai SUCC. Jika tidak, nilai SUCC tidak berubah.

iii. Jika SUCC lebih baik dari nilai heuristik keadaan sekarang, ubah SUCC menjadi keadaan sekarang.

Algoritma Steepet-Ascent HC

Page 15: Metodepencarianheuristik 121108094422-phpapp02

15

Algoritma Steepet-Ascent HC

Pada steepest-ascent hill climbing ini, ada 3 masalah yang mungkin, yaitu:

Local optimum: keadaan semua tetangga lebih buruk atau sama dengan keadaan dirinya.

Plateou: keadaan semua tetangga sama dengan keadaan dirinya.

Ridgez local optimum yang lebih disebabkan karena ketidak mampuan untuk menggunakan 2 operator sekaligus.

Page 16: Metodepencarianheuristik 121108094422-phpapp02

16

Traveling Salesman Problem Dengan Steepest Ascent Hill Climbing

Page 17: Metodepencarianheuristik 121108094422-phpapp02

17

Best-First Search

Metode yang membangkitkan suksesor dengan mempertimbangkan harga (didapat dari fungsi heuristik tertentu) dari setiap node

Kombinasi dari BFS dan DFS

Pencarian dilakukan dengan melihat satu lintasan, dan memungkinkan untuk berpindah ke lintasan lain.

Page 18: Metodepencarianheuristik 121108094422-phpapp02

18

Simulated Annealing (SA)

SA memanfaatkan analogi antara cara pendinginan dan pembekuan metal menjadi sebuah struktur crystal dengan energi yang minimal (proses penguatan) dan proses pencarian untuk state tujuan minimal

SA lebih banyak menjadi jebakan pada local minimal.

Page 19: Metodepencarianheuristik 121108094422-phpapp02

19

SA berusaha keluar dari jebakan minimum local.

Page 20: Metodepencarianheuristik 121108094422-phpapp02

20

Algoritma: Simulated Annealing

1. Evaluasi keadaan awal. Jika tujuan maka KELUAR. Jika tidak lanjutkan dengan keadaan awal sebagai keadaan sekarang

2. Inisialisasi BEST_SO_FAR untuk keadaan sekarang

3. Inisialisasi T sesuai dengan annealing shedule

4. Kerjakan hingga solusi ditemukan atau sudah tidak ada operator baru lagi akan diaplikasikan kekondisi sekarang

Page 21: Metodepencarianheuristik 121108094422-phpapp02

21

a. Gunakan operator yang belum pernah digunakan untuk menghasilkan keadaan baru

b. Evaluasi kondisi baru dengan menghitung:∆E = nilai sekarang – nilaia keadaan

baru

i. Jika kondisi baru tujuan maka KELUAR

ii. Jika bukan tujuan, namun nilainya lebih baik dari sekarang, maka jadikan keadaan tersebut sebagai keadaaan sekarang

iii. Jika nilai kondisi baru tidak lebih baik daripada keadaan sekarang, maka tetapkan kondisi baru sebagai keadaan sekarang dengan probabilitas:

p’ = e -∆E /T

c. Perbaiki T sesuai dengan annealing scheduling

5. BEST_SO_FAR adalah jawaban yang dimaksud

Page 22: Metodepencarianheuristik 121108094422-phpapp02

22

OR Graph Dibutuhkan 2 antrian yang berisi node-node:

OPEN (berisi node-node yang sudah dibangkitkan, sudah memiliki fungsi heuuristik namun belum diuji)

CLOSED (berisi node-node yang sudah diuji)

Fungsi lain yang dibutuhkan: f’(n) : pendekatan dari fungsi f(n) (fungsi evaluasi

terhadap node n) g(n) : biaya yang dikeluarkan dari keadaan awal

sampai ke node n h’(n) : estimasi tambahan bbiaya yang harus

dikeluarkan dari node n sampai mendapatkan tujuan.

Page 23: Metodepencarianheuristik 121108094422-phpapp02

23

Algoritma: Tempatkan node awal pada antrian OPEN Lakukan langkah berikut hingga tujuan

ditemukan atau sampai antrian OPEN kosong Ambil node terbaik dari OPEN Bangkitkan semua successornya Untuk tiap-tiap successornya kerjakan:

• Jika node tersebut belum pernah dibangkitkan, evaluasi node tersebut dan masukkan ke OPEN

• Jika node tersebut sudah pernah dibangkitkan sebelumnya, ubah parent jika lintasan baru lebih menjanjikan. Hapus node tersebut dari antrian OPEN.

Page 24: Metodepencarianheuristik 121108094422-phpapp02

24

Greedy Search Best First Search dengan hanya

mempertimbangkan harga perkiraan (estimated cost)

Harga sesungguhnya tidak digunakan

Studi kasus:

Pencarian jalur dalam suatu daerah yang direpresentasikan dalam suatu graph. Node menyatakan kota dan busur menyatakan jarak antar kota (harga sesungguhnya) dan h’(n) adalah harga perkiraan dari node n menuju node tujuan (G).

Page 25: Metodepencarianheuristik 121108094422-phpapp02

25

Dengan data sbb:I - A (75); A – B (85); B – G (300);I - C (140); C– D (160); D – G (200);I - E (120); E – F (180); F – G (250);

Dengan h’(n) = fungsi heuristik (jarak garis lurus dari node n menuju G)

Tentukan jalur terpilih?

I A B C D E F

400 360 280 300 180 400 200

Page 26: Metodepencarianheuristik 121108094422-phpapp02

26

Algoritma A*

Perbaikan dari best-first search dengan memodifikasi fungsi heuristiknya.

Meminimumkan total biaya lintasan. Fungsi f’ sebagai estimasi fungsi evaluasi

terhadap node n: f’(n) = g(n) + h(n) Jika:

h’ = h : Proses pelacakan sampai pada tujuan g = h’ = 0, f’ random: Sistem tidak dapat dikendalikan g = k (konstanta) dan h’ = 0 : Sistem menggunakan

breadth first search

Membutuhkan 2 antrian : OPEN dan CLOSED

Page 27: Metodepencarianheuristik 121108094422-phpapp02

27

Algoritma1. Set : OPEN = {S}, dan CLOSED = { }, S: node awal2. Kerjakan jika OPEN belum kosong:3. Cari node n dari OPEN dimana nilai f(n) minimal.

Kemudian tempatkan node n pada CLOSEDa. Jika n adalah tujuan, keluarb. Ekspan node keanak-anaknyac. Kerjakan untuk setiap anak n, yaitu n’:

Jika n’ belum ada di OPEN atau CLOSED, maka:• Masukkan n’ ke OPEN. Kemudian set back pointer dari n’ ke n.• Hitung:

h(n’) g(n’) = g(n) + c(n,n’) (biaya dari n ke n’) f(n’) = g(n’) + h (n’)

Jika n’ telah ada di OPEN atau CLOSED dan jika g(n’) lebih kecil (untuk versi n’ yang baru), maka:• Buang versi lama n’• Ambil n’ di OPEN, dan set backpointer dari n’ ke n.