Anda di halaman 1dari 164

AI sebagai Masalah

Pelacakan
Lesson 2

Pendahuluan
Semua Bidang AI adalah
Pelacakan
Game
Ruang masalah (problem spaces)

Setiap masalah adalah pohon


virtual dari seluruh solusi yang
mungkin (berhasil atau tidak
berhasil)
Tujuannya menentukan/mencari

State-Space Approach for


AI Problem Solving

Di dalam permasalahan AI dikenal istilah state


State merepresentasikan status sistem pada
saat tertentu
State-space approach adalah metode untuk
menyelesaikan masalah dengan melakukan
operasi-operasi tertentu pada state saat ini
untuk menghasilkan next-state terus menerus
hingga dicapai final-state yang diinginkan

State-Space Approach for


AI Problem Solving

Langkah awal penyelesaian masalah


adalah merepresentasikan masalah
ke dalam representasi state-space
(ruang keadaan)
Untuk membangun state space
(ruang keadaan), diperlukan statestate dan rules yang membentuk
hubungan antar state
Kemudian dilakukan teknik

State-Space Approach for


AI Problem Solving

Secara sederhana, langkah2


penyelesaian masalah menggunakan
State Space Approach adalah sbb.
1. Nyatakan masalah ke dalam bentuk
state space (ruang keadaan)
1) Tentukan definisi state untuk masalah
tersebut
2) Tentukan rules/operasi-operasi yang
mungkin ada di dalam masalah tersebut
untuk menghasilkan next-state

Contoh 1 4 Puzzle
Problem
Puzzle yang terdiri atas 4 buah cell
Tiga cell berisi digit angka, 1 cell kosong (blank)
Terdapat 4 operasi swapping: Blank-Up (BU),
Blank-Down (BD), Blank-Left (BL), dan BlankRight (BR)
BU berarti posisi Blank (B) ditukar dengan posisi
cell di atasnya, dst.
Masalahnya adalah: bagaimana mencapai final
state dari sebuah initial state dengan langkah
seminimum mungkin?

Contoh 1 4 Puzzle
(lanj.)
Contoh:

Jawabannya : 2 langkah (BL lalu BU)


Bagaimana komputer dapat
menyelesaikannya?

Contoh 1 4 Puzzle
(lanj.)
Contoh:

Bagaimana komputer dapat mengubah susuna


puzzle menjadi susunan yang ditargetkan seperti
manusia melakukannya?
Salah satu solusinya adalah menggunakan statespace approach

Contoh 1 4 Puzzle
(lanj.)
Untuk mendapatkan solusi menggunakan statespace approach, yang harus dilakukan adalah:
1. Menyatakan masalah dalam bentuk ruang state (state
space)
2. Menerapkan teknik searching tertentu untuk
mendapatkan solusi

Untuk dapat membangun state space dari sebuah


masalah, yang harus dilakukan:
1) Definisikan dulu state-nya apa di dalam masalah tersebut
2) Nyatakan operasi2 yang dapat digunakan untuk menghasilkan
next-state

Contoh 1 4 Puzzle
(lanj.)
State-space (ruang state, ruang keadaan) dari
masalah 4 Puzzle ini adalah kumpulan state
puzzle yang mungkin terjadi
Beberapa state yang mungkin terjadi di
antaranya:
(1, 2, 3, B)
(1, 2, B, 3)
(1, B, 3, 2)
dst..

Contoh 1 4 Puzzle
(lanj.)
Jadi, state dalam masalah 4 Puzzle ini dapat
didefinisikan sebagai nilai puzzle di setiap blok,
yang dinyatakan dgn:
(w, x, y, z), dengan nilai yang mungkin untuk w, x, y, z
adalah 1, 2, 3, B dan tidak boleh sama satu sama lain

Maka akan terdapat 4 x 3 x 2 x 1 = 24 state yang


mungkin
Setelah mendefinisikan state, berikutnya adalah
mendefinisikan operasi-operasi yang dapat
dilakukan terhadap sebuah state

Contoh 1 4 Puzzle
(lanj.)
Untuk kasus 4 Puzzle, operasi yang dapat
dilakukan terhadap state adalah sbb:
1.
2.
3.
4.

Op
Op
Op
Op

BU : Blank diswap ke atas


BD : Blank diswap ke bawah
BR : Blank diswap ke kanan
BL : Blank diswap ke kiri

Setelah operasi terdefinisi, maka buatlah


rules (aturan) penentuan next-state jika
operasi tersebut dilakukan

Contoh 1 4 Puzzle
(lanj.)
Aturan-aturan (rules) yang dapat
digunakan di antaranya:
1.
2.
3.
4.
5.

op BU: (1, 2, 3, B) (1, B, 3, 2),


Op BU: (1, 2, B, 3) (B, 2, 1, 3)
op BL: (1, 2, 3, B) (1, 2, B, 3),
...
dst.

Rules dapat dibuat lebih generik,


semakin generik semakin baik

Contoh 1 4 Puzzle
(lanj.)
Contoh rules yang lebih generik:
1. p4 = B BU:(swap p2-p4) atau BL:(swap p3-p4)
2. P3 = B BU:(swap p1-p3) atau BL:(swap p4-p3)
3. ...
4. dst.
pi = nilai di kotak ke-i pada 4-Puzzle

Setelah rules dibuat, tentukan initial state dan


final state
Lakukan pencarian (state-space search) untuk
menemukan solusi permasalahan

Contoh 1 4 Puzzle
(lanj.)
ruang state yang
dihasilkan
Dengan menerapkan
teknik seraching
tertentu (yang akan
dipelajari di bagian
berikutnya) maka akan
diperoleh solusinya
adalah 2 langkah,
yaitu BL lalu BU

Cara Merepresentasikan Ruang Keadaan

1. Graf Keadaan
2. Pohon Pelacakan
3. Pohon And/Or

Graf Keadaan
Terdiri dr simpul (node) dan busur (arc).
Simpul menunjukkan keadaan, yaitu
keadaan awal dan keadaan baru yang
akan dicapai dengan menggunakan
operator.
Busur menghubungkan suatu simpul
dengan simpul lainnya.
Busur menunjukkan arah dr suatu keadaan
ke keadaan berikutnya.
Dalam praktek, sangat sulit

Graf Keadaan

Simpul M menunjukkan
keadaan awal. Simpul T
adalah tujuan.
Ada 4 lintasan dr M ke T:
1. M-A-B-C-E-T
2. M-A-B-C-E-H-T
3. M-D-C-E-T

Lintasan yang tidak


sampai ke tujuan
(menemui jalan buntu)
:
1. M-A-B-C-E-F-G
2. M-A-B-C-E-I-J
3. M-D-C-E-F-G

Pohon Pelacakan
Untuk menghindari
kemungkinan adanya proses
pelacakan simpul secara
berulang pada Graph Keadaan,
digunakan Pohon Pelacakan,
berupa struktur pohon.

Pohon
Pelacakan
M

Pohon Pelacakan
Simpul pada Level 0 disebut akar (root).
Simpul akar menunjukkan keadaan awal
yang biasanya merupakan topik atau
obyek.
Simpul akar memiliki beberapa
percabangan yang terdiri atas beberapa
simpul successor yang disebut anak
(child) dan merupakan simpul perantara.
Namun, jika dilakukan pelacakan mundur ,
maka dapat dikatakan bahwa simpul

Pohon Pelacakan
Simpul yang tidak memiliki anak
disebut daun (leaf) yang
menunjukkan akhir dr suatu
pencarian.
Simpul daun dapat berupa
tujuan yang diharapkan (goal)
atau jalan buntu (dead end).

Contoh 2 : Water Jug


Problem[1]
Terdapat dua buah wadah/ember
berukuran 4 L dan 3 L.
Bagaimana memperoleh air
sebanyak 2 L dengan
menggunakan kedua wadah
tersebut, dengan asumsi kedua
ember awalnya kosong?

Contoh 2 : Water Jug Problem[1]-lanj.


Nyatakan masalah dalam representasi state
State:
(x, y); x = 0, 1, 2, 3 atau 4, dan y = 0, 1, 2 atau 3;
x = jumlah air (liter) pada ember bervolume 4 liter,
dan y = jumlah air (liter) pada ember bervolume 3 liter

Initial state: (0,0)


Final state: (2, n), atau (n, 2) untuk sembarang
nilai n (persoalan ini tidak menentukan berapa
berapa liter air yang ada di ember bervolume 3
liter atau sebaliknya)

Contoh 2 : Water Jug Problem[1]-lanj.


Buatlah deskripsi formal dari rules/operasi yang mungkin dilakukan

di dalam permasalahan ini, dengan melist operasi2 yg mungkin


dilakukan
Operasi yang dapat digunakan untuk menyelesaikan masalah adalah

sbb:
1. Mengisi ember bervolume 4 liter dari luar sampai penuh.
2. Mengisi ember bervolume 3 liter dari luar sampai penuh.
3. Mengisi sejumlah air dari ember bervolume 4 liter ke ember 3 liter (tidak
sampai penuh).
4. Mengisi sejumlah air dari ember bervolume 3 liter ke ember 4 liter (tidak
sampai penuh).
5. Mengosongkan/membuang air dari ember bervolume 4 liter.
6. Mengosongkan/membuang air dari ember bervolume 3 liter.

Contoh 2 : Water Jug Problem[1]-lanj.


(lanjutan):
7. Menuangkan air dari ember bervolume 3 liter ke ember
bervolume 4 liter sampai ember bervolume 4 liter
menjadi penuh.
8. Menuangkan air dari ember bervolume 4 liter ke ember
bervolume 3 liter sampai ember bervolume 3 liter
menjadi penuh.
9. Menuangkan semua air dari ember bervolume 3 liter ke
ember bervolume 4 liter.
10.Menuangkan semua air dari ember bervolume 4 liter ke
ember bervolume 3 liter.

Contoh 2 : Water Jug Problem[1]-lanj.


Rules/operasi tersebut dapat
dideskripsikan secara formal sbb:
1. (x, y x < 4) (4, y)
2. (x, y y < 3) (x, 3)
3. (x, y x > 0, y + D < 3) (x-D, y+D)
4. (x, y y > 0, x + D < 4) (x+D, y-D)
5. (x, y x > 0) (0, y)

Contoh 2 : Water Jug Problem[1]-lanj.


Rules operasi yang digunakan untuk
menyelesaikan masalah adalah sbb:
6. (x, y y > 0) (x, 0)
7. (x, y x+y 4 y > 0) (4, y-(4-x))
8. (x, y x+y 3 x > 0) (x-(3-y), 3)
9. (x, y x+y 4 y > 0) (x+y, 0)
10.(x, y x+y 3 x > 0) (0, x+y)

Contoh 2 : Water Jug Problem[1]-lanj.


Salah satu solusi yang diperoleh
Aturan
adalah
sbb: Jumlah air (liter)
yang
diterapka
n

dalam

ember
bervolum
e 4 liter

ember
bervolum
e 3 liter

Contoh 2 : Water Jug Problem[1]-lanj.


Jadi urutan langkahnya adalah 2-9-27-5-9

Representasi Ruang Keadaaan untuk


masalah Ember Air dengan Pohon
Pelacakan

Contoh pohon
pelacakan parsial
untuk masalah Water
Jug[1] sebelumnya:

Representasi Ruang Keadaaan untuk


masalah Ember Air dengan Pohon
Pelacakan

Contoh pohon
pelacakan parsial
untuk masalah Water
Jug[1] sebelumnya:

(0, 0)

(4, 0)

(4, 3)

(0, 0)

(0, 3)

(1, 3)

(4, 3)

(0, 0)

(3, 0)

Pohon And/Or
Digunakan untuk menunjukkan
bahwa masalah yang hendak
diselesaikan dengan Pohon
Pelacakan dapat diselesaikan
dengan mengambil salah satu
sub-goal atau hanya dapat
diselesaikan dengan mengambil
lebih dr satu sub-goal sekaligus.

Pohon And/Or

Gambar [a] menunjukkan ada suatu masalah M


yang hendak dicari solusinya dengan 3
kemungkinan yaitu A, B, atau C. Artinya,
masalah M bisa diselesaikan jika salah satu dr
sub-goal A, B, atau C terpecahkan. OR

Pohon And/Or
Dengan pohon AND/OR bisa
mempersingkat level Pohon Pelacakan.

Teknik Pencarian sebagai


Struktur Kontrol
Untuk dapat memecahkan problema,
dibutuhkan juga suatu struktur
pengendalian/kontrol yang
melakukan pengulangan (looping)
melalui siklus sederhana
Selama melakukan proses pencarian
untuk mendapatkan solusi dari
sebuah problema, kita tentu akan
bertanya-tanya tentang

Teknik Pencarian sebagai


Struktur Kontrol
Teknik Pencarian atau Struktur
Kontrol yang baik haruslah
1. Dapat menimbulkan adanya
gerak (movement).
Teknik Pencarian atau Struktur
Kontrol yang tidak menyebabkan
adanya gerak tidak akan pernah
sampai pada sebuah solusi.
Pada problema ember air, jika kita

Teknik Pencarian sebagai


Struktur Kontrol
2. Sistematik
Teknik Pencarian atau Struktur
Kontrol yang tidak sistematik
akan menyebabkan
penggunaan serangkaian
operator aturan beberapa kali
sebelum sampai pada sebuah
solusi.

Teknik Pencarian sebagai


Struktur Kontrol
Jika kita memilih aturan-aturan
secara acak (random) pada setiap
siklus, walaupun akan menimbulkan
adanya gerak dan akan
menghasilkan solusi, namun kita
akan sampai pada keadaan yang
sama beberapa kali dan
menggunakan lebih banyak langkah
yang semestinya diperlukan.

Latihan 1 Water Jug


Problem[2]
Terdapat dua buah wadah/ember
berukuran 5 L dan 3 L.
Bagaimana memperoleh air
sebanyak 4 L dengan
menggunakan kedua wadah
tersebut, dengan asumsi kedua
ember awalnya kosong?

Latihan 2
Petani Kambing Srigala Rumput
Seorang Petani akan menyeberangkan
seekor Kambing, seekor Srigala, dan
Rumput dengan menggunakan perahu
menyeberangi sungai.
Perahu hanya bisa memuat Petani dan
salah satu dari yang hendak
diseberangkan (Kambing / Srigala /
Rumput).
Jika ditinggalkan oleh Petani, maka
Rumput akan dimakan oleh Kambing dan

Latihan 2
Petani Kambing Srigala
Rumput-lanj.
Deskripsikan secara formal problema
PKSR tersebut!
Bagaimanakah salah satu solusi
masalah PKSR tersebut dengan
deskripsi formal yang dibuat?
Bagaimanakah representasi ruang
keadaan dengan Pohon Pelacakan
untuk masalah tersebut?

Teknik Pencarian

Pendahuluan
Setelah permasalahan direpresentasikan
dalam bentuk state-space, maka
selanjutnya dilakukan pencarian
(searching) di dalam state-space tersebut
untuk menentukan solusi permasalahan
Hal penting dalam menentukan
keberhasilan sistem berdasar kecerdasan
adalah kesuksesan dalam pencarian dan
pencocokan.

Teknik
Pencarian/Pelacakan

Teknik
Pencarian/Pelacakan
Teknik pencarian dibedakan satu sama lain khususnya dalam
hal urutan ekspansi node
Teknik pencarian dievaluasi dalam beberapa aspek, di
antaranya:
Completeness
apakah selalu berhasil menemukan solusi?
Time complexity
berapa lama waktu yang diperlukan untuk menemukan solusi
Space complexity
berapa banyak space memory yang diperlukan untuk mencari
solusi?
Optimality
apakah teknik tersebut dapan menemukan solusi yang paling
optimal jika ada beberapa alternatif solusi?

Teknik
Pencarian/Pelacakan
Time dan space complexity diukur
menggunakan parameter2:
b (branching factor), faktor percabangan
maksimum dari search tree
d (depth), kedalaman (level tree) dari
solusi yang diperoleh

Finding Route
Perhatikan peta di bawah ini
Oradea

71

Neamt

75

Zerind

151

87
lasi

140

Arad

Sibiu
118

99

Fagaras

92

80
T im isora

Vaslui

Rim nicu Vilcea

111

97

Pitesti

211

142

Lugoj
70

146
Mehadia

75
Dobreta

138

Urziceni
Bucharest

120
Craiova

98

85

101

90
Giurgiu

Hirsova
86
Eforie

Finding Route
Jika akan dilakukan perjalanan dari
Arad ke Bucharest, maka akan
diperoleh sebagian search-tree
sebagai berikut

Finding Route
Bagaimana rute dari Arad ke
Bucharest?

Trial and Error


Metode paling sederhana
Prosedur pelacakan
1. Tentukan state sebagai keadaan awal
2. While state keadaan sasaran do
3. Begin
4. Pilih operator yang dapat diterapkan pada
state, dan diset sebagai operator
5. State : = operator (state)
6. End

Trial and Error


Catatan
Pada langkah 4, operator dipilih secara acak
Pada langkah 5, operator yang dipilih
diterapkan pada state membentuk state baru
Stokastik, tidak menjamin dicapainya
keadaan sasaran
Tidak memperlihatkan karakteristik
intelegensi

Trial and Error


S
R
A

C
R

D
R

G
R
H

Uninformed x Informed
Search
Pada kasus rute Arad-Bucharest, ada 3 alternatif
kota yang dapat dipilih dari Arad, yaitu: Sibiu,
Timisoara, Zerind
Uninformed Search tidak punya preferensi sama
sekali di antara 3 pilihan kota tersebut, hanya
memilih berdasarkan urutan di dalam teknik
pencariannya
Informed Search akan punya preferensi di antara
pilihan tersebut berdasarkan parameter tertentu,
misal: jarak

Teknik Sistematis, Blind Search,


Uninformed Search

Depth-First Search
Representasi: Diagram pohon atau grafik
Pencarian dilakukan dari Simpul Akar ke
simpul yang memiliki level lebih tinggi
(Simpul Anak).
Proses pencarian dilakukan pada semua
Simpul Anak sebelum dilakukan
pencarian ke simpul-simpul yang selevel.

Depth-First Search

Depth-First Search

Depth-First Search

Depth-First Search

Depth-First Search

Depth-First Search

Depth-First Search

Depth-First Search

Depth-First Search

Depth-First Search

Depth-First Search

Depth-First Search

Depth-First Search

Depth-First Search
Prosedur pelacakan:
1.Berikan simpul awal pada daftar open
2.Loop: if open = kosong then exit (fail)
3.n : = first (open)
4.if goal (n) then exit (success)
5.Remove (n, open)
6.Ekspansikan n, berikan semua simpul anak pada kepala open
dan bubuhkan pointer dari simpul anak ke n
7.Kembali ke Loop

Penjelasan:
.Pada langkah 3, elemen pertama daftar open diambil
.Ekspansi simpul n = pembangkitan simpul-simpul anak
dari suatu simpul n

Depth-First Search

Depth-First Search
Perubahan daftar open:

(S) (A B) (C D B) (D B) (B) (E
F) (H G F) (G F)
Dengan diagram grafik:
5. Remove (n, open)
Add (n, closed)
6. Ekspansikan n. Berikan pada kepala open
semua simpul anak yang belum muncul pada
open atau closed dan bubuhkan pointer ke n.

Depth-First Search
Keuntungan:
1.Membutuhkan memori yang relatif kecil, karena hanya
simpul-simpul pada linatasan yang aktif saja yang disimpan.
2.Secara kebetulan, metode ini akan menemukan solusi tanpa
harus menguji lebih banyak lagi dalam ruang keadaaan.
.Kelemahan:
1.Memungkinkan tidak ditemukannya tujuan yang diharapkan.
2.Hanya akan mendapatkan 1 solusi pada setiap pencarian.

Breadth-First Search
Bersifat horizontal
Evaluasi dilakukan terhadap simpul-simpul
pada suatu level sebelum dilanjutkan pada
level berikutnya
Pencarian dimulai dari Simpul Akar (Level 0)
terus ke Level 1 dari kiri ke kanan sampai
semua simpul pada level tersebut dikunjungi,
dan seterusnya ke Level 2, 3, ... sampai
ditemukannya solusi.

Breadth-First Search

Breadth-First Search

Breadth-First Search

Breadth-First Search

Breadth-First Search

Breadth-First Search
Prosedur Pelacakan:
1.Berikan simpul awal pada open
2.Loop: if open = kosong then exit (fail)
3.n : = first (open)
4.If goal (n) then exit (success)
5.Remove (n, open)
6.Add (n, closed)
7.Ekspansikan n. Berikan pada ekonr open semua simpul
anak yang belum muncul pada open atau closed dan
bubuhkan pointer ke n.
8.Kembali ke Loop

Breadth-First Search
Untuk menghitung time complexity dan space
complexity dari teknik ini, misalkan branching
factor pada tree yang digunakan adalah b, dan
goal state terdapat pada level ke-d dari tree
Maka, banyaknya nodes maksimum yang akan
ditelusuri dan disimpan sampai menemukan
solusi (mencapai goal state) adalah sbb:

Breadth-First Search
Kebutuhan waktu dan memori BFS

Branching factor b=10; 1000


nodes/second; 100 bytes/node

Breadth-First Search
Keuntungan:
1. Tidak akan menemui jalan buntu
2. Jika hanya ada satu solusi, maka akan menemukannya.
Dan jika ada lebih dari satu solusi, maka solusi minimum
(dalam hal kedalaman tree) akan ditemukan.
.Kelemahan:
1. Membutuhkan memori yang cukup banyak, karena
menyimpan semua simpul dalam satu pohon.
2. Membutuhkan waktu yang cukup lama, karena akan
menguji n level untuk mendapatkan solusi pada level
yang ke (n+1).

Teknik Informed Search

Pendahuluan
Blind Search tidak selalu dapat
diterapkan dengan baik.
Di antara kelemahannya adalah
waktu aksesnya yang cukup lama
serta besarnya memori yang
diperlukan.
Kelemahan ini sebenarnya dapat
diatasi dengan memberikan
informasi tambahan dari domain

Pendahuluan
Heuristik adalah rule of thumb berbasis knowledge
untuk menentukan pilihan dari sejumlah alternatif
untuk mencapai sasaran dengan efektif
Heuristic bersifat estimasi, bukan perhitungan
aktual/real
Heuristik dipergunakan untuk mempersempit ruang
pelacakan mengurangi waktu dan memory yang
dipakai
Heuristic juga digunakan untuk mendapatkan solusi
yang optimal
Heuristic search informed search, tidak berlaku
sebaliknya

Blind Search x Heuristic Search


Perhatikan contoh kasus pada
masalah 8-puzzle, dimana ada 4
operator yang dapat digunakan
(sama seperti 4-puzzle) yaitu:
1.
2.
3.
4.

BU (Blank Up)
BD (Blank Down)
BL (Blank Left)
BR (Blank Right)

Blind Search x Heuristic Search


Contoh:

Dari keadaan (state) awal, hanya 3


operator yang dapat digunakan,
yaitu BL atau BR atau BU.

Blind Search x Heuristic Search

Blind Search x Heuristic Search


Apabila digunakan blind search, kita tidak perlu
mengetahui atau mempertimbangkan next-state mana
yang akan dipilih (sembarang next-state dapat dipilih),
pemilihan solusi tergantung pada teknik yang digunakan
Sedangkan pada pencarian heuristik, pemilihan nextstate menjadi penting untuk memperoleh solusi yang
dianggap paling optimal
Untuk itu, di dalam pencarian heuristik perlu
ditambahkan informasi tertentu dalam domain masalah
tersebut

Blind Search x Heuristic Search


Informasi apa saja yang dapat ditambahkan di dalam pencarian

heuristik untuk pemilihan next-state dalam masalah 8-puzzle?

Blind Search x Heuristic Search


Beberapa informasi yang dapat ditambahkan di dalam pencarian
heuristik untuk mendapatkan solusi optimal dalam masalah 8puzzle:

1. Jumlah ubin yang


menempati posisi
yang benar. Jumlah
yang lebih tinggi
adalah jumlah yang
lebih diharapkan
(lebih baik).

Blind Search x Heuristic Search


2.Jumlah ubin yang menempati posisi yang salah.
Jumlah yang lebih kecil adalah yang diharapkan (lebih baik).

Blind Search x Heuristic Search


3.Menghitung total gerakan vertikal dan horizontal yang
diperlukan oleh ubin selain Blank untuk mencapai tujuan.
Jumlah yang lebih kecil adalah yang diharapkan (lebih baik).

Uniform Cost Search


(UCS)
UCS melakukan searching
berdasarkan informasi cost aktual
(yang sebenarnya)
Tidak menggunakan estimasi
bukan heuristic search, tapi termasuk
informed search
Next-state dipilih berdasarkan actualcost terkecil atau terbesar

Finding Route
Perhatikan peta di bawah ini
Oradea

71

Neamt

75

Zerind

151

87
lasi

140

Arad

Sibiu
118

99

Fagaras

92

80
T im isora

Vaslui

Rim nicu Vilcea

111

97

Pitesti

211

142

Lugoj
70

146
Mehadia

75
Dobreta

138

Urziceni
Bucharest

120
Craiova

98

85

101

90
Giurgiu

Hirsova
86
Eforie

Uniform Cost Search


(UCS)
Bagaimana mencari rute terpendek
dari Arad-Bucharest menggunakan
UCS?
(dijelaskan di kelas, pembahasan di
papan tulis )

Uniform Cost Search


(UCS)
Kelebihan UCS:
Pasti menghasilkan solusi optimal
Optimal complete, tidak berlaku
sebaliknya

Kekurangan:
Time complexity besar
Space complexity besar

Teknik Heuristik
Beberapa teknik yang akan
dipelajari:
1. Best-First Search
a. Greedy Search
b. A* search

2. Hill Climbing

Best First Search


Secara umum, prinsip yang
digunakan:
Pada setiap langkah, dipilih simpul
yang diperkirakan lebih dekat
terhadap sasaran dari semua
simpul yang dibangkitkan

Ada 2 teknik yang akan


dipelajari:

Greedy Best First Search


Digunakan fungsi evaluasi (fungsi heuristic), yaitu h(n)
h(n) mengestimasikan cost dari n ke titik goal
Perhatikan bahwa cost aktual menunjukkan biaya/cost
real dari initial state ke titik n,
Sementara estimation cost mengestimasi biaya/cost
dari titik n ke titik goal
Cost dapat berupa jarak, waktu, biaya, atau parameter
lainnya tergantung permasalahan yang akan dicari
solusinya
Greedy search mengekspansi node yang tampak paling
dekat ke tujuan (goal state)

Greedy Best First Search


Carilah rute dari Arad ke Bucharest
menggunakan greedy search!
Oradea

71

Neamt

75

Zerind

151

87
lasi

140

Arad

Sibiu
118

99

Fagaras

92

80
T im isora

Vaslui

Rim nicu Vilcea

111

97

Pitesti

211

142

Lugoj
70

146
Mehadia

75
Dobreta

138

Urziceni
Bucharest

120
Craiova

98

85

101

90
Giurgiu

Hirsova
86
Eforie

Greedy Best First Search


Parameter apa yang dapat kita gunakan untuk
mengestimasi cost dari kota tertentu ke kota tujuan
(Bucharest)?
Apakah jarak antar kota (yang tercantum dalam map) dapat
digunakan sebagai estimation cost?
Tidak dapat...Mengapa?
Maka, kita dapat menyatakan estimation cost atau h(n)
sebagai jarak straight-line dari kota n ke kota tujuan
(Bucharest)
Sehingga node yang akan dipilih ketika ekspansi nodes
adalah node yang memiliki h(n) atau jarak straight-line
terpendek ke Bucharest

Greedy Best First Search

Greedy Best First Search

Greedy Best First Search

Greedy Best First Search

Greedy Best First Search


Salah satu kelemahan greedy
search adaalah memungkinkan
terjadinya stuck in loops dan
tidak optimalnya hasil yang
diperoleh

A* Search
Ide dari A* search:
Menghindari path/jalur yang sudah
bernilai expensive
D.k.l, di dalam A* search
dipertimbangkan juga cost yang
telah dicapai sebelumnya

Fungsi evaluasi (fungsi heuristic)


dimodifikasi menjadi

A* Search

g(n) = cost yang telah dicapai hingga node ke-n


h(n) = estimated cost dari node ke-n hingga ke
node tujuan
f(n) = total cost

A* Search
Tentukan rute Arad Bucharest
menggunakan A* search

A* Search

A* Search

A* Search

A* Search

A* Search

Apa perbedaan A dan A*


search?
Perbedaannya terletak pada
fungsi heuristicnya, h(n).
A search dengan fungsi heuristic
h(n) yang admissible, disebut A*
search yang dijamin akan
optimal
Jadi prinsip searchingnya sama,
algoritmanya sama, yang

What is Admissible
Heuristic?
Aheuristich(n) isadmissible
ifforeverynoden,
h(n)
h*(n),whereh*(n) istheactual
minimum
costtoreachthegoalstatefrom
n
Anadmissibleheuristicnever
overestimates theactual

Contoh-1
Diketahui
state-space
seperti di
samping. Jika
initial state
adalah s dan
final statenya
adalah g,

Contoh-2
Cari solusi dari soal sebelumnya
menggunakan greedy dan A/A*
search jika diketahui cost
menunjukkan jarak, dan fungsi
heuristic h(n) dari titik n ke final
state (g) adalah sebagai berikut:
a. h(a) = 2, h(b) = 3, h(c) = 1, h(d) = 4,
h(g) = 0, h(s) = 10
b. h(a) = 2, h(b) = 3, h(c) = 1, h(d) = 1,

Contoh 1- UC Search

Contoh 1- UC Search

Contoh 1- UC Search

Contoh 1- UC Search

Contoh 1- UC Search

Contoh 1- UC Search

Contoh 1- UC Search

Contoh-2a GreedyRevising

Contoh-2a GreedyRevising

Contoh-2a GreedyRevising

Contoh-2a GreedyRevising

Contoh-2a GreedyRevising

Contoh 2a-A SearchRevising

Contoh 2a-A SearchRevising

Contoh 2a-A SearchRevising

Contoh 2a-A SearchRevising

Contoh 2a-A SearchRevising

Contoh 2b-A*Search Revising

Contoh 2b-A*Search Revising

Contoh 2b-A*Search Revising

Contoh 2b-A*Search Revising

Contoh 2b-A*Search Revising

Latihan
Terdapat permasalahan 8-puzzle
dimana ada 4 operator yang dapat
yaitu: BU (Blank Up), BD (Blank
Down), BL (Blank Left), BR (Blank
Right). Ingin dicari langkah
penyelesaian untuk mengubah
initial state menjadi final state
berikut ini:

Latihan-lanjutan
Bandingkan solusi penyelesaian yang
dihasilkan oleh kedua teknik berikut ini:
Greedy search, dengan fungsi heuristic f(n) =
h(n) dimana h(n) = cost yang akan ditanggung
ke depannya jika memilih state atau node-n =
total gerakan vertikal dan horisontal yang
diperlukan setiap ubin pada state-n untuk
mencapai final state
A/A* search, dengan fungsi heuristic f(n) =
g(n) + h(n), dimana:
g(n) = cost yang sudah dicapai = total gerakan ubin
dari mulai initial state

Hill Climbing
Ide dasar algoritma searching Hill
Climbing:
Searching for a goal state =
Climbing to the top of a hill
Menggunakan fungsi heuristic
yang mengestimasi seberapa
dekat sebuah node/state ke goal
state

Hill Climbing
Ingat bahwa fungsi heuristic
mengestimasi seberapa dekat sebuah
node/state ke goal state atau
mengestimasi cost dari sebuah node ke
goal state
Semakin dekat dengan goal state,
semakin kecil costnya (semakin kecil
nilai heuristicnya)
Pada banyak kasus, goal state akan

Hill Climbing
Ada dua jenis:
1. Simple Hill-Climbing
2. Steepest Ascent Hill Climbing

Simple Hill Climbing


Algoritma:
1. Evaluate initial state
2. Loop until a solution is found or
there are no new operators left to
be applied:
1) Select and apply a new operator to
generate new states
2) Evaluate the new state:
1. goal quit, or
2. better than current state new current

Simple Hill Climbing


Key selection:
Better than current state, even though not
the best value
Tidak harus memiliki nilai heuristic terkecil,
yang penting nilainya lebih baik dari nilai
heuristic current state
Jadi, yang diketemukan pertama kali dan
nilainya lebih baik, maka itulah next statenya

Pertanyaannya, node mana yang harus


dicek pertama kali?

Steepest-Ascent Hill
Climbing
Algoritma:
1. Evaluate initial state
2. Loop until a solution is found or
there are no new operators left to
be applied:
1) Select and apply a new operator to
generate new states
2) Evaluate the new state:
1. goal quit, or

Steepest-Ascent Hill
Climbing
Key selection:
Best value and better than current state
Harusmemiliki nilai heuristic terkecil dan
nilainya lebih baik dari nilai heuristic
current state

Hill Climbing
Pada Simple HC maupun SteepestAscent HC, terdapat beberapa potensi
masalah:
Bagaimana jika pada titik/level tertentu di
antara child-nodes yang dihasilkan tidak
ada yang memiliki nilai heuristic yang lebih
baik?
Bagaimana jika node/state terakhir pada
path yang dipilih bukan merupakan goal
state?
Kondisi seperti ini sering disebut local

Hill Climbing-Local
Maximum
Local Maximum adalah kondisi dimana
terdapat state yang nilainya lebih baik
(paling baik) dibanding childtetangganya tetapi tidak lebih baik
dibandingkan node lain di luar
siblingnya

Hill Climbing-Local
Maximum
Contoh:

Hill Climbing-Plateau
Plateau adalah flat area, kondisi dimana
semua node yang bertetangga (sesama
siblings) memiliki nilai heuristic yang
sama

Hill Climbing-Plateau
Contoh:

Hill Climbing-Ways Out


Backtrack to some earlier node
and try going in a different
direction ( usualy used)
Make a big jump to try to get in
a new section (randomly).
Moving in several directions at
once.

Contoh 1-Hill Climbing


Sales Traveling
Problem
Carilah lintasan
terpendek untuk
sales travelling
problem dengan
state space di
samping ini.

A
3

B
5

Contoh 1-Hill Climbing


Operator yang
digunakan:
1.Tukar kota
dengan 2
2.Tukar kota
dengan 3
3.Tukar kota
dengan 4
4.Tukar kota

1
2
3
4

A
3

B
5

Contoh 1-Hill Climbing


ABCD/
19
BACD/
17

ACBD/
12

ABDC/
18

DBCA/
12

ADCB/
18

CBAD/
20

ABCD/
19

BCAD/
15

BADC/
12

DACB/
12

BDCA/
15

CABD/
16

Simple

Steepest

Contoh 2-Hill Climbing


Carilah rute untuk permasalahan
Arad-Bucharest menggunakan:
1. Simple HC
2. Steepest-Ascent HC

Contoh 2-Hill Climbing


Oradea

71

Neamt

75

Zerind

151

87
lasi

140

Arad

Sibiu
118

99

Fagaras

92

80
T im isora

Vaslui

Rim nicu Vilcea

111

97

Pitesti

211

142

Lugoj
70

146
Mehadia

75
Dobreta

138

Urziceni
Bucharest

120
Craiova

98

85

101

90
Giurgiu

Hirsova
86
Eforie

Latihan-Hill Climbing
Blocks World
Disusun 4 buah
kubus sebagai
berikut (initial state
dan final state)
Tentukan langkahlangkah yang
diperlukan untuk
mencapai f.s
Dalam 1 langkah
hanya dapat diambil

Latihan-Hill Climbing
Blocks World
Rancanglah fungsi
heuristic yang dapat
digunakan sehingga
kita dapat mencari
solusi menggunakan
H
Operasi yang dapat
dilakukan:
Mengambil 1 blok
dan meletakannya
(bisa di atas lantai

Anda mungkin juga menyukai