Anda di halaman 1dari 67

Masalah, Ruang Masalah dan

Pencarian
Pohon Pelacakan / Pencarian
Pada suatu data seringkali dibutuhkan pembacaan kembali informasi
(retrieval information) dengan cara searching.

Searching adalah proses mendapatkan (retrieve) informasi


berdasarkan kunci (key) tertentu dari sejumlah informasi yang telah
disimpan.

Kunci (key) digunakan untuk melakukan pencarian record yang


diinginkan didalam suatu list.

Tempat pencarian data dapat berupa array dalam memori, bisa juga
pada file pada external storage.
Pohon Pelacakan / Pencarian
• menggambarkan keadaan secara hirarkis
• Node pada level-0 disebut ’akar/root’ -
menunjukkan keadaan awal & memiliki
beberapa percabangan yang terdiri atas
beberapa node yg disebut ’anak/child’
• Node yg tidak memiliki anak disebut ’daun/leaf’ -
menunjukkan akhir dari suatu pencarian, dapat
berupa tujuan yang diharapkan (goal) atau jalan
buntu (dead end).
Graph Keadaan

• Node M : awal, node T : tujuan. Ada 4 lintasan dari M ke T :


– M-A-B-C-E-T
– M-A-B-C-E-H-T
– M-D-C-E-T
– M-D-C-E-H-T
• Lintasan buntu atau lintasan yang tidak sampai ke tujuan :
– M-A-B-C-E-F-G
– M-A-B-C-E-I-J
– M-D-C-E-F-G
– M-D-C-E-I-J
– M-D-I-J
Pohon Pelacakan / Pencarian
Metode Pelacakan / Pencarian

• Hal penting dalam menentukan keberhasilan


sistem cerdas adalah kesuksesan dalam
pencarian.
• Pencarian = suatu proses mencari solusi dari
suatu permasalahan melalui sekumpulan
kemungkinan ruang keadaan (state space).
• Ruang keadaan = merupakan suatu ruang yang
berisi semua keadaan yang mungkin.
Kriteria
Kriteria
• Completeness : apakah metode tersebut
menjamin penemuan solusi jika solusinya
memang ada?
• Time complexity : berapa lama waktu yang
diperlukan?
• Space complexity : berapa banyak memori yang
diperlukan?
• Optimality : apakah metode tersebut menjamin
menemukan solusi yang terbaik jika terdapat
beberapa solusi berbeda?
Teknik Pencarian

• Pencarian buta (blind search) : tidak ada


informasi awal yang digunakan dalam proses
pencarian
– Pencarian melebar pertama (Breadth – First Search)
– Pencarian mendalam pertama (Depth – First Search)
• Pencarian terbimbing (heuristic search) : adanya
informasi awal yang digunakan dalam proses
pencarian
– Pendakian Bukit (Hill Climbing)
– Pencarian Terbaik Pertama (Best First Search)
Breadth First Search

• Semua node pada level n akan dikunjungi


terlebih dahulu sebelum mengunjungi
node-node pada level n+1.
• Pencarian dimulai dari node akar terus ke
level 1 dari kiri ke kanan, kemudian
berpindah ke level berikutnya dari kiri ke
kanan hingga solusi ditemukan.
Breadth First Search

Salah satu cara implementasi BFS adalah dengan bantuan


struktur data queue. Sama seperti stack pada DFS, queue
yang digunakan adalah queue yang isi elemennya adalah
simpul pohon
Maka, urutan penelusurannya adalah : A – B – C – D – E – F – G – H – I – J – K – L
Breadth First Search

Maka, urutan penelusurannya adalah : A – B – C – D – E – F – G – H – I – J – K – L


Breadth First Search
Kota Estimasi Awal ke Tujuan
Kupang 2000
Soe 2110
Kefa 2200
Atambua 2230
Toraja 0
Malang 1800
Surabaya 1700
Makasar 500
Ambon 300
Nabire 2300

Permasalahannya adalah untuk mencari jalan terdekat dari kota Kupang


menuju kota Toraja dengan menggunakan metoda Best First Search
Breadth First Search

Permasalahannya adalah untuk mencari jalan terdekat dari kota Kupang


menuju kota Toraja dengan menggunakan metoda Best First Search
Breadth First Search

Best First Search didapatkan kota-kota yang harus dilalui untuk


mendapatkan jalan yang paling dekat jaraknya dari Kupang ke Toraja
adalah : Kupang – Makassar – Toraja.
Dari peta diatas, panjang jalan yang dilalui adalah 1300 + 245 = 1545 Km.
Breadth First Search

• Keuntungan :
– tidak akan menemui jalan buntu, menjamin ditemukannya solusi
(jika solusinya memang ada) dan solusi yang ditemukan pasti
yang paling baik
– jika ada 1 solusi, maka breadth – first search akan
menemukannya,jika ada lebih dari 1 solusi, maka solusi
minimum akan ditemukan.
– Kesimpulan : complete dan optimal
• Kelemahan :
– membutuhkan memori yang banyak, karena harus menyimpan
semua simpul yang pernah dibangkitkan. Hal ini harus dilakukan
agar BFS dapat melakukan penelusuran simpul-simpul sampai
di level bawah
– membutuhkan waktu yang cukup lama
Depth First Search

• Pencarian dilakukan pada suatu simpul dalam


setiap level dari yang paling kiri.
• Jika pada level yang paling dalam tidak
ditemukan solusi, maka pencarian dilanjutkan
pada simpul sebelah kanan dan simpul yang kiri
dapat dihapus dari memori.
• Jika pada level yang paling dalam tidak
ditemukan solusi, maka pencarian dilanjutkan
pada level sebelumnya. Demikian seterusnya
sampai ditemukan solusi.
Depth First Search

Dalam implementasinya DFS dapat diselesaikan dengan cara


rekursif atau dengan bantuan struktur data stack. Kita akan
membahas dengan cara yang menggunakan stack.
Depth First Search
Depth First Search
• Keuntungan :
– membutuhkan memori relatif kecil, karena hanya node-node
pada lintasan yang aktif saja yang disimpan
– Secara kebetulan, akan menemukan solusi tanpa harus menguji
lebih banyak lagi dalam ruang keadaan, jadi jika solusi yang
dicari berada pada level yang dalam dan paling kiri, maka DFS
akan menemukannya dengan cepat (waktu cepat)
• Kelemahan :
– Memungkinkan tidak ditemukannya tujuan yang diharapkan,
karena jika pohon yang dibangkitkan mempunyai level yang
sangat dalam (tak terhingga) / tidak complete karena tidak ada
jaminan menemukan solusi
– Hanya mendapat 1 solusi pada setiap pencarian, karena jika
terdapat lebih dari satu solusi yang sama tetapi berada pada
level yang berbeda, maka DFS tidak menjamin untuk
menemukan solusi yang paling baik (tidak optimal).
METODE
PENCARIAN
HEURISTIK

21
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

22
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

23
Generate and Test

• Algoritma  GT  menggunakan  prosedur  Depth


First  Search  karena  suatu  solusi  harus  
dibangkitkan  secara  lengkap  sebelum
 dilakukan test.
• Jika pembangkit possible solution dikerjakan
secara sistimatis, maka prosedur akan mencari
solusinya, jika ada.

24
Generate and Test
• Algoritma:

1. Bangkitkan suatu kemungkinan solusi


2. Tes apakah solusi  yang  dibangkitkan tersebut
adalah sebuah solusi  yang  bisa diterima sesuai
dengan kriteria  yang  diberikan.
3. Jika solusi ditemukan, keluar. Jika tidak, ulangi langkah
pertama.

25
Contoh Generate and Test
– 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

8
A B
3 4
7 5
6
D C

26
Contoh Generate and Test
1. 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  
> Dst  

2. Untuk  mengetahui  jumlah  seluruh  kombinasi  abjad  


yang  mungkin  menjadi  sebuah  solusi  -> n!

27
Contoh Generate and Test

28
Contoh Generate and Test

1.  Pilih  keadaaan  awal,  misal  ABCD  dengan  panjang


lintasan  19  
2. Lakukan  backtracking  untuk  mendapatkan  lintasan
ABDC,  misal  panjang  lintasan  18.
3. Bandingkan  lintasan  ABDC  dengan  sebelumnya,
lintasan  terpendek  akan  dipilih  untuk  dilakukan
backtracking  lagi.  
4. Solusi  terbaik  adalah  menemukan  lintasan terpendek
 dari  kota  yang  dilewa7.

29
Contoh Generate and Test

30
Hill Climbing
• 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

31
Algoritma Hill Climbing

– Cari operator yang belum pernah digunakan; gunakan


operator ini untuk mendapatkan keadaan yang baru
– Kerjakan langkah-langkah berikut sampai solusinya ditemukan
atau sampai tidak ada operator baru yang akan diaplikasikan
pada keadaan sekarang : Cari operator yang belum
digunakan; gunakan operator ini untuk mendapatkan keadaan
yang baru.

32
Algoritma Hill Climbing
– Evaluasi keadaan awal, jika tujuan berhenti jika tidak lanjut
dengan keadaan sekarang sebagai keadaan awal
1. Jika keadaan baru merupakan tujuan, keluar
2. Jika bukan tujuan, namun nilainya lebih baik daripada
keadaan sekarang, maka jadikan keadaan baru tersebut
menjadi keadaan sekarang.
3. Jika keadaan baru tidak lebih baik daripada keadaan
sekarang, maka lanjutkan iterasi.

33
Contoh Hill Climbing

Pada simple hill climbing, ada 3 masalah


yang mungkin:
– Algoritma akan berhenti kalau mencapai nilai
optimum local
– Urutan penggunaan operator akan sangat
berpengaruh pada penemuan solusi
– Tidak diijinkan untuk melihat satupun langkah
sebelumnya.

34
Contoh Hill Climbing
• TSP dengan Simple Hill Climbing
Disini ruang keadaan berisi semua kemungkinan
lintasan yang mungkin. Operator digunakan untuk
menukar posisi kota-kota yang bersebelahan. Apabila
ada n kota, dan kita ingin mencari kombinasi lintasan
dengan menukar posisi urutan 2 kota, maka kita akan
mendapatkan

35
Contoh Hill Climbing
Keenam kombinasi ini akan dipakai semuanya sebagai
operator, yaitu :
• Tukar 1,2 = menukar urutan posisi kota ke – 1 dengan kota ke – 2
• Tukar 2,3 = menukar urutan posisi kota ke – 2 dengan kota ke – 3
• Tukar 3,4 = menukar urutan posisi kota ke – 3 dengan kota ke – 4
• Tukar 4,1 = menukar urutan posisi kota ke – 4 dengan kota ke – 1
• Tukar 2,4 = menukar urutan posisi kota ke – 2 dengan kota ke – 4
• Tukar 1,3 = menukar urutan posisi kota ke – 1 dengan kota ke – 3

36
Contoh Hill Climbing
• Fungsi heuristic yang digunakan adalah panjang
lintasan yang terjadi

37
38
BEST FIRST SEARCH
• Greedy Best First Search
• Algoritme A*

39
Greedy Best First Search

•  Algoritme ini merupakan jenis algoritma  Best  First  


Search  yg  paling  sederhana
• Algoritme ini hanya memperhitungkan biaya
perkiraan saja f(n)    =    h’(n)
• Karena hanya memperhitungkan biaya perkiraan
yang  belum tentu kebenarannya,  maka algoritma
ini menjadi tidak  optimal

40
Greedy Best First Search

41
Greedy Best First Search

42
Greedy Best First Search

43
Greedy Best First Search

44
Greedy Best First Search

45
Greedy Best First Search

• Dari  contoh  di  atas,  Greedy  akan  menemukan   solusi  


 S-­B-­K-­G  dengan  total  jarak  105
• Padahal  ada  solusi  lain  yg  lebih  op7mal,  yakni S-A-­B-­F-­
K-G  dengan  total  jarak  hanya  95
• Dari  situ  bisa  disimpulkan  bahwa  Greedy  Best  First  
Search  7dak  bisa  menemukan  solusi  yang  optimal

46
Algoritme A*

• Berbeda dengan  Greedy,  algoritma ini akan menghitung


fungsi  heuris7c  dengan cara menambahkan biaya sebenarnya
dengan biaya perkiraan.  Sehingga didapatkan rumus  :   f(n)    =  
 g(n)    +    h’(n)  
• g(n)      =      Biaya sebenarnya dari  Node  Awal ke  Node  n
• h’(n)    =      Biaya perkiraan dari  Node  n  ke  Node  Tujuan
• Dengan perhitungan biaya seper7 ini,  algoritma  A*  adalah
complete  dan optimal

47
Algoritme A*

• Algoritma  A*  juga  menggunakan  dua  senarai,  


yaitu  :  
- OPEN  
- CLOSED  
• Terdapat  tiga  kondisi  bagi  setiap  suksessor  yang  
dibangkitkan,  yaitu  :  
- Sudah  berada  di  OPEN  
-  Sudah  berada  di  CLOSE  
-  Tidak  berada  di  OPEN  maupun  CLOSE  

48
Algoritme A*

• Jika  Suksessor  sudah  pernah  berada  di  OPEN,  maka  :  


1. Dilakukan  pengecekan  apakah  perlu  pengubahan  parent  
atau  7dak  tergantung  pada  nilai  g  nya  melalui  parent  
lama  atau  parent  baru
2. Jika  melalui  parent  baru  memberikan  nilai  g  yang  lebih  
kecil,  maka  dilakukan  pengubahan  parent.  
3. Jika  pengubahan  parent  dilakukan,  maka  dilakukan  
perbaruan  (update)  nilai  g  dan  f  pada  suksessor  tersebut.  
4. Dengan  perbaruan  ini,  suksessor  tersebut  memiliki   kesempatan
 yang lebih  besar  untuk  terpilih  sebagai   simpul  terbaik

49
Algoritme A*

• Jika Suksessor sudah pernah berada  di  CLOSED,  


maka:  
1. Dilakukan pengecekan apakah perlu pengubahan parent
atau tidak.    
2. Jika ya,  maka dilakukan perbaruan(update)  nilai g dan
nilai f pada suksessor tersebut pada semua “anak cucunya”
 yang  sudah pernah berada  di OPEN.
3. Dengan perbaruan ini,  maka semua anak cucunya memiliki
kesempatan lebih besar untuk terpilih sebagai simpul
terbaik

50
Algoritme A*

•  Jika suksessor 7dak berada  di  OPEN  maupun  di  


CLOSED,  maka  :  

1. Suksessor tersebut dimasukkan ke dalam  OPEN


2. Tambahkan suksessor tersebut sebagai suksessornya  best
 node.  
3. Hitung biaya suksessor tersebut denganrumus  f=g+h

51
Algoritme A*

52
Algoritme A*

53
Algoritme A*

54
Algoritme A*

55
Algoritme A*

56
Algoritme A*

57
Algoritme A*

58
Algoritme A*
Algoritme A*

59
Tugas

Graph Keadaan
Tempat Awal A
Tujuan B
Tugas

BFS
Tempat Awal Malang
Tujuan Nabire (estimasi jarak 2300)
Tugas
Tugas Greedy

63
Tugas A*

64
Tugas A*

65
Format Tugas
Buat dalam 1 File PDF. Berisi :
1. Resume Pertemuan Hari Ini. Font TNR
11pt. Spasi 1
2. Kerjakan Tugas Pada Slide PPT.
Terima
Kasih

Anda mungkin juga menyukai