heuristic serach in artifical intelegent

Upload: iqbal-cahyo-gumilar

Post on 20-Feb-2018

227 views

Category:

Documents


0 download

TRANSCRIPT

  • 7/24/2019 Heuristic serach in artifical intelegent

    1/60

    HEURISTIC

    SEARCH

    UTHIE

  • 7/24/2019 Heuristic serach in artifical intelegent

    2/60

    Pendahuluan Pencarian buta biasanya tidak efisien karena waktu akses

    memori yang dibutuhkan cukup besar.

    Untuk mengatasi hal ini maka perlu ditambahkan suatuinformasi pada domain yang bersangkutan sehingga prosespencarian yang baru akan dihasilkan.

    Pencarian seperti ini disebut sebagai informed search ataupencarian heuristic atau pencarian terbimbing, yaitu pencarianberdasarkan panduan.

    (Dalam sutojo dkk) teknik pencarian heuristic merupakansuatu strategi untuk melakukan proses pencarian secaraselektif dan dapat memandu proses pencarian yang memilikikemungkinan sukses paling besar, namun dengan kemungkinanmengorbankan kelengkapan (completeness)

    UTHIE

  • 7/24/2019 Heuristic serach in artifical intelegent

    3/60

    Pendakian Bukit

    (Hill Climbing)

    Ada 2 macam yaitu :

    1. Simple hill climbing

    2. Stepest ascent hill climbing

    UTHIE

  • 7/24/2019 Heuristic serach in artifical intelegent

    4/60

    Langkah pencarian (Rich, Elaine and knight, kevin, 1991, ArtificialIntelligent, Mc Graw Hill, Inc, second edition) :1. Mulai dari keadaan awal, lakukan pengujian : jika merupakan

    tujuan, maka berhenti dan jika tidak, lanjutkan dengankeadaan sekarang sebagai keadaan awal

    2. Kerjakan langkah-langkah berikut sampai solusinyaditemukan atau sampai tidak ada operator baru yang akandiaplikasikan pada keadaan sekarang

    3. Cari operator yang belum pernah digunakan ; gunakanoperator ini untuk mendapatkan keadaan yang baru

    4. Evaluasi keadaan baru tersebut

    a. Jika keadaan baru merupakan tujuan, keluarb. Jika bukan tujuan, namun nilainya lebih baik daripadakeadaan sekarang, maka jadikan keadaan baru tersebutmenjadi keadaan sekarang

    c. Jika keadaan baru tidak lebih baik daripada keadaansekarang, maka lanjutkan iterasi

    UTHIE

  • 7/24/2019 Heuristic serach in artifical intelegent

    5/60

    Kasus 1. Implementasikan algoritma Simple

    Hill Climbing pada puzzle berikut ini :

    Keadaan awal

    Goal

    Ruang keadaan

    UTHIE

  • 7/24/2019 Heuristic serach in artifical intelegent

    6/60

    Ruang keadaan :

    Misalkan : x = baris = [1,2,3]

    y = kolom = [1,2,3]

    Jadi dalam hal ini ruang keadaan = semuakemungkinan posisi kotak pada puzzle 8

    Contoh : posisi kotak 7 pada keadaan awal adalah(3,1)

    UTHIE

  • 7/24/2019 Heuristic serach in artifical intelegent

    7/60

    Aturan/operator :

    Posisi kotak kosong (x,y)

    x = baris kotak kososng

    y = kolom kotak kosong

    Aturan :

    1. Gerakkan kotak kosong ke atas : if x > 1 then (x-1,y)

    2. Gerakkan kotak kosong ke bawah : if x < 3 then (x+1,y)

    3. Gerakkan kotak kosong ke kanan : if y < 3 then (x,y+1)

    4. Gerakkan kotak kososng ke kiri : if y > 1 then (x, y-1)

    UTHIE

  • 7/24/2019 Heuristic serach in artifical intelegent

    8/60

    Fungsi heuristik

    Fungsi heuristik yang digunakan adalah jumlah kotakyang menempati posisi benar. Kriteria yang dipakaiadalah jumlah benar yang paling besar yang dipilih

    UTHIE

  • 7/24/2019 Heuristic serach in artifical intelegent

    9/60

    Iterasi ke-1 Cek keadaan awal goal maka keadaan sekarang = keadaan awal

    kena operator 1 menjadi

    Karena posisi benar keadaan sekarang > posisi benar keadaanselanjutnya, maka : keadaan sekarang = tetap

    UTHIE

  • 7/24/2019 Heuristic serach in artifical intelegent

    10/60

    Cek keadaan sekarang goal

    Lanjut ke operator berikutnya :

    kena operator ke-2 menjadi

    karena posisi benar keadaan sekarang > posisi benar keadaan selanjutnya,maka : keadaan sekarang = tetap

    cek keadaan sekarang goal

    UTHIE

  • 7/24/2019 Heuristic serach in artifical intelegent

    11/60

    Lanjut ke operator berikutnya :

    kena operator ke-3 menjadi

    karena posisi benar keadaan sekarang < posisi benar keadaan selanjutnya,maka : keadaan sekarang = keadaan selanjutnya.

    cek keadaan sekarang goal

    UTHIE

  • 7/24/2019 Heuristic serach in artifical intelegent

    12/60

    Lanjut ke operator selanjutnya.

    kena operator ke-4 menjadi

    karena posisi benar keadaan sekarang > posisi benar keadaan selanjutnya,maka keadaan sekarang = tetap

    UTHIE

  • 7/24/2019 Heuristic serach in artifical intelegent

    13/60

    Iterasi ke-2

    cek keadaan awal goal dimana keadaan sekarang = keadaan awal

    kena operator ke-1 menjadi

    karena posisi benar keadaan sekarang > posisi benar keadaan selanjutnya,maka : keadaan sekarang = tetap

    UTHIE

  • 7/24/2019 Heuristic serach in artifical intelegent

    14/60

    Cek keadaan sekarang goal

    lanjutkan ke operator berikutnya

    kena operator ke 2 menjadi

    karena posisi benar keadaan sekarang > posisi benar keadaan selanjutnya,maka keadaan sekarang = tetap

    UTHIE

  • 7/24/2019 Heuristic serach in artifical intelegent

    15/60

    Cek keadaan sekarang goal

    lanjutkan ke operator selanjutnya

    kena operator ke-3 menjadi

    karena posisi benar keadaan sekarang < posisi benar keadaan selanjutnyamaka : keadaan sekarang = keadaan selanjutnya

    UTHIE

  • 7/24/2019 Heuristic serach in artifical intelegent

    16/60

    Cek keadaan sekarang goal

    lanjutkan ke operator berikutnya

    kena operator ke 4

    karena posisi benar keadaan sekarang > posisi benar keadaan selanjutnya,maka : keadaan sekarang = tetap

    UTHIE

  • 7/24/2019 Heuristic serach in artifical intelegent

    17/60

    Iterasi ke-3

    Cek keadaan awal goal

    keadaan sekarang = keadaan awal

    kena operator ke-1 menjadi

    karena posisi benar keadaan sekarang > posisi benar keadaan selanjutnya,

    maka : keadaan sekarang = tetap

    UTHIE

  • 7/24/2019 Heuristic serach in artifical intelegent

    18/60

    Cek keadaan sekarang goal

    lanjutkan ke operator berikutnya

    kena operator ke -2 menjadi

    karena posisi benar keadaan sekarang < posisi benar keadaan selanjutnya,maka : keadaan sekarang = keadaan selanjutnya

    UTHIE

  • 7/24/2019 Heuristic serach in artifical intelegent

    19/60

    Cek keadaan sekarang = goal, hentikan pencarian

    solusi

    UTHIE

  • 7/24/2019 Heuristic serach in artifical intelegent

    20/60

    Kasus 2. Implementasikan algoritma Stepest

    ascent hill climbing pada puzzle berikut ini :

    Algoritmanya :

    1. Mulai dari keadaan awal, lakukan pengujian : jika merupakan tujuan, makaberhenti; dan jika tidak, lanjutkan keadaan sekarang sebagai keadaan awal.

    2. Kerjakan hingga tujuan tercapai atau hingga iterasi tidak memberikanperubahan pada keadaan sekarang.

    a. Tentukan SUCC sebagai nilai heuristik terbaik dari successor-successor

    b. Kerjakan untuk tiap operator yang digunakan oleh keadaan sekarang:

    Gunakan operator tersebut dan bentuk keadaan baru

    Evaluasi keadaan baru tersebut. Jika merupakan tujuan, keluar. Jika

    bukan bandingkan nilai heuristiknya dengan SUCC. Jika lebih baik,jadikan nilai heuristic keadaan baru tersebut sebagai SUCC.Namun jika tidak lebih baik, nilai SUCC tidak berubah.

    c. Jika SUCC lebih baik daripada nilai heuristik keadaan sekarang, ubahnode SUCC menjadi keadaan sekarang

    UTHIE

  • 7/24/2019 Heuristic serach in artifical intelegent

    21/60

    Pada stepest Hill Climbing, ada 3 maslaah yang mungkinyaitu :

    1. Local optimum : keadaan semua tetangga lebih burukatau sama dengan keadaan dirinya.

    2. Plateau : keadaan semua tetangga sama dengan keadaandirinya

    3. Ridge : local optimum yang lebih disebabkan karenaketidakmampuan untuk menggunakan 2 operator

    sekaligus.

    UTHIE

  • 7/24/2019 Heuristic serach in artifical intelegent

    22/60

    Implementasikan puzzle di bawah ini menggunakanalgoritma stepest ascent hill climbing

    Keadaan awal

    Goal

    UTHIE

  • 7/24/2019 Heuristic serach in artifical intelegent

    23/60

    Ruang keadaan :

    Misalkan : x = baris = [1,2,3] y = kolom = [1,2,3]

    Jadi dalam hal ini ruang keadaan = semua kemungkinanposisi kotak pada puzzle 8

    Contoh : posisi kotak 7 pada keadaan awal adalah (3,1)

    UTHIE

  • 7/24/2019 Heuristic serach in artifical intelegent

    24/60

    Aturan/operator :

    Posisi kotak kosong (x,y)

    x = baris kotak kososng

    y = kolom kotak kosong

    Aturan :

    1. Gerakkan kotak kosong ke atas : if x > 1 then (x-1,y)

    2. Gerakkan kotak kosong ke bawah : if x < 3 then (x+1,y)3. Gerakkan kotak kosong ke kanan : if y < 3 then (x,y+1)

    4. Gerakkan kotak kososng ke kiri : if y > 1 then (x, y-1)

    UTHIE

  • 7/24/2019 Heuristic serach in artifical intelegent

    25/60

    Fungsi heuristik

    Fungsi heuristik yang digunakan adalah jumlah kotak yangmenempati posisi benar. Kriteria yang dipakai adalahjumlah benar yang paling besar yang dipilih

    UTHIE

  • 7/24/2019 Heuristic serach in artifical intelegent

    26/60

    Iterasi ke 1

    Cek keadaan awal , ternyata keadaan awal goal

    Keadaan sekarang = keadaan awal

    Keadaan sekarang dikenakan 4 operator sekaligus menjadi:

    UTHIE

  • 7/24/2019 Heuristic serach in artifical intelegent

    27/60

    Pilih posisi yang terbesar yaitu : 6, sehingga keadaansekarang menjadi :

    UTHIE

  • 7/24/2019 Heuristic serach in artifical intelegent

    28/60

    Iterasi ke-2

    Cek keadaan awal goal

    Keadaan sekarang = keadaan awal

    Keadaan sekarang dikenakan 4 operator sekaligus, menjadi :

    UTHIE

  • 7/24/2019 Heuristic serach in artifical intelegent

    29/60

    Pilih posisi yang terbesar, yaitu 8, sehingga keadaansekarang menjadi :

    UTHIE

  • 7/24/2019 Heuristic serach in artifical intelegent

    30/60

    Iterasi ke-3

    Cek keadaan awal, ternyata keadaan awal goal.

    Keadaan sekarang = keadaan awal

    Keadaan sekarang dikenakan 4 operator sekaligus menjadi:

    UTHIE

  • 7/24/2019 Heuristic serach in artifical intelegent

    31/60

    Pilih posisi yang terbesar yaitu 8, sehingga keadaansekarang menjadi :

    UTHIE

  • 7/24/2019 Heuristic serach in artifical intelegent

    32/60

    Iterasi ke-4

    Cek apakah keadaan awal = goal, ternyata iya, makahentikan proses pencarian.

    Solusi :

    UTHIE

  • 7/24/2019 Heuristic serach in artifical intelegent

    33/60

    Kasus ke. 3 Menggunakan Metode

    Best first search

    Metode best first search merupakan kombinasi darimetode depth first search dan metode breadth firstsearch yang mana pencarian diperbolehkan mengunjunginode yang ada di level yang lebih rendah asalkan node ini

    memiliki nilai heuristik yang lebih baik.

    UTHIE

  • 7/24/2019 Heuristic serach in artifical intelegent

    34/60

    Algoritma dari best first search :

    1. Buat sebush stack, inisialisasi node akar sebagai nodepertama.

    2. Bila node pertama goal, node dihapus dan diganti

    dengan anak-anaknya.3. Selanjutnya, keseluruhan node yang ada di stack di sort

    ascending berdasarkan fungsi heuristik yang digunakan

    4. Bila node pertama goal, ualangi poin (2)

    5. Bila node pertama = goal, cari solusi dengan caramenelusuri jalur dari goal ke node akar.

    6. selesai

    UTHIE

  • 7/24/2019 Heuristic serach in artifical intelegent

    35/60

    Contoh gambar di bawah ini, menjelaskan tentangpencarian rute terpendek menggunakan algoritma bestfirst search. A adalah keadaan awalnya dan Z adalahtujuannya. Fungsi heuristik yang digunakan adalah node-

    node yang mempunyai jarak terpendek.

    UTHIE

  • 7/24/2019 Heuristic serach in artifical intelegent

    36/60

    Iterasi ke - 1

    Masukkan node A ke dalam stack

    Keluarkan A dari stack dan lakukan pengecekan

    Ternyata A goal A punya anak C(5) dan B(4), masukkan ke stack dan stack

    di SORT ASCENDING

    UTHIE

  • 7/24/2019 Heuristic serach in artifical intelegent

    37/60

  • 7/24/2019 Heuristic serach in artifical intelegent

    38/60

    Iterasi ke-2

    Keluarkan B dari stack dan cek

    Ternyata B goal

    B punya anak D(3), masukkan ke stack dan stack di sortascending.

    UTHIE

  • 7/24/2019 Heuristic serach in artifical intelegent

    39/60

    Representasi keadaan :

    UTHIE

  • 7/24/2019 Heuristic serach in artifical intelegent

    40/60

    Iterasi ke-3

    Keluarkan D dari stack dan cek

    Ternyata D goal

    D punya anak E(4), lalu masukkan ke stack dan lakukansort ascending

    UTHIE

  • 7/24/2019 Heuristic serach in artifical intelegent

    41/60

    Representasi keadaan :

    UTHIE

  • 7/24/2019 Heuristic serach in artifical intelegent

    42/60

  • 7/24/2019 Heuristic serach in artifical intelegent

    43/60

    Representasi keadaan :

    UTHIE

  • 7/24/2019 Heuristic serach in artifical intelegent

    44/60

    Iterasi ke-5

    Keluarkan C dari stack dan cek

    Ternyata C Goal

    C punya anak E(3) dan F(2), masukkan F(2) ke stack danlakukan sort ascending

    UTHIE

  • 7/24/2019 Heuristic serach in artifical intelegent

    45/60

    Representasi keadaan

    UTHIE

  • 7/24/2019 Heuristic serach in artifical intelegent

    46/60

    Iterasi ke-6

    Keluarkan F dari stack dan cek

    Ternyata F Goal

    F punya anak I(4), lalu masukkan ke stack dan lakukan sortascending

    UTHIE

  • 7/24/2019 Heuristic serach in artifical intelegent

    47/60

    Representasi keadaan

    UTHIE

  • 7/24/2019 Heuristic serach in artifical intelegent

    48/60

    Iterasi ke-7

    Keluarkan E dari stack dan cek, apakah E goal atau bukan

    Ternyata E Goal

    E punya anak G(6), dan sudah ada di stack, jadi tidakdimasukkan ke dalam stack

    UTHIE

  • 7/24/2019 Heuristic serach in artifical intelegent

    49/60

    Representasi ruang keadaan

    UTHIE

  • 7/24/2019 Heuristic serach in artifical intelegent

    50/60

    Iterasi ke-8

    Keluarkan I dari stack dan lakukan pengecekan

    Ternyata I Goal

    Karena I tidak punya anak, maka gunakan node I untukmenghapus orang tuanya direpresentasi keadaan.

    UTHIE

  • 7/24/2019 Heuristic serach in artifical intelegent

    51/60

    Representasi keadaan

    UTHIE

  • 7/24/2019 Heuristic serach in artifical intelegent

    52/60

    Iterasi ke-9

    Keluarkan G dari stack dan lakukan pengecekan

    Ternyata G Goal

    G punya anak H(2), J(4), Z(7), F(8). Masukkan semua anakke dalam stack dan lakukan sort ascending.

    UTHIE

  • 7/24/2019 Heuristic serach in artifical intelegent

    53/60

    Representasi keadaan

    UTHIE

  • 7/24/2019 Heuristic serach in artifical intelegent

    54/60

    Iterasi ke 10

    Keluarkan H dari stack dan lakukan pengecekan

    Ternyata H Goal

    H punya anak Z(6), masukkan ke dalam stack dan lakukansort ascending

    UTHIE

  • 7/24/2019 Heuristic serach in artifical intelegent

    55/60

    Representasi keadaan

    UTHIE

  • 7/24/2019 Heuristic serach in artifical intelegent

    56/60

    Iterasi ke 11

    Keluarkan J dari stack dan lakukan pengecekan

    Ternyata J Goal

    J punya anak K(1), masukkan ke stack dan lakukan sortascending

    UTHIE

  • 7/24/2019 Heuristic serach in artifical intelegent

    57/60

    Representasi ruang keadaan

    UTHIE

  • 7/24/2019 Heuristic serach in artifical intelegent

    58/60

    Iterasi ke 12

    Keluarkan K dari stack dan lakukan pengecekan

    Ternyata K Goal

    Karena K tidak punya anak, gunakan untuk menghapusorang tuanya di representasi keadaan

    UTHIE

  • 7/24/2019 Heuristic serach in artifical intelegent

    59/60

    Representasi keadaan

    UTHIE

  • 7/24/2019 Heuristic serach in artifical intelegent

    60/60

    Iterasi ke 13

    Keluarkan Z dari stack dan lakukan pengecekan

    Ternyata Z = Goal, maka hentikan pencarian

    UTHIE