pertemuan 3

advertisement
KECERDASAN BUATAN
(ARTIFICIAL INTELLIGENCE)
PERTEMUAN 3
MASALAH, RUANG KEADAAN DAN PENCARIAN 1
Metode Pencarian


Terdapat banyak metode yang telah diusulkan.
Semua metode yang ada dapat dibedakan ke dalam 2 jenis :
1. Pencarian buta / tanpa informasi (blind / un-informed
search)
2. Pencarian heuristik / dengan informasi (heuristic atau
informed search)

setiap metode mempunyai karakteristik yang berbeda-beda
dengan kelebihan dan kekurangan masing-masing.
4 Kriteria mengukur performansi
1. Completeness :
Apakah metode tersebut menjamin penemuan solusi
jika solusinya memang ada?
2. Time complexity :
Berapa lama waktu yang diperlukan ?
3. Space complexity :
Berapa banyak memori yang diperlukan ?
4. Optimality :
Apakah metode tersebut menjamin menemukan
solusi yang terbaik jika terdapat beberapa solusi yang
berbeda ?
Heuristic Searching
Sebagai Dasar dari Kecerdasan Buatan

Para peneliti awal kecerdasan buatan menitik beratkan
pada penyelesaian masalah yang tidak menggunakan
metoda komputasi konvensional.

Hal ini disebabkan metoda pemecahan masalah
konvensional tidak dapat lagi digunakan.

Permasalahan pada sistem KB tidak memiliki algoritma
tertentu. Kalaupun ada tentulah sangat kompleks.

Karena itu haruslah ditemukan sebuah teknik baru yang
mirip dengan cara yang digunakan oleh manusia untuk
menyelesaikan masalah dan dapat diimplementasikan pada
komputer.

Salah satu metoda yang cukup terkenal adalah
metoda searching.

Searching dalam sebuah struktur data telah
menjadi dasar bagi algoritma komputer, tetapi
proses searching pada KB memiliki perbedaan.

Metoda searching pada KB merupakan searching
terhadap problem space bukan searching data
(e.g., angka, karakter, string) tertentu.

Proses searching ini berupa jalur yang
menggambarkan keadaan awal sebuah masalah
menuju kepada penyelesaian masalah yang
diinginkan (i.e., the solved problem).

Jalur-jalur ini mengambarkan langkah-langkah
penyelesaian masalah.

Melalui proses searching menuju sebuah
penyelesaian akan terbentuk sebuah solution
space.





Perhatikan contoh penyelesaian masalah komputer
pada Gambar 1.4.
Langkah pertama untuk mengetahui apakah
komputer dapat digunakan atau tidak adalah menswitch ON.
Selanjutnya dengan melakukan inspeksi terhadap
kondisi lampu indikator kita dapat menentukan
langkah berikutnya.
Misalnya kondisi lampu OFF.
Dengan melakukan searching terhadap problem
space kita akan tiba pada sebuah penyelesaian
masalah agar komputer dapat diaktifkan kembali.
BLIND / UN-INFORMED SEARCH
Istilah blind atau buta digunakan karena memang tidak ada
informasi awal yang digunakan dalam proses pencarian.
Berikut ini, sekilas 6 metode yang tergolong blind search
a.
Breadth-First Search (BFS)
b.
Depth-First Search (DFS)
c.
Depth-Limited Search (DLS)
d.
Uniform Cost Search (UCS)
e.
Iterative-Deepening Search (IDS)
f.
Bi-Directional Search (BDS)
1. Breadth-first Search


Breadth-first search (BFS) melakukan
proses searching pada semua node yang
berada pada level atau hirarki yang sama
terlebih dahulu sebelum melanjutkan proses
searching pada node di level berikutnya.
Urutan proses searching BFS ditunjukkan
dalam Gambar 1.6 adalah: A,B,C,D,E,F,

Pada metode 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 ke-1 dari kiri ke kanan, kemudian
berpindah ke level berikutnya demikian pula
dari kiri ke kanan hingga ditemukannya solusi

Tidak akan menemui jalan buntu (solusi lebih
optimal)

Jika ada satu solusi, maka breadth-first search
akan menemukannya. Dan jika ada lebih dari
satu solusi, maka solusi minimum akan
ditemukan.

Membutuhkan memori yang cukup banyak,
karena menyimpan semua node dalam satu
pohon (membutuhkan simpul yam umumnya
relatif banyak)

Membutuhkan waktu yang cukup lama,
karena akan menguji n level untuk
mendapatkan solusi pada level yang ke-(n+1)
2. Depth-first Search



Depth-first search (DFS) adalah proses searching sistematis
buta yang melakukan ekpansi sebuah path (jalur) menuju
penyelesaian masalah sebelum melakukan ekplorasi terhadap
path yang lain.
Proses searching mengikuti sebuah path tunggal sampai
menemukan goal atau dead end.
Apabila proses searching menemukan dead-end, DFS akan
melakukan penelusuran balik ke node terakhir untuk melihat
apakah node tersebut memiliki path cabang yang belum
dieksplorasi.



Apabila cabang ditemukan, DFS akan melakukan cabang
tersebut.
Apabila sudah tidak ada lagi cabang yang dapat dieksplorasi,
DFS akan kembali ke node parent dan melakukan proses
searching terhadap cabang yang belum dieksplorasi dari node
parent sampai menemukan penyelesaian masalah.
Urutan proses searching DFS ditunjukkan dalam Gambar 1.5
adalah: A, B, E, F, G, C, ...
Kelebihan DFS adalah:


Pemakaian memori hanya sedikit, berbeda
jauh dengan BFS yang harus menyimpan
semua node yang pernah dibangkitkan.
Jika solusi yang dicari berada pada level
yang dalam dan paling kiri, maka DFS akan
menemukannya secara cepat.
Kelemahan DFS adalah:


Jika pohon yang dibangkitkan mempunyai
level yang dalam (tak terhingga), maka
tidak ada jaminan untuk menemukan solusi
(Tidak Complete).
Jika terdapat lebih dari satu solusi yang
sama tetapi berada pada level yang berbeda,
maka pada DFS tidak ada jaminan untuk
menemukan solusi yang paling baik (Tidak
Optimal).
3. Depth-Limited Search (DLS)

Metode ini berusaha mengatasi kelemahan DFS
(tidak complete) dengan membatasi kelemahan
maksimum dari suatu jalur solusi.

Tetapi, sebelum menggunakan DLS, kita harus
tahu berapa level maksimum dari suatu solusi.
Definisi

Algoritma Depth-Limited Search (DLS), adalah salah satu
jenis algoritma pencarian solusi. Algoritma ini dijalankan
dengan cara membangkitkan pohon pencarian secara
dinamis. Pencarian solusi dilakukan secara mendalam.

Pada dasarnya, algoritma DLS sama dengan algoritma
DFS, hanya saja dalam permasalahan penelusuran graf,
sebelumnya ditentukan terlebih dahulu batas maksimum
level yang dikunjungi.
www.themegallery.com
Algoritma

Misalkan terdapat graf/pohon dengan n buah simpul dan v merupakan
simpul awal penelusuran maka algoritma DFS adalah sebagai berikut:
1.
Tentukan batas kedalaman pohon
yang akan dikunjungi.
Kunjungi simpul v.
2.
3.
Kunjungi simpul w yang bertetangga
dengan simpul v, yang berada di
kedalaman pohon <= batas.
www.themegallery.com
Ulangi DLS mulai dari simpul w.
4.
5.
6.
Ketika mencapai simpul u sedemikian
sehingga
semua
simpul
yang
bertetangga
dengannya
telah
dikunjungi, pencarian dirunut-balik
(backtrack) ke simpul terakhir yang
dikunjungi
sebelumnya
dan
mempunyai simpul w yang belum
dikunjungi.
Pencarian berakhir bila tidak ada lagi
simpul yang belum dikunjungi yang
dapat dicapai dari simpul yang telah
dikunjungi dalam kedalaman pohon
<= batas.
www.themegallery.com
Kelebihan dan Kekurangan

DLS lahir untuk mengatasi kelemahan
DFS(tidak complete) dengan membatasi
kedalaman maksimum dari suatu jalur solusi.
Tetapi harus diketahui atau ada batasan dari
sistem tentang level maksimum. Jika batasan
kedalaman terlalu kecil, DLS tidak complete.
www.themegallery.com
Contoh 1
Bila simpul awal adalah 1
dan
batas
kedalaman
adalah 3 maka urutan
dikunjunginya adalah 1, 2,
4, 5, 3, 6,7.
www.themegallery.com
Contoh 2
Bila simpul awal juga 1
dan
batas
kedalaman
adalah 3 maka urutan
dikunjunginya adalah 1, 2,
5, 6, 3, 7, 4
www.themegallery.com
Water Jug Problem
1
Terkadang apa yang kita
2
punya, tidak sesuai dengan
apa yang kita harapkan.
3
4
www.themegallery.com
Definisi

Water Jug problem adalah masalah yang
membutuhkan konversi situasi menjadi
situasi lain yang diinginkan dengan
menggunakan
sekumpulan
operasi
tertentu. Dan masalah ini dapat di
selesaikan dengan merepresentasikan
semua kemungkinan hasil dalam sebuah
pohon. Maka masalah ini dapat
dikategorikan sebagai masalah yang
www.themegallery.com

Oleh karena itu penulis berpendapat bahwa
masalah ini dapat diselesaikan dengan baik
dengan menggunakan keempat algoritma
tersebut (BFS, DFS, DLS, dan IDS).
www.themegallery.com
Contoh
1
Kita mempunyai sebuah gelas dengan kapasitas 4 liter dan
sebuah gelas yang lain dengan kapasitas (misalkan) 3 liter.
Kedua gelas tidak memiliki skala ukuran dan dalam
keadaan kosong.
Kita ingin mendapatkan air sebanyak 2 liter dalam gelas
yang berkapasitas 4 liter dan tidak boleh mendapatkannya
dengan menggunakan prediksi sendiri. Selain itu, kita harus
mengikuti suatu operasi-operasi tertentu, seperti dalam
tabel berikut.
Keterangan
x adalah gelas dengan kapasitas 4 liter
y adalah gelas dengan kapasitas 3 liter
www.themegallery.com
Penyelesaian
www.themegallery.com
Suatu solusi untuk Water Jug
Problem
www.themegallery.com
Pencarian
Solusi
dengan menggunakan
algoritma DLS
Diagram
1
2
4
3
5
8
6
7
www.themegallery.com
Penerapan




Langkah-langkah yang dilakukan dalam pencarian solusi
menggunakan algoritma DLS adalah
Tentukan kedalaman simpul yang dikunjungi (n), misalkan
n=5.
Masukkan simpul akar (0, 0) ke dalam antrian q, jika simpul
akar adalah simpul tujuan (goal node) maka solusi
ditemukan.Stop.
Jika S kosong, tidak ada solusi. Stop.
Cek apakah sesuai dengan keinginan (2,0).Jika true maka
solusi ketemu. Jika false maka bangkitkan simpul tetangga,
dan ulang (2), hingga kedalaman simpul yang dikunjungi <= 5.
www.themegallery.com
Source Code
procedure DLS (input v: Point, level:integer)
kamus
w: point
q: antrian
algoritma
write(v)
dikunjungi[v] ← true {array untuk menampung simpul yang sudah dikunjungi}
level  1
while not level > 5 do
{ kunjungi semua simpul di level 1,panggl algoritma DFS}
if A[v,w] = 1 then {simpul v dan simpul w bertetangga}
if not dikunjungi[w] then
DLS(w, level)
endif
endif
level  level +1
endwhile
www.themegallery.com
Perbandingan Strategi Pencarian
Keterangan
b
: faktor percabangan
d
: kedalaman solusi
M
: kedalaman maksimum pohon pencarian
l
: kedalaman
www.themegallery.com
4. Uniform Cost Search (UCS)


Konsepnya hampir sama dengan BFS,
bedanya adalah bahwa BFS menggunakan
urutan level yang paling rendah sampai
yang paling tinggi, sedangkan UCS
menggunakan urutan biaya dari yang
paling kecil sampai yang terbesar.
UCS berusaha menemukan solusi dengan
total biaya terendah yang dihitung
berdasarkan biaya dari simpul asal
menuju ke simpul tujuan.
5. Iterative-Deepening Search (IDS)
IDS merupakan metode yang
menggabungkan kelebihan BFS (Complete
dan Optimal) dengan kelebihan DFS (space
complexity rendah atau membutuhkan
sedikit memori)
 Tetapi konsekwensinya adalah time
complexitynya menjadi tinggi.

Iterative deepening search





The problem with depth-limited search is deciding on a suitable depth
parameter. To avoid this problem there is another search called iterative
deepening search (IDS).
This search method tries all possible depth limits; first 0, then 1, then 2 etc.,
until a solution is found.
IDS may seem wasteful as it is expanding nodes multiple times. But the
overhead is small in comparison to the growth of an exponential search tree
For large search spaces where is the depth of the solution is not known IDS
is normally the preferred search method.
The following slide illustrates an iterative deepening search of 26 nodes
(states) with an initial state of node A and a goal state of node L. Press
space to see the example node set.
The example node set
Initial state
A
B
C
D
E
F
Goal state
G H
I
J
K
L
M N
O
P
Q
S
T
U V
W X
Y
Z
R
Press space to see a IDS of the example node set
A
We
Node
begin
A iswith
thenour
expanded
initial state:
and removed
the node
labeled
from the
A. queue.
This node
Press
is added
space. to the
queue. Press space to continue
As this is the 0th iteration of the search, we cannot search past any level greater than
zero. This iteration now ends, and we begin the 1st iteration.
Press space to begin the search
Size of Queue: 01
Queue: A
Empty
Nodes expanded: 10
Current Action: Expanding
Current level: 0n/a
ITERATIVE DEEPENING SEARCH PATTERN (0th ITERATION)
We
Node
The
now
B
search
isback
expanded
now
track
moves
to
and
expand
removed
to level
node
one
from
C,
of and
the
queue.
the
theprocess
node
Press
set.
continues.
space.
Press space
Presstospace.
continue
B
C
A
D
Node
We again
A is expanded,
begin withthen
our removed
initial state:
from
the
the
node
queue,
labeled
andA.the
Note
revealed
that the
nodes
1st iteration
are
added
carriestoon
thefrom
frontthe
. Press
0th, and
space.
therefore the
‘nodes expanded’ value is already set to 1.
Press space to continue
E
F
As this is the 1st iteration of the search, we cannot search past any level greater than
level one. This iteration now ends, and we begin a 2nd iteration.
Press space to continue
begin thethe
search
search
Size of Queue: 012345
Queue: A
B, F
C,
D,
E,
F
Empty
C,
D, F
E,
D,
E, F
E, F
Nodes expanded: 7654321
Current Action: Expanding
Backtracking
Current level: 10n/a
ITERATIVE DEEPENING SEARCH PATTERN (1st ITERATION)
Node
The
search
Bexpanding
ismove
expanded
then
and
tothe
level
of
We
After
now
to moves
level
node
two
G
we
ofrevealed
backtrack
theone
node
the
nodes
node
added
set.
Press
to
the
space
front
of
to the
continue
queue.
set.
to expand
Press
space
node
to
H.continue.
The process
then
Press
spaceuntil
to continue.
continues
goal state. Press space
B
A
C
G H
I
D
J
K
Node
We
Again,
again
Awe
is begin
removed
expand
with
node
from
ourAthe
initial
to reveal
queue
state:
the
and
the node
level
each
revealed
one labeled
nodes.
node
Press
A. is
Note
added
space.
thattothe
the2nd
front of
iteration
the
queue.carries
Press on
space.
from the 1st, and
therefore the ‘nodes expanded’ value is
already set to 7 (1+6). Press space to
E
F
continue the search
L
Node L is located on the second level and the search returns a solution
on its second iteration. Press space to end.
Press space to continue the search
Size of Queue: 034561
Queue: A
B,J,
G,
H,
C,
I,
J,
D,
K,
L,
Empty
D,
C,
E,
D,
H,D,
C,
L,
E,
F
D,
E,
D,
C,E,
FF
E,
E,
D,FF
F
E, F
Nodes expanded: 16
987
10
11
12
13
14
15
CurrentSEARCH
Action: Backtracking
Expanding
FINISHED
Current level: 210n/a
ITERATIVE DEEPENING SEARCH PATTERN (2nd ITERATION)
6. Bi-Directional Search (BDS)

Pencarian dilakukan dari dua arah :
pencarian maju (dari start ke goal) dan
pencarian mundur (dari goal ke start). Ketika
dua arah pencarian telah membangkitkan
simpul yang sama, maka solusi telah
ditemukan, yaitu dengan cara
menggabungkan kedua jalur yang bertemu.
Download