Anda di halaman 1dari 83

SEARCHING

(PENCARIAN)
By. Rita Wiryasaputra, ST., M.Cs.

Masalah kesenjangan antara yang diharapkan


dengan kenyataan yang ada
Pencarian/Searching teknik menyelesaikan masalah AI
Contoh aplikasi:
Papan game dan puzzle (tic-tac-toe, catur, menara
hanoi)
Penjadwalan dan masalah routing (travelling salesman
problem)
Logika pemrograman (pencarian fakta dan implikasinya)
Parsing bahasa dan intepretasinya (pencarian struktur
dan arti)
Computer vision dan pengenalan pola
Sistem pakar berbasis kaidah (rule based expert system)

TUGAS

Resume paper pada jurnal yang berkaitan


dengan aplikasi tersebut
Tentukan jenis penelitian
Data kuantitatif/ data kualitatif
Berapa banyak data yang digunakan/tipe

PROSES PEMBANGUNAN SISTEM


Mendefinisikan Masalah

Analisis
Solusi dengan model

Implementasi

Masalah dalam AI
masalah dapat dikonversi ke dalam ruang keadaan (state space)
mempunyai keadaan awal (initial state)
mempunyai keadaan tujuan (goal state)
dapat dibuat aturan (rule)
4

Teknik penyelesaian masalah:


Pencarian (Searching) terdiri dari Pencarian
buta (Blind Search) dan Pencarian terbimbing
(Heuristic Search)
Penalaran (Reasoning)
Planning
Learning

Untuk Mendefinisikan suatu masalah :


Definisikan Ruang keadaan/masalah (State Space) ruang
yang berisi semua keadaan yang mungkin
Tentukan Keadaan Awal (Initial State) keadaan dimulainya
pencarian
Tentukan keadaan akhir/tujuan (Goal State) keadaan
diakhirinya pencarian
Tentukan operatornya/ aturannya aturan yang digunakan
untuk mengubah suatu keadaan ke keadaan lainnya

Permasalahan Permainan Catur, maka harus ditentukan :


1. Posisi Awal pd Papan Catur
Posisi awal setiap permainan catur selalu sama, yaitu semua bidak diletakkan di atas papan catur dalam 2 sisi, yaitu kubu putih dan kubu hitam :

2. Aturan-aturan untuk melakukan gerakkan secara legal


aturan-aturan untuk menentukan gerakan suatu bidak, yaitu melangkah
dari satu keadaan ke keadaan lain.
Misalkan untuk mempermudah menunjukkan posisi bidak, setiap kotak
ditunjukkan dalam huruf ( a, b, c, d, e. f. g. h) pada arah horizontal,
dan angka(1, 2, 3, 4, 5, 6, 7, 8) pd arah vertikal.

If

Suatu aturan untuk menggerakkan bidak dari


posisi (e,2) ke (e,4), ditunjukkan pd aturan
sbb :

Bidak Putih pada kotak (e,2),


And Kotak(e, 3) Kosong
And Kotak (e,4) Kosong
Then Gerakkan Bidak dari (e,2) ke (e, 4)

Seperti terlihat pd gambar berikut :

3. Tujuan (Goal)
Tujuan yg ingin dicapai adl. Posisi pd papan catur yg menunjukkan
kemenangan seseorg. Thdp lawannya. Kemenangan ini ditandai dgn
posisi raja yg sudah tidak dapat bergerak lagi.

Ruang keadaan (State Space) yaitu : suatu ruang yg berisi semua keadaan
yg mungkin.

PERMASALAHAN GELAS AIR

Ada 2 buah gelas masing-masing berkapasitas


4 galon (Gelas A) dan 3 galon (Gelas B). Tidak
ada tanda yg menunjukkan batas ukuran pd
kedua gelas tsb. Ada sebuah pompa air yg
akan digunakan untuk mengisikan air pd
kedua gelas tsb.
Permasalahannya : Bagaimanakah pengisian
tepat 2 galon air ke dlm gelas yg
berkapasitas 4 galon dan 3 galon air ke dlm
gelas yang berkapasitas 3 galon???

Penyelesaian :
A. Identifikasi ruang keadaan
Permasalahan ini dpt direpresentasikan dgn 2 bilangan integer,
yaitu, X dan Y :
. X = volume air yg diisikan pd gelas 4 galon (gelas A)
. Y = volume air yg diisikan pd gelas 3 galon (gelas B)
Ruang keadaan : (X,Y) sedemikian sehingga X (0, 1,2,3,4) dan Y (0,1,2,3)

B. Keadaan Awal dan Tujuan


. Keadaan awal, kedua gelas dlm keadaan kosong : (0,0)
. Tujuan, x = 2 galon dan y = 3 galon yang dinyatakan sebagai (2,3)

Galon

Galon

Gelas A

Gelas B

Pompa air
berisi Air tak
terbatas

REPRESENTASI SPACE STATE:


X|Y

(0,0)

(0,1)

(1,0)

(2,0)

(3,0)

(4,0)

(2,3)
(3,2)
(4,3)

KUMPULAN
ATURAN/PRODUCTION RULES
1.

2.

3.

4.

Isi penuh gelas berkapasitas 4 galon. Jika


keadaan sekarang (x < 4), maka keadaan
selanjutnya (4,y)
Isi penuh gelas berkapasitas 3 galon. Jika
keadaan sekarang (y < 3) , maka keadaan
selanjutnya (x,3)
Kosongkan gelas berkapasitas 4 galon. Jika
keadaan sekarang x > 0, maka keadaan
selanjutnya (0,y)
Kosongkan gelas berkapasitas 3 galon. Jika
keadaan sekarang y > 0, maka keadaan
selanjutnya (x,0)

ATURAN LANJUTAN
5.

6.

7.

8.

Tuangkan sebagian isi gelas berkapasitas 3 galon ke


gelas berkapasitas 4 galon hingga penuh. Jika keadaan
sekarang (x+y > 4) dan (y>0), maka keadaan
selanjutnya (4,y+x-4)
Tuangkan sebagian isi gelas berkapasitas 4 galon ke
gelas berkapasitas 3 galon hingga penuh. Jika keadaan
sekarang (x+y > 3) dan (x>0), maka keadaan
selanjutnya (y+x-3,3)
Tuangkan seluruh isi gelas berkapasitas 4 galon ke gelas
berkapasitas 3 galon. Jika keadaan sekarang (x+y <= 3)
dan (x>0), maka keadaan selanjutnya (0,y+x)
Tuangkan seluruh isi gelas berkapasitas 3 galon ke gelas
berkapasitas 4 galon. Jika keadaan sekarang (x+y <= 4)
dan (y>0), maka keadaan selanjutnya (y+x,0)

SOLUSI
Keadaan Sekarang
X (gelas
kapasitas 4
galon)

Y (gelas
kapasitas 3
galon)

Aturan yg
dipakai

Keadaan Selanjutnya
X (gelas
kapasitas 4
galon)

Y (gelas
kapasitas 3
galon)

LATIHAN:

Gambarkan ruang keadaan untuk tujuan


dimana volume 2 galon air dapat terisi ke
dalam gelas berkapasitas 4 galon

Keadaan Awal (x,y)

(0, 0)

(0, 1)

(0, 2)

(0, 3)

(1, 0)

(1, 1)

(1, 2)

(1, 3)

(2, 0)

(2, 1)

(2, 2)

(2, 3)

(3, 0)

(3, 1)

(3, 2)

(4, 0)

(4, 1)

(4, 2)

Tujuan

(3, 3)

(4, 3)

keadaan dimana pd gelas 4 galon berisi tepat 2 galon air(2,n)


untuk sembarang n.

Aturan-Aturan
Aturan Ke

Jika

(x,y)
X< 4
(x,y)
y< 3
(x, y)

2
3

Maka

(4,y)
Isi Gelas A
(x,3)
Isi Gelas B
(x-d, y)
Tuangkan sebagian air keluar dari
X>0
gelas A
(x, y)
(x,y-d)
Tuangkan sebagian air keluar dari
y>0
gelas B
(x, y)
(0, y)
Kosongkan gelas A dgn membuang
X>0
airnya ke tanah
(x,y)
(x, 0)
Kosongkan gelas B dgn membuang
y>0
airnya ke tanah
(x, y)
(4, y-(4-x)
x + y 4 dan y Tuangkan air dari gelas B ke gelas A
>0
sampai gelas A penuh

(x, y)
x + y 3 dan y > 0

(x, y)
x + y 4 dan y > 0

10

( x, y )
x + y 3 dan x > 0

(x-(3 - y) , y
Tuangkan air dari gelas A ke
gelas B sampai gelas B
penuh
(x + y, 0)
Tuangkan seluruh air dari
gelas B ke gelas A
(0, x+y)
Tuangkan seluruh air dari
gelas A ke gelas B

11

(0, 2)

(2, 0)
Tuangkan 2 galon air dari
gelas B ke gelas A

12

(2, y)

(0, y)
Kosongkan 2 galon air di
gelas A dgn membuang
airnya ke tanah.

Contoh: 2
Masalah Petani, Kambing, serigala dan sayuran

dfdsf

Penyelesaian

. Identifikasi Ruang Keadaan


Permasalahan ini dpt dilambangkan dgn (jumlahKambing, JumlahSerigala,
JumlahSayuran, JumlahBoat). Sbg contoh daerah asal (0,1,1,1) berarti pd
daerah asal tdk ada kambing, ada serigala, ada sayuran, dan ada boat.
2. Keadaan awal dan tujuan
. Keadaan Awal, pada kedua daerah :
. Daerah asal : (1,1,1,1)
. Daerah seberang :(0,0,0,0)
. Tujuan, pada kedua daerah:
. Daerah asal : ( 0,0,0,0)
.Daerah seberang (1,1,1,1)

Aturan Ke

Aturan

Kambing menyeberang

Sayuran menyeberang

Serigala menyeberang

Kambing kembali

Sayuran kembali

Serigala kembali

Boat kembali

Salah satu Solusi Yg. Dpt Ditemuakan adalah sbb :

Daerah Asal

Daerah Seberang

Aturan Yg. Dipakai

(1,1,1,1)

(0,0,0,0)

(0,1,1,0)

(1,0,0,1)

(0,1,1,1)

(1,0,0,0)

(0,0,1,0)

(1,1,,0,1)

(1,0,1,1)

(0,1,0,0)

(1,0,0,0)

(0,1,1,1)

(1,0,0,1)

(0,1,1,0)

REPRESENTASI SPACE STATE

Graph keadaan
Pohon pelacakan
Pohon AND/OR

REPRESENTASI STATE SPACE


(GRAPH KEADAAN)
Graph keadaan (graph berarah) terdiri dari

node-node yg menunjukkan keadaan


keadaan awal dan keadaan baru yg akan
dicapai dgn menggunakan Operator.
Node-node dalam graph saling
dihubungkan dgn menggunakan busur yg
diberi panah untuk menunjukkan arah dari
suatu keadaan ke keadaan berikutnya

Contoh Graph berarah

Graph berarah
dengan tujuan
node T

Graph dengan
jalan buntu

M-A-B-C-E-T

M-A-B-C-E-F-G

M-A-B-C-E-H-T

M-A-B-C-E-I-J

M-D-C-E-T

M-D-C-E-F-G

Keadaan awal : node M dan Keadaan


M-D-C-E-H-T
tujuan : node T, dimana angka di
antara kedua node menunjukkan jarak

M-D-I-J

REPRESENTASI STATE SPACE


(STRUKTUR POHON)

REPRESENTASI STATE SPACE


(POHON PELACAKAN)
Tiap pohon menunjukkan suatu keadaan. Jalur dari Parent ke Child
menunjukkan suatu operasi. Tiap-tiap node pd pohon pelacakan ini memiliki
node-node child yg menunjukkan keadaan yg dicapai parent.
(0, 0)

(0, 3)

(4, 0

(4, 3)

(0, 0)

(1, 3)

(4, 3)

(0, 0)

(3, 0)

REPRESENTASI STATE SPACE


(POHON AND/OR)
M

Masalah M hendak dicari solusinya dgn 3


kemungkinan yaitu A, B atau C. Artinya, masalah
M bisa diselesaikan jika salah satu dari subgoal
A,subgoal B atau subgoal C terpecahkan.

A or B

B
A and B and C

Masalah M hanya dpt diselesaikan


dgn A and B and C solusi
masalah M, dipecahkan melalui
subgoal A, subgoal B dan subgoal
C terlebih dahulu.

ohon AND/OR
Tujuan yg dicapai sampai dgn level 6 pd struktur pohon, Dengan menggunakan
pohon AND/OR, maka bisa dipersingkat sampai level 2.

Presentasi Keadaan Untuk kasus ember

KARAKTERISTIK PROBLEM / MASALAH


Untuk memilih metode yg paling baik untuk, memecahkan suatu
masalah tertentu, diperlukan suatu Analisa Masalah. Dalam menganalisa suatu masalah kita perlu mengetahui beberapa karakteristik
masalah diantaranya adalah :

Teknik Pencarian / Pelacakan (searching)

Metode Pencarian Pelacakan


Ada 2 teknik pencarian dan pelacakan yg digunakan, yaitu :
1. Pencarian Buta (Blind Search)
2. Pencarian terbimbing (Heuristic Search)

1. Pencarian Buta (Blind Search)


A. Pencarian Melebar
Pertama BFS

Gambar : Metoda BFS

Algorithma
1. Buat suatu variabel Node_List dan tetapkan sebagai keadaan
awal.
2. Kerjakan langkah-langkah berikut ini sampai tujuan tercapai
atau Node_List dlm keadaan kosong :
a. Hapus elemen pertama dari Node_List, sebut dgn nama E,.
Jika Node_List kosong, keluar.
b. Pada setiap langkah yg aturannya cocok dengan E, Kerjakan :
b1. Aplikasikan aturan tersebut untuk membentuk suatu
keadaan baru.
b2. Jika keadaan awal adalah tujuan yg diharapkan, sukses
dan keluar.
b3. Jika tidak demikian, tambahkan keadaan awal yg baru tsb
pada akhir Node_List.
Keuntungan
1. Tidak akan menemui jalan buntu
2. Jika ada satu solusi, maka BFS akan menemukannya. Dan jika ada lebih
dari satu solusi, maka solusi minimum akan ditemukan

Kelemahan
1. Membutuhkan memori yg cukup banyak.
2. Membutuhkan waktu yg cukup lama .

Analisis Ruang Dan Waktu


1. Diasumsikan
. Ada satu solusi (satu tujuan ditemukan) pd pohon
. Pohon pelacakan memiliki cabang yg selalu sama, yaitu sebanyak B
. Tujuan dicapai pd level ke-d
. Tujuan dicapai pd. Pertengahan pohon (kondisi rata-rata)
2. Analisis Ruang
. Antrian pertama memiliki 1 keadaan
. Setelah mencapai langkah pertama, antrian akan berisi b, keadaan
. Pemrosesan setiap B kedaan pd level ke-0 akan menambahkan b keadaan
lagi pd antrian.
. Sehingga setelah dilakukan pemrosesan semua keadaan pd level ke-d,
maka antrian akan menyimpan keadaan sebanyak bd-1
. Karena diasumsikan bahwa tujuan terletak di tengah, maka antrian akan
menyimpan bd-1/2 keadaan, yg dpt gbr sebagai berikut:

d-1

Gambar : Analisis Ruang Metode BFS


3. Analisis Waktu
Ukuran waktu diukur dari byknya keadaan yg dikunjungi. Jika diasumsikan
bahwa setiap node membutuhkan waktu yg sama dalam pemrosesan maka:
Waktu = Waktu untuk memproses node-node di level ke -1 +
Waktu untuk memproses node-node di level ke -2 + . . . +
Waktu untuk memproses node-node di level ke-(d-1) +
Waktu untuk memproses node-node di level ke-(d)/2
= 1 + b + b2 + b3 + . . bd-1 + bd/2
= 0 (bd)

B. Pencarian Mendalam Pertama (DFS)


Pada pencarian ini, proses pencarian akan dilakukan pada semua anaknya
sebelum dilakukan pencarian ke node-node yg selevel. Pencarian dimulai
dari node akar ke level yg lebih tinggi. Proses ini diulangi terus sehingga
ditemukan solusi

Algoritma
1. Jika keadaan awal merupakan tujuan, keluar (sukses).
2. Jika tidak demikian, kerjakan langkah-langkah berikut ini sampai
tercapai keadaan sukses atau gagal.
a. Bangkitkan succesor E dari keadaan awal. Jika tidak ada
succesor, maka akan terjadi kegagalan.
b. Panggil DFS dengan E sbg keadaan awal.
c. Jika sukses berikan tanda sukses. Namun jika tidak, ulangi
langkah -2.
Keuntungan
1. Membutuhkan memori yg relatif kecil.
2. Secara kebetulan, metode DFS akan menemukan solusi tanpa hrs
menguji lebih byk lagi kedalam ruang keadaan.

Analisis Ruang dan Waktu


1. Analisis Ruang
. Stlh bjalan satu langkah, stack akan berisi b node.
. Stlh bjalan 2 langkah, stack akan berisi (b-1) + b node.
. Stlh bjalan 3 langkah, stack akan berisi (b-1)*d+1 node, mencapai maksimum
2. Analisis Ruang dan Waktu
. Pd kasus terbaik, DFS akan mencapai tujuan pd kedalaman pertama d pertama, shg dibutuhkan pencarian sebyk d+1 node.
. Pd kasus terburuk, DFS akan mencapai tujuan pd kedalaman d
pd node terakhir, shg dibutuhkan pencarian sebyk :
1 + b + b2 +b3 + ..+ bd = (bd+1-1)/(b-1).

2. Pencarian Heuristik (Heuristic Search)


Metode pencarian ini tidak selalu dpt diterapkan dgn baik, karena
Waktu aksesnya cukup lama dan memori yg digunakan cukup besar.
Kelemahan ini dpt diatasi jika ada informasi tambahan dari domain
yg bersangkutan.
Misalkan pd kasus 8 puzzle
Ada 4 operator yg dpt kita gunakan untuk menggerakan dari satu
keadaan ke keadaan yg baru.
1. Ubin kosong digeser ke kiri
2. Ubin kosong digeser ke kanan
3. Ubin kosong digeser ke bawah
4. Ubin kosong digeser ke atas
Tujuan

Keadaan Awal

Gambar Kasus 8 - Puzzel

3
4

Tujuan

8
7

3
4

5
Kiri

1
7

2
8
6

3
4
5

1
7
6

2
8

3
4
5

Kanan

1
7
6

2
8
5

atas

3
4

1
7
6

Gambar : Langkah awal kasus 8-Puzzel

2
8

3
4
5

Pd gbr diatas. Pd langkah awal ini, hanya 3 operator yg bisa digunakan


,yaitu ubin kosong digeser ke kiri, kekanan dan ke atas. Apabila dipergunakan pencarian buta, kita tidak perlu mengetahui operasi yg akan
dikerjakan (sembarang operasi bisa digunakan). Pd pencarian heuristik
perlu diberikan informasi khusus dalam domain tsb.
Untuk jumlah ubin yg menempati posisi yg benar, jumlah yg lebih
tinggi adalah yg lebih diharapkan (lebih baik). Spt pd gbr. Berikut :

Tujuan

8
7

3
4

5
Kiri

1
7

2
8
6
h=6

3
4
5

1
7
6

2
8

3
4
5

Kanan

1
7
6

2
8
5
h=4

atas

3
4

1
7
6

2
8

3
4
5

h=5

Gambar : Fungsi Heuristik Pertama Kasus 8-Puzzel

Dari 3 operator yg digunakan, diperoleh hasil : Pergeseran ubin kosong


ke kiri bernilai 6 ( h = 6 ), pergeseran kosong ke kanan bernilai 4(h = 4)
, dan pergeseran ubin kosong ke atas bernilai 5 (h=5). Shg nilai berbilangnya adl. 6 (terbesar). Shg langkah selanjutnya yg hrs dilakukan
adl. Mengeser ubin kosong ke kiri.
Untuk jumlah ubin yg menempati posisi yg salah : jml yg lebih kecil
adalah yg diharapkan (lebih baik)

Tujuan

8
7

3
4

5
Kiri

1
7

2
8
6
h=2

3
4
5

1
7
6

2
8

3
4
5

Kanan

1
7
6

2
8
5
h=4

atas

3
4

1
7
6

2
8
h=3

Gambar : Fungsi Heuristik kedua kasus 8 puzzle

3
4
5

Nilai terbaik diperolehh dgn mengeser ubin koson gke kiri (h = 2 ).


Karena nilai ini paling kecil diantara nilai lainnya(4&3). Shg langkah
selanjutnya adalah mengeser ubin kosong ke kiri.
Menghitung total gerakan yg diperlukan untuk mencapai tujuan ;
jumlah yg lebih kecil adalah yg diharapkan (lebih baik) , spt pd
gbr berikut ini :

Tujuan

8
7

3
4

5
Kiri

1
7

2
8
6
h=2

3
4
5

1
7
6

2
8

3
4
5

Kanan

1
7
6

2
8
5
h=4

atas

3
4

1
7
6

2
8
h=4

Gambar : Fungsi Heuristik Ketiga Kasus 8 - Puzzel

3
4
5

Nilai terbaik adalah 2 (h = 2) yg diperoleh dgn menggeser ubin kosong


ke kiri. Nilai ini paling kecil dibanding dgn nilai lainnya (4). Shg
menggeser ubin ke kiri adl. Langkah yg hrs dilakukan selanjutnya .
Ada 4 Metode Pencarian Heuristik
A.
B.
C.
D.

Pembangkitan & Pemgujian (Generate and Test)


Pendakian Bukit (Hill Climbing)
Pencarian Terbaik Pertama (BFS)
Simulated Annealing

. Pembangkitan & Pemgujian (Generate and Test)


Metode ini mengabungkan antara DFS dengan Backtracking, yaitu
bergerak ke belakang menuju pada suatu keadaan awal. Nilai
pengujian berupa jawaban Ya or Tidak .

Algorithma
1. Bangkitkan suatu kemungkinan solusi (membangkitkan suatu titik
tertentu tau lintasan tertentu dari keadaan awal)
2. Uji untuk melihat apakah node tsb. Benar-benar merupakan solusinya
Dgn cara membandingkan node tsb atau node akhir dari suatu lintasan
yg dipilih dgn kumpulan tujuan yg diharapkan
3. Jika solusi ditemukan, keluar, Jika tidak, ulangi kembali langkah yg pertama.

Contoh :
Traveling Salesman Problem (TSP)
Seorang sales 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. Misalkan ada 4 kota
dgn jarak antara tiap-tiap kota seperti terlihat pd gambar berikut :
8

A
7

B
4

Penyelesaian :
Dgn menggunakan Generate & Test dilakukan dgn membangkitkan
solusi-solusi yg mungkin dgn menyusun kota-kota dlm urutan abjad,
Yakni :
ABCD
ABDC
ACBD
ACD-B

Gambar : Metode Generate And Test

Tabel : Alur Pencarian dengan Generate & Test Pada TSP

B. Pendakian Bukit (Hill Climbing)


Metode ini hampir sama dengan Generate and Test, hanya proses ini
menggunakan fungsi Heuristik. Pembangkitan keadaan berikutnya
tergantung pada Feedback dari prosedur pengetesan.hasil tes ini
menunjukkan seberapa baiknya nilai terkaan yg diambil terhadap
keadaan-keadaan lainnya yg mungkin.

Keenam kombinasi ini akan kita pakai semuanya sebagai


operator yaitu :

Tukar
Tukar
Tukar
Tukar
Tukar
Tukar

1,2
2,3
3,4
4,1
2,4
1,3

Menukar
Menukar
Menukar
Menukar
Menukar
Menukar

urutan
urutan
urutan
urutan
urutan
urutan

posisi kota
posisi kota
posisi kota
posisi kota
posisi kota
posisi kota

ke
ke
ke
ke
ke
ke

1
2
3
4
2
1

dgn
dgn
dgn
dgn
dgn
dgn

kota
kota
kota
kota
kota
kota

ke
ke
ke
ke
ke
ke

2
3
4
1
4
3

Pada keadaan awal lintasan terpilih adalah ABCD(=19). Padaq level pertama
Hill Climbing akan mengunjungi BADC(=17) yg memiliki nilai heuristi <
dibanding dgn ABCD. Kemudian tukar (17<19), sehingga BACD menjadi pilihan
selanjutnya dgn operatoar terpakai 1,2.
Pd. Level kedua Hill Climbing akan mengunjungi ABCD. Karena operator
tukar 1,2 sudah digunakan oleh BACD, maka dipilh node yg lain yaitu BCAD
(=15). Karena nilai heuristik BCAD lebih kecil dibandingkan dgn BACD
(15<17), maka node BCAD akan menjadi pilihan selanjutnya dgn operator
tukar 2,3Kemudian Hill Climbing akan mengunjungi CBAD(=20), karena nilai
heuristik CBAD lebih besar jika dibanding dgn BCAD (20>17), maka dipilih
node lain. Pencarian menuju ke node BCDA(=18). Nilai inipun masih lebih
besar dari nilai heuristik BCAD (=18).

gorithma :
Tempatkan node awal A pada antria OPEN
Kerjakan langkah-langkah berikut hhingga tujuan ditemukan atau antrian
open sudah kosong
a. Ambil node terbaik dari open
b. Bangkitkan semua succsesornya
c. Untuk tiap-tiap succsesor dikerjakan:
i. Jika node tersebut belum pernah dibangkitkan sebelumnya, evaluasi
node tersebut dan masukkan ke dalam OPEN
ii.Jika node tersebut sudah pernah dibangkitkan sebelumnya, ubah
parent jika lintasan baru lebih menjajikan. Hapus node tersebut dari
antrian OPEN

Gambar berikut ini menunjukan metoda Pencarian terbaik pertama. Diasumsi


kan bahwa node dgn nilai yg lebih besar, memiliki nilai evaluasi yg lebih baik.
Pd. Saat keadaan awal, antrian berisi A. Pengujian dilakukan pd level pertama,
Node D memiliki nilai terbaik, sehingga menempati antrian pertama, disusul
dgn C dan B. Node D memiliki cabang E dan F yg masing-masing bernilai 2 dan
4. Dgn demikian C merupakan pilihan terbaik dgn menempati antrian pertama.

[A]

Antrian Open

A
B

[ D, C, B ]

A
B

[C, F, B, E ]

D
E

A
[G, F, B, E , H]
B
3

C
G

D
H

Algorithma A*
Algorithma A* merupakan perbaikan dari metoda BFS dgn
memodifikasi fungsi heuristiknya.
A* akan meminimumkan total biaya lintasan. Pd kondisi yg
Tepat A* akan memberikan solusi yg terbaik dlm waktu yg
Optimal.Fungsi F sebagai estimasi fungsi evaluasi terhdp
node n, dapat dituliskan :
f (n)=g(n)+h(n)
Dengan :
f(n) = fungsi evaluasi
G(n) = biaya yg sudah dikeluarkan dari keadaan awal sam
-pai keadaan n.
h(n) = estimasi biaya untuk sampai pd suatu tujuan mulai
dari n.
Dengan demikian dapat dikatakan bahwa :
Apabila h = h, berarti proses pelacakan sudah sampai pd
suatu tujuan
Apabila g = h = 0, maka f random, artinya sistem tidak

Apabila g = k (konstanta biasanya 1) dan h = 0 berarti sisem menggunakan BFS.

gorithma A
Set ; OPEN={S}, dan CLOSED={}, dgn S adalah node yg di
pilih sbg keadaan awal.
Kerjakan jika OPEN belum kosong:
a. cari node n dari OPEN dimana nilai f(n) minimal. Kemudian tempatkan n pd CLOSED.
b. Jika n adalah node tujuan, keluar. SUKSES.
c. Ekspan node n ke anak-anaknya
d. Kerjakan untuk setiap anak n, yakni n :
i. Jika n belum ada di OPEN atau CLOSE maka :
1. Masukkan n ke OPEN. Kemudian set backpointer
dari n ke n
2. Hitung
a. h(n);
b. g(n) = g(n) + c(n,n); dgn c(n,n adl biaya

C. f(n) = g(n) + h(n);


Algorithma A* sebenarnya merupakan pengembangan dari
algorithma A, dgn batasan bahwa h(n)< h*(n), dgn :
h(n) = biaya yg sebenarnya dari biaya minimal lintasan
dari n ke sembarang tujuan.
g(n) = biaya yg sebenarnya dari biaya minimal lintasan
dari S ke n.
f(n) = h(n) + g(n); adalah biaya yg sebenarnya dari
biaya minimum solusi lintasan S ke sembarang
tujuan yg melalui n
Nilai h dpt diterima jika h(n) < h(n). Pencarian dgn
algorithma A* ini akan lebih sempurna jika faktor
pencabangannya terbatas, dan untuk setiap operator
memiliki biaya yg bernilai positif (total jumlah node dgn

Apabila kita menggunakan fungsi evaluasi : f(n)=h(n),


maka solusi yd didapat adalah lintasan terpendek M-C-H-T
dgn biaya terbesar 7. Alur penelusuran dapat dilihat pd
tabel berikut :

Node
Ekspansi

M
C
H
T

Antrian OPEN

{M(0)}
{ C (2), A (3), B (4) }
{ H (2), A (3), B(4), I ()}
{T(0), A (3), B (4), I ( ),
L ( )}
{A (3), B (4), I (), L ()}

Apabila masalah ini akan diselesaikan dgn menggunakan


algorithma A*, dgn fungsi evaluasi f(n) = g(n) +h(n), maka
solusi yg didapat adalah lintasan terpendek M-C-H-T dgn
biaya sebesar 7. Alur penelusuran dapat dilihat pd tabel
berikut :

Node
Ekspansi

M
C
H
T

Antrian OPEN

{M(0)}
{ C (6), B (7), C (8) }
{ H (7), B (7), C (8), I ()}
{T(7), B (7), C (8), I ( ), L
( )}
{B (7), C (8), I (), L ()}