Anda di halaman 1dari 14

1

MODUL PERKULIAHAN

W152100012 -
Penghantar
Kecerdasan
Buatan
Heuristic Search

Abstrak Sub-CPMK 2

Heuristik adalah sebuah teknik Sub-CPMK 2.5


yang mengembangkan efisiensi Mampu mendefinisikan teori Heuristic
dalam proses pencarian Search dalam Kecerdasan Buatan
Pendahuluan
Keberhasilan suatu sistem salah satunya ditentukan oleh kesuksesan dalam
pencarian dan pencocokan. Pencarian adalah proses mencari solusi dari suatu
permasalahanmelalui sekumpulan kemungkinan ruang keadaan (state space).
Ada beberapa aplikasi yang menggunakan teknik pencarian, yaitu:
1. Papan game dan puzzle (tic tac-toe, catur, menara hanoi).
2. Penjadwalan dan masalah routing (travelling salesman problem).
3. Parsing bahasa dan interpretasinya (pencarian struktur dan arti).
4. Logika pemrograman (pencarian fakta dan implikasinya).
5. Computer vision dan pengenalan pola.
6. Sistem pakar berbasis kaidah (rule based expert system).

Pencarian atau pelacakan merupakan salah satu teknik untuk menyelesaikan


permasalahan AI. Teknik pencarian terbagi atas dua teknik, yaitu pencarian buta
(blind search) dan pencarian heuristik (heuristic search).

Heuristic Search
Kata heuristic berasal dari sebuah kata kerja bahasa Yunani, heuriskein,
yang berarti mencari atau menemukan (Kusumadewi, 2007). Pencarian heuristik
merupakan pencarian yang penelusurannya dimulai dengan adanya informasi
awal yang digunakan dalam proses pencarian. Pencarian terbimbing (heuristic
search) dibutuhkan karena pencarian buta (blind search) tidak selalu dapat
diterapkan dengan baik, hal ini dikarenakan waktu aksesnya yang cukup lama
serta besarnya memori yang diperlukan. Kelemahan ini dapat diatasi jika ada
informasi tambahan (fungsi heuristik) dari domain yang bersangkutan. Dalam
pencarian ruang keadaan, heuristik dinyatakan sebagai aturan untuk melakukan
pemilihan cabang- cabang dalam ruang keadaan yang paling tepat agar tercapai
solusi permasalahan yang bisa diterima. Untuk masalah dengan ruang masalah
yang besar, teknik pencarian buta bukan metode yang baik karena keterbatasan
kecepatan computer dan memori.
Pada pencarian heuristik, sebuah fungsi heuristik digunakan untuk mengevaluasi
keadaan permasalahan tersendiri dan menentukan bagaimana fungsi ini
diperlukan dalam memecahkan suatu permasalahan. Sebuah fungsi heuristik
adalah sebuah fungsi yang memetakan keadaan permasalahan, yang

2021 Penghantar Kecerdasan Buatan


2 Muhaimin Hasanudin, S.T., M.Kom
Biro Bahan Ajar E-learning dan MKCU
http://pbael.mercubuana.ac.id/
menjelaskan daya tarik dan digambarkan dalam sebuah angka (Pearl, 1984).
Tujuan dari sebuah fungsi heuristik adalah untuk memandu proses pencarian
tujuan yang menguntungkan dengan menganjurkan jalur mana yang harus
diikutipertama kali ketika tersedia lebih dari satu tujuan. Game playing dan
pemecahan teorema (theorem solving) adalah dua aplikasi paling tua dari AI,
kedua-duanya memerlukan heuristik untuk memangkas ruang dari solusi yang
mungkin.
Beberapa heuristik lebih baik dari pada heuristik lainnya, dan semakin baik suatu
heuristik, maka semakin sedikit node yang diperlukan untuk diperiksa dalam
pohon pencarian untuk menemukan solusi. Oleh karena itu, seperti memilih
representasi yang tepat, memilih heuristik yang tepat dapat membuat perbedaan
yang signifikan dalam membantu kita untuk memecahkan masalah (Coppin,
2004).
Heuristik adalah sebuah teknik yang mengembangkan efisiensi dalam proses
pencarian, namum dengan kemungkin dan mengorbankan kelengkapan
(completeness). Fungsi heuristik digunakan untuk mengevaluasi keadaan
keadaan problema individual dan menentukan seberapa jauh hal tersebut dapat
digunakan untuk mendapatkan solusi yang diinginkan. Jenis-jenis Heuristic
Searching:
1. Generate and Test.
2. Hill Climbing.
3. Best First Search.
4. Alpha Beta Prunning, Means – End - Anlysis, Constraint Satisfaction, Simulated
Anealing, dll

Metode ini merupakan penggabungan antara depth-first search dengan


pelacakan mundur (backtracking), yaitu bergerak kebelakang menuju pada suatu
keadaan awal.
Metode heuristic search diharapkan bisa menyelesaikan permasalahan
yang besar. Metode heuristic search menggunakan suatu fungsi yang
menghitung biaya perkiraan (estimasi) dari suatu simpul tertentu menuju ke
simpul tujuan disebut fungsi heuristic. Contoh aplikasi yang menggunakan fungsi
heuristic : Google, Deep blue chess Machine

Algoritma:
1. Bangkitkan suatu kemungkinan solusi (membangkitkan suatu titik tertentu atau

2021 Penghantar Kecerdasan Buatan


3 Muhaimin Hasanudin, S.T., M.Kom
Biro Bahan Ajar E-learning dan MKCU
http://pbael.mercubuana.ac.id/
lintasan tertentu dari keadaan awal).
2. Uji untuk melihat apakah node tersebut benar-benar merupakan solusinya
dengan cara membandingkan node terebut atau node akhir dari suatu lintasan
yang dipilih dengankumpulan tujuan yang diharapkan.
3. Jika solusi ditemukan, keluar. Jika tidak, ulangi kembali langkah pertama.

Contoh Kasus #1: Puzzle (8 Kotak)


Ada 4 operator yang dapat digunakan untuk menggerakkan dari satu keadaan ke
keadaan yang baru.
1. Kotak kosong digeser ke kiri
2. Kotak kosong digeser ke kanan
3. Kotak kosong digeser ke bawah
4. Kotak kosong digeser ke atas

Penyelesaian :

2021 Penghantar Kecerdasan Buatan


4 Muhaimin Hasanudin, S.T., M.Kom
Biro Bahan Ajar E-learning dan MKCU
http://pbael.mercubuana.ac.id/
Metode Simple Hill Climbing
Metode Hill Climbing adalah salah satu metode yang digunakan dalam
menyelesaikan permasalahan pencarian jarak terdekat (Rich et al.,1991 dalam
Russel dan Norvig, 2003). Cara kerjanya adalah menentukan langkah berikutnya
dengan menempatkan node yang akan muncul sedekat mungkin dengan sasarannya.
Proses Pengujian dilakukan dengan menggunakan fungsi heuristik. Pembangkitan
keadaan berikutnya sangat tergantung pada feedback dari prosedur pengetesan. Tes
yang berupa fungsi heuristik ini akan menunjukkan seberapa baiknya nilai terkaan
yang diambil terhadap keadaan keadaan lainnya yang mungkin (Kusumadewi, 2003)
Hill climbing adalah teknik optimasi untuk menemukan pemecahan masalah
dari data input dengan menggunakan algoritma. Tahapan terbaik yang di gunakan
dalam pemecahan permasalahan adalah properti yang penjelasan state itu sendiri
berisi semua informasi yang diperlukan untuk solusi (Russell dan Norvig, 2003).
Algoritma berisi memori yang efisien karena tidak mempertahankan pohon
pencaharian namun hanya dapat terlihat pada kondisi saat ini, dan state yg akan
datang.

2021 Penghantar Kecerdasan Buatan


5 Muhaimin Hasanudin, S.T., M.Kom
Biro Bahan Ajar E-learning dan MKCU
http://pbael.mercubuana.ac.id/
Terdapat dua jenis Hill Climbing yang sedikit berbeda, yakni Simple Hill
Climbing (Hill Climbing sederhana) dan Steepest-Ascent Hill Climbing (Hill Climbing
dengan memilih kemiringan yang paling tajam/curam). Simple hill climbing, awalnya
next state akan ditentukan dengan membandingkan current state dengan satu
successor. Proses pembandingan ini dimulai dari sebelah kiri. Apabila ditemukan
penerus baru yang lebih baik dari kondisi saat itu current state maka penerusnya
tersebut akan menjadi next state. Sedangkan pada steepest ascent hill climbing
dalam menentukan next state, current state langsung dibandingkan dengan semua
successor yang ada di dekatnya, sehingga next state yang diperoleh merupakan
successor yang paling baik serta mendekati hasil optimasi yang diharapkan. Selain
itu simple hill climbing urutan penggunaan operator sangat berpengaruh terhadap
solusi, sedangkan pada steepest ascent hill climbing urutan penggunaan operator
tidak berpengaruh terhadap solusi. Dari segi kelebihan simple hill climbing efisiensi
dari segi memori sedangkan steepest ascent hill climbing memerlukan memori yang
banyak dalam penyimpanannya.

Algoritma simple hill climbing


Adapun algoritma simple hill climbing adalah sebagai berikut :
1) Evaluasi state awal, jika state awal sama dengan tujuan, maka proses berhenti.
Jika tidak sama dengan tujuan maka lanjutkan proses dengan membuat state
awal sebagai state sekarang.
2) Mengerjakan langkah berikut sampai solusi ditemukan atau sampai tidak ada lagi
operator baru yang dapat digunakan dalam state sekarang:
a. Mencari sebuah operator yang belum pernah digunakan dalam state
sekarang dan gunakan operator tersebut untuk membentuk state baru.
b. Evaluasi state baru.
- Jika state baru adalah tujuan, maka proses berhenti.
- Jika state baru tersebut bukan tujuan tetapi state baru lebih baik
daripada state sekarang, maka buat state baru menjadi state sekarang.
- Jika state baru tidak lebih baik daripada state sekarang, maka lanjutkan
ke langkah 2.

Contoh Kasus #2: Travelling Salesman Problem (TSP)


Travelling Salesman Problem (TSP) Seorang salesman ingin mengunjungi n kota.
Jarak antara tiap-tiap kota sudah diketahui. Kita ingin mengetahui ruter terpendek
dimana setiap kota hanya boleh dikunjungi tepat 1 kali.

2021 Penghantar Kecerdasan Buatan


6 Muhaimin Hasanudin, S.T., M.Kom
Biro Bahan Ajar E-learning dan MKCU
http://pbael.mercubuana.ac.id/
Solusi
Solusi–solusi yang mungkin dengan menyusun kata-kata dalam urutan abjad, misal :
• A – B – C – D : dengan panjang lintasan (=19)
• A – B – D – C : (-18)
• A – C – B – D : (-12)
• A – C – D – B : (-13)
• … Dst

Ruang keadaan berisi semua kemungkinan lintasan yang mungkin. Operator


digunakan untuk menukar posisi kota-kota yang bersebelahan. Fungsi heuristik yang
digunakan adalah panjang lintasan yang terjadi. Operator yang akan digunakan
adalah menukar urutan posisi 2 kota dalam 1 lintasan. Bila ada n kota, dan ingin
mencari kombinasi lintasan dengan menukar posisi urutan 2 kota, maka akan didapat
sebanyak :
n! 4!
= =6 Kombinasi
2! ( n−2 ) ! 2! ( 4−2 ) !
Aturan

Keenam kombinasi ini akan dipakai semuanya sebagai operator, yaitu :

1. Tukar 1,2 = menukar urutan posisi kota ke -1 dengan kota ke -2


2. Tukar 2,3 = menukar urutan posisi kota ke -2 dengan kota ke -3
3. Tukar 3,4 = menukar urutan posisi kota ke -3 dengan kota ke -4
4. Tukar 4,1 = menukar urutan posisi kota ke -4 dengan kota ke -1
5. Tukar 2,4 = menukar urutan posisi kota ke -2 dengan kota ke -4
6. Tukar 1,3 = menukar urutan posisi kota ke -1 dengan kota ke -3

Dengan fungsi heuristik yang digunakan maka panjang lintasan yang di peroleh
tertera dalam Gambar 1.

2021 Penghantar Kecerdasan Buatan


7 Muhaimin Hasanudin, S.T., M.Kom
Biro Bahan Ajar E-learning dan MKCU
http://pbael.mercubuana.ac.id/
Gambar 1. Panjang lintasan

Tahapan metode simple hill climbing 6 operator ditunjukkan dalam Gambar 2.

Gambar 2. Tahapan metode simple hill climbing 6 operator

Keterangan Gambar :

- Keadaan awal, lintasan ABCD (=19).


Level pertama, hill climbing mengunjungi BACD (=17), BACD (=17) < ABCD
(=19),sehingga BACD menjadi pilihan selanjutnya dengan operator Tukar 1,
Level kedua, mengunjungi ABCD, karena operator Tukar 1,2 sudah dipakai
BACD,maka pilih node lain yaitu BCAD (=15), BCAD (-15) < BACD (=17)
- Level ketiga, mengunjungi CBAD (=20), CBAD (=20) > BCAD (=15), maka pilih
nodelain yaitu BCDA (=18), pilih node lain yaitu DCAB (=17), pilih node lain yaitu
BDAC(=14), BDAC (=14) < BCAD (=15)
- Level keempat mengunjungi DBAC (=15), DBAC (=15) > BDAC (=14), maka
pilihnode lain yaitu BADC (=21), pilih node lain yaitu BDCA (=13), BDCA (=13)
<BDAC(=14)

2021 Penghantar Kecerdasan Buatan


8 Muhaimin Hasanudin, S.T., M.Kom
Biro Bahan Ajar E-learning dan MKCU
http://pbael.mercubuana.ac.id/
- Level kelima, mengunjungi DBCA (=12), DBCA (=12) < BDCA (=13)
- Level keenam, mengunjungi BDCA, karena operator Tukar 1, 2 sudah dipakai
DBCA, maka pilih node lain yaitu DCBA, pilih DBAC, pilih ABCD, pilih DACB, pilih
CBDA
- Karena sudah tidak ada node yang memiliki nilai heuristik yang lebih kecil
dibanding nilai heuristik DBCA, maka node DBCA (=12) adalah lintasan
terpendek (SOLUSI)

Algoritma Greedy
Algoritma Greedy merupakan metode yang paling populer untuk memecahkan
persolan optimasi. Terdapat dua jenis perosalan optimasi, yaitu maksimasi dan
minimasi.
Algoritma greedy adalah algoritma yang memcahkan masalah langkah per
langkah dengan pada setiap langkah dilakuan hal berikut :
1) Mengambil pilihan yang terbaik yang dapatdiperoleh pada saat itu tanpa
memperhatikan konsekuiensi ke depan (prinsip “take what you can get now!”)
2) Berharap bahwa dengan memilih optimum lokal pada setiap langkah akan
berakhir dengan optimum global.

Elemen-elemen algoritma Greedy :


a) Himpunan kandidat, C
b) Himpunan solusi, S
c) Fungsi seleksi (selection function)
d) Fungsi kelayakan (feasible)
e) Fungsi obyektif

Dengan kata lain, algoritma Greedy melibatkan himpunan bagian, S, dari


himpunan kandidat, C; yang dalam hal ini S harus memenuhi beberapa kriteria
yang ditentukan, yaitu menyatakan suatu solusi dan S dioptimasi oleh fungsi
obyektif.

Skema umum algoritma Greedy :


function greedy(input C: himpunan_kandidat  himpunan_kandidat
{ Mengembalikan solusi dari persoalan optimasi dengan algoritma greedy
Masukan: himpunan kandidat C
Keluaran: himpunan solusi yang bertipe himpunan_kandidat

2021 Penghantar Kecerdasan Buatan


9 Muhaimin Hasanudin, S.T., M.Kom
Biro Bahan Ajar E-learning dan MKCU
http://pbael.mercubuana.ac.id/
}
Deklarasi
x : kandidat
S : himpunan_kandidat

Algoritma:
S <-- { }   { inisialisasi S dengan kosong }
while (not SOLUSI(S)) and (C ≠ {} ) do
x <-- SELEKSI(C)    { pilih sebuah kandidat dari C}
C <-- C - {x}   { elemen himpunan kandidat berkurang satu } if LAYAK(S <--
{x}) then
S <-- S<-- {x}
endif endwhile
{SOLUSI(S) or C = {} }

if SOLUSI(S) then
return S
else
    write(’tidak ada solusi’)
endif

Namun solusi optimum global yang diperoleh pada algoritma Greedy ini belum
tentu merupakan solusi opetimum (terbaik), tetapi merupakan sub-optimum atau
pseudo - optimum.

Alasan :
1. Algoritma Greedy tidak beroperasi secara menyeluruh terhadap semua
alternatif solusi yang ada (sebagaimana pada metode exhaustive search).
2. Terdapat beberap fungsi seleksi yang berbeda sehingga kita harus memilih
fungsi yang tepat jika kita ingin algoritma menghasilkan solusi optimal.

Jadi, pada sebagian masalah algoritma greedy tidak selalu berhasil memberikan
solusi yang optima

Contoh kasus : Penukaran Koin


Diberikan uang senilai A. Tukar A dengan koin-koin uang yang ada. Berapa jumlah
minimum koin yang diperlukan untuk penukaran tersebut? tersedia banyak koin 1, 5,
10, 25

2021 Penghantar Kecerdasan Buatan


10 Muhaimin Hasanudin, S.T., M.Kom
Biro Bahan Ajar E-learning dan MKCU
http://pbael.mercubuana.ac.id/
1. Uang senilai A = 32 dapat ditukar dengan banyak cara berikut:
32 = 1 + 1 + … + 1 (32 koin)
32 = 5 + 5 + 5 + 5 + 10 + 1 + 1 (7 koin)
32 = 10 + 10 + 10 + 1 + 1 (5 koin)
… dst
2. Minimum: 32 = 25 + 5 + 1 + 1 (4 koin)

Implementasi Algoritma Greedy


Untuk memperdalam pengertian algoritma greedy, kita akan mengimplementasikan
algoritma yang telah dijelaskan pada bagian sebelumnya ke dalam kode program. Seperti
biasa, contoh kode program akan diberikan dalam bahasa pemrograman python. Sebagai
langkah awal, tentunya kita terlebih dahulu harus merepresentasikan graph. Pada
implementasi yang kita lakukan, graph direpresentasikan dengan menggunakan dictionary
di dalam dictionary, seperti berikut:

DAG={'A':{'C':4,'G':9},
'G':{'E':6},
'C':{'D':6,'H':12},
'D':{'E':7},
'H':{'F':15},
'E':{'F':8},
'F':{'B':5}}

# Hasil Representasi:
{'A':{'C':4,'G':9},
'C':{'D':6,'H':12}, 'D':
{'E':7},
'E':{'F':8},
'F':{'B':5},
'G':{'E':6},
'H':{'F':15}}

Selanjutnya kita akan membuat fungsi yang mencari jarak terpendek dari graph
yang dibangun, dengan menggunakan algoritma greedy. Definisi dari fungsi

2021 Penghantar Kecerdasan Buatan


11 Muhaimin Hasanudin, S.T., M.Kom
Biro Bahan Ajar E-learning dan MKCU
http://pbael.mercubuana.ac.id/
tersebut sangat sederhana, hanya sebuah fungsi yang mengambil graph, titik
awal, dan titik akhir sebagai argumennya:
def shortest_path(graph, source, dest):
Jarak terpendek yang didapatkan akan dibangun langkah demi langkah, seperti pada
algoritma greedy yang mengambil nilai local maximum pada setiap langkahnya.
Untuk hal ini, tentunya kita akan perlu menyimpan jarak terpendek ke dalam
sebuah variabel, dengan source sebagai isi awal variabel tersebut. Jarak terpendek
kita simpan ke dalam sebuah list, untuk menyederhanakan proses penambahan
nilai.
result=[]
result.append(source)
Penelusuran graph sendiri akan kita lakukan melalui result, karena variabel ini
merepresentasikan seluruh node yang telah kita kunjungi dari keseluruhan
graph. Variabel result pada dasarnya merupakan hasil implementasi dari langkah
3 algoritma (“Tandai graph sekarang sebagai graph yang telah dikunjungi”). Titik
awal dari rute tentunya secara otomatis ditandai sebagai node yang telah
dikunjungi.
Selanjutnya, kita akan menelusuri graph sampai titik tujuan ditemukan, dengan
menggunakan iterasi:
whiledestnotinresult:
current_node=result[-1]
dengan mengambil node yang sekarang sedang dicari local maximum-nya
dari isi terakhir result. Pencarian local maximum sendiri lebih memerlukan
pengetahuan python daripada algoritma:
# Cari local maximum
local_max=min(graph[current_node].values())

# Ambil node dari local maximum,


# dan tambahkan ke result
# agar iterasi selanjutnya dimulai # dari node sekarang.
fornode,weightingraph[current_node].items():
if weight==local_max:
result.append(node)

Setelah seluruh graph ditelurusi sampai mendapatkan hasil, kita dapat


mengembalikan result ke pemanggil fungsi:

2021 Penghantar Kecerdasan Buatan


12 Muhaimin Hasanudin, S.T., M.Kom
Biro Bahan Ajar E-learning dan MKCU
http://pbael.mercubuana.ac.id/
Return result
Keseluruhan fungsi yang dibangun adalah sebagai berikut:

Def shortest_path(graph,source,dest):
result=[]
result.append(source)

while dest not in result:


current_node = result[-1]
local_max = min(graph[current_node].values())
for node, weight in graph[current_node].items():
if weight == local_max:
result.append(node) return result

Kesimpulan
Algoritma greedy merupakan algoritma yang besifat heuristik, mencari nilai
maksimal sementara dengan harapan akan mendapatkan solusi yang cukup
baik. Meskipun tidak selalu mendapatkan solusi terbaik (optimum), algoritma
greedy umumnya memiliki kompleksitas waktu yang cukup baik, sehingga
algoritma ini sering digunakan untuk kasus yang memerlukan solusi cepat
meskipun tidak optimal seperti sistem real-time atau game.
Dari impementasi yang kita lakukan, dapat dilihat bagaimana algoritma greedy
memiliki beberapa fungsionalitas dasar, yaitu:
- Fungsi untuk melakukan penelusuran masalah.
- Fungsi untuk memilih local maximum dari pilihan-pilihan yang ada tiap langkahnya.
- Fungsi untuk mengisikan nilai local maximum ke solusi keseluruhan.
- Fungsi yang menentukan apakah solusi telah didapatkan.

2021 Penghantar Kecerdasan Buatan


13 Muhaimin Hasanudin, S.T., M.Kom
Biro Bahan Ajar E-learning dan MKCU
http://pbael.mercubuana.ac.id/
Daftar Pustaka
1. Russel, Stuart J., Peter Norvig, Artificial Intelligence, A Modern Approach 3rd Edition,
Prentice Hall, New Jersey, 2010.
2. Ertel, Wolfgang. 2017. Introduction to Artificial Intelligence; Second Edition. Germany:
Springer.
3. Russel, Stuart J., Peter Norvig, Artificial Intelligence, A Modern Approach
3rd Edition, Prentice Hall, New Jersey, 2010.
4. Wolfgang, E. (2011). Introduction to artificial intelligence. Translated by
Nathanael Black With illustrations by Florian Mast, Springer-Verlag London
Limited
5. Kusumadewi, S. (2007). Teknik Pencarian Heuristik. Yogyakarta:
Universitas Islam Indonesia.
6. Pearl, J. (1984). Some recent results in heuristic search theory. IEEE
transactions on pattern analysis and machine intelligence, (1), 1-13.
7. https://www.datasciencecentral.com/using-uninformed-informed-search-algorithms-
to-solve-8-puzzle-n/
8. https://citec.amikom.ac.id/main/index.php/citec/article/download/230/167
9. https://blog.goodaudience.com/solving-8-puzzle-using-a-algorithm-7b509c331288
10. http://science.slc.edu/~jmarshall/courses/2005/fall/cs151/lectures/heuristic-search/
11. http://www.sci.brooklyn.cuny.edu/~chipp/cis32/lectures/Lecture6.pdf
12. https://www.geeksforgeeks.org/travelling-salesman-problem-set-1/
13. https://mikroskil.ac.id/ejurnal/index.php/jsm/article/view/92
14. https://www.javatpoint.com/travelling-sales-person-problem
15. https://www.youtube.com/watch?v=QXFfnWrlkC8

2021 Penghantar Kecerdasan Buatan


14 Muhaimin Hasanudin, S.T., M.Kom
Biro Bahan Ajar E-learning dan MKCU
http://pbael.mercubuana.ac.id/

Anda mungkin juga menyukai