(PENCARIAN)
By. Rita Wiryasaputra, ST., M.Cs.
TUGAS
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
If
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.
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)
Galon
Galon
Gelas A
Gelas B
Pompa air
berisi Air tak
terbatas
(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.
ATURAN LANJUTAN
5.
6.
7.
8.
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:
(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)
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
Aturan Ke
Aturan
Kambing menyeberang
Sayuran menyeberang
Serigala menyeberang
Kambing kembali
Sayuran kembali
Serigala kembali
Boat kembali
Daerah Asal
Daerah Seberang
(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)
Graph keadaan
Pohon pelacakan
Pohon AND/OR
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
M-D-I-J
(0, 3)
(4, 0
(4, 3)
(0, 0)
(1, 3)
(4, 3)
(0, 0)
(3, 0)
A or B
B
A and B and C
ohon AND/OR
Tujuan yg dicapai sampai dgn level 6 pd struktur pohon, Dengan menggunakan
pohon AND/OR, maka bisa dipersingkat sampai level 2.
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 .
d-1
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.
Keadaan Awal
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
2
8
3
4
5
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
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
3
4
5
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
3
4
5
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
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
[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
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
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 ()}
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 ()}