Anda di halaman 1dari 20

I.

PENGANTAR KECERDASAN BUATAN (ARTIFICIAL INTELLIGENCE/ AI)


1.1 DEFINISI AI
Menurut Alan Turing, ahli matematika dari Inggris : AI adalah jika computer tidak
dapat dibedakan dengan manusia saat berbincang melalui terminal computer
maka bisa dikatakan computer itu cerdas, mempunyai kecerdasan.

John McCarthy dari Stanford : Kecerdasan adalah kemampuan untuk mencapai


sukses dalam menyelesaikan suatu permasalahan.

Harbert Alexander Simon (2001) : AI merupakan kawasan penelitian, aplikasi dan


instruksi yang terkait yang terkait dengan pemrograman computer untuk
melakukan sesuatu hal yang dalam pandangan manusia adalah cerdas.

Rich and Knight (1991) : AI merupakan sebuah studi tentang bagaimana


membuat computer melakukan hal-hal yang pada saat ini dapat dilakukan lebih
baik oleh manusia.

Encyclopedia Britannica : AI merupakan cabang dari ilmu computer yang dalam


merepresentasi pengetahuan lebih banyak menggunakan bentuk simbol-simbol
daripada bilangan dan memproses informasi berdasarkan metode heuristis atau
dengan berdasarkan sejumlah aturan.

Pengertian AI dari beberapa aspek :


1. Aspek kecerdaan : AI membuat mesin menjadi cerdas.
2. Aspek penelitian : AI menjadi kajian bagaimana membuat komputer dapat
melakukan sesuatu seperti manusia.
3. Aspek bisnis : AI adalah sebagai alat yang powerfull dan metodologis dalam
menyelesaikan masalah.
4. Aspek pemrograman : AI merupakan kajian tentang pemrograman simbolis,
problem solving dan searching.
Domain pada AI :
a. Mundane task , meliputi :
 Persepsi (vision & speech)
 Bahasa alami ( understanding, generation, translation)
 Pemikiran yang bersifat commonsense
 Robot control
b. Formal task, meliputi :
 Games
 Math ( geometri, logika, kalkulus, pembuktian)
c. Expert task, meliputi :
 Analisis finansial
 Analisis medical
 Analisis ilmu pengetahuan
 Rekayasa ( desain, pencarian kegagalan, perencanaan manufaktur)
1.2 TUJUAN AI
Tujuan AI menurut Winston dan Prendergast (1984) :
1. Tujuan utama : Membuat mesin menjadi lebih pintar
2. Tujuan ilmiah : memahami tentang kecerdasan
3. Tujuan entrepreneurial : membuat mesin lebih bermanfaat

Cerdas adalah memiliki pengetahuan, pengalaman dan penalaran untuk


membuat keputusan dan mengambil tindakan. Mesin agar cerdas maka harus
diberi pengetahuan dan kemampuan untuk menalar.

1.3 SEJARAH AI
Abad ke-17 sampai 21 :
Rene Descartes, Blaise Pascal, Charles Babbage, Bertrand Russell
Beberapa contoh program AI :

1. Logic Theorist diprogram oleh Dartmouth Conference. Program ini dapat


membuktikan toerema-teorema matematika.

2. Sad Sam diprogram oleh Robert K Lindsay. Program ini dapat mengetahui kalimat
yang ditulis dalam bahasa inggris dan memberi jawaban dari fakta suatu
percakapan.

3. Eliza, diprogram oleh Joseph Weizenbaum. Program ini dapat melakukan terapi
pada pasien dengan memberikan beberapa pertanyaan.

4. Deep Blue, komputer pertama yang mampu mengalahkan juara catur dunia.

1.4 PERBEDAAN AI DAN KECERDASAN ALAMI


Menurut Turban :
1. AI lebih bersifat permanen.
2. AI lebih mudah diduplikasi dan disebarkan
3. Ai lebih murah dibandingkan kecerdasan alami.
4. AI lebih konsisten
5. AI dapat didokumentasi
6. AI dapat mengerjakan pekerjaan lebih cepat dan lebih baik.

Kecerdasan alami mempunyai kelebihan :


1. Kreatif
2. Memungkinkan orang menggunakan pengalaman secara langsung
3. Pemikiran manusia dapat digunakan secara luas.

1.5 PERBEDAAN KOMPUTASI AI DAN PEMROGRAMAN KONVENSIONAL


Dimensi Kecerdasan Buatan Pemrograman
Konvensional
Pemrosesan Mengandung konsep- Algoritmik
konsep simbolik
Sifat input Bisa tidak lengkap Harus lengkap
Pencarian Sebagian besar bersifat Berdasarkan aloritma
heuristic
Keterangan Disediakan Biasanya tidak disediakan
Fokus Pengetahuan Data & informasi
Struktur Control dipisah dari Control terintegrasi
pengetahuan dengan data
Sifat output Kuantitatif Kualitatif
Pemeliharaan & Relative mudah Sulit
update
Kemampuan menalar Ya Tidak

1.6 SUBILMU AI
Meliputi : cognition & psycolinguistik, pengolahan citra, teori kendali,
pengolahan pola, robotika, system pendukung keputusan SIM, system pakar,
natural language processing, speech recognition,computer vision, intelligent
computer aided instruction, game playing

1.7 LINGKUP AI PADA APLIKASI KOMERSIAL


1. bidang komunikasi :
 Microsoft voice : menggunakan perintah suara pengguna
untuk membuka suatu aplikasi program
 Microsoft Dictation : aplikasi yang dapat menuliskan apa yang
diucapkan pengguna.
2. bidang kesehatan :
 system pakar di bidang kesehatan
 Voice User Interface (VUI) : menggunakan suara pengguna
untuk menghidupkan/ mematikan lampu/ saklar. Hal ini
sangat berguna untuk penyandang cacat fisik.
3. bidang lalu lintas udara
 ATC (air traffic controllers) memantau lalu lintas udara dengan
radar, cuaca, navigasi.
4. bidang pertanian
 robot untuk menyirami tanaman, memantau hama, memilih
hasil panen dll.
5. Pabrik
 Robot untuk pekerjaan di pabrik yang beresiko terhadap
keselamatan pekerja, yang memerlukan ketelitian tinggi,
pengawasan yang ketat dan maintenance.

1.8 SOFT COMPUTING


Merupakan kumpulan teknik-teknik komputasi dalam ilmu komputer yang
mempelajari, memodelkan dan menganalisa suatu fenomena dengan toleransi
terhadap ketidakpastian, ketidaktepatan dan kebenaran parsial.

Metode yang digunakan : Fuzzy logic, artificial neural network, probabilistic


reasoning, evolutionary computation, genetic algorithm.

Tujuan soft computing : membuat high machine intelligence quotient (HMIQ)


yaitu system yang mampu mengolah informasi seperti cara berfikir manusia.

PR :
1. Jelaskan mengapa AI penting bagi manusia.
2. Jelaskan perbedaan pintar, cerdas dan genius dan beri contohnya.
3. Buat 1 contoh permasalahan yang sulit dipecahkan dengan komputasi
konvensional tapi dengan mudah dipecahkan dengan AI.
4. Cari aplikasi komersial AI selain yang sudah ada pada penjelasan di
atas dan menerapkan HMIQ
II. PEMECAHAN MASALAH PADA AI

2.1 DEFINISI MASALAH PADA AI

Masalah pada AI adalah masalah yang dapat dideskripsi dengan :

1. Mendefinisikan ruang keadaan


2. Menetapkan keadaan awal
3. Menetapkan tujuan
4. Menetapkan aturan

2.1.1 Ruang keadaan (state space) adalah ruang yang berisi semua keadaan (state)
yang mungkin terjadi.

Keadaan awal ( initial state) adalah keadaan dimulainya pencarian.

Keadaan akhir/ tujuan adalah keadaan diakhirinya pencarian.

Kumpulan aturan digunakan untuk mengubah keadaan satu ke keadaan lain/ berikutnya

Contoh 1:

1. Masalah water glass


Ada dua gelas air, keadaan awal kosong, masing-masing berkapasitas 4 dan 3
liter dan tidak ada tanda untuk ukuran volume. Ada sebuah keran air yang
digunakan untuk mengisinya. Bagaimana dapat mengisi tepat 2 liter pada gelas
berkapasitas 4 liter dan 3 liter pada gelas berkapasitas 3 liter.
Jawab :
Deskripsi :
Misal x = volume gelas berkapasitas 4 liter (gelas A)
y = volume gelas berkapasitas 3 liter (gelas B)
Ruang keadaan :
Himpunan pasangan bilangan bulat (x,y) sehingga :
x/y 0 1 2 3
0 (0,0) (0,1) (0,2) (0,3)
1 (1,0) (1,1) (1,2) (1,3)
2 (2,0) (2,1) (2,2) (2,3)
3 (3,0) (3,1) (3,2) (3,3)
4 (4,0) (4,1) (4,2) (4,3)
Keadaan awal : (x,y) = (0,0)
Tujuan : (x,y) = (2,3)
Aturan :
Aturan ke- Jika keadaan sekarang Maka keadaan selanjutnya
1 x<4 (4,y) isi penuh gelas A
2 y<3 (x,3) isi penuh gelas B
3 x>0 (0,y) kosongkan gelas A
4 y>0 (x,0) kosongkan gelas B
5 x+y > 4 dan y > 0 (4, y+x-4) tuangkan sebagian isi
gelas B ke gelas A sampai penuh
6 x+y > 3 dan x > 0 (y+x-3,3) tuangkan sebagian isi
gelas A ke gelas B sampai penuh
7 x+y ≤ 3 dan x > 0 (0, y+x) tuangkan seluruh isi gelas A
ke gelas B.
8 x+y ≤ 4 dan y > 0 (y+x, 0) tuangkan seluruh isi gelas B
ke gelas A.
Solusi :
Keadaan sekarang Aturan Keadaan selanjutnya
level Gelas A Gelas B yang Gelas A Gelas B
dipakai
0 0 0 1 4 0
1 4 0 6 1 3
2 1 3 4 1 0
3 1 0 7 0 1
4 0 1 1 4 1
5 4 1 6 2 3
Pada keadaan ini didapatkan tujuan yang dimaksud yaitu (x,y) = (2,3)

2. Masalah petani, sayuran, kambing dan serigala


Seorang petani hendak menjual kambing,serigala dan sayuran ke pasar. Untuk
sampai di pasar ia harus menyebrangi sungai. Di sungai hanya ada satu perahu
yang hanya bisa memuat petani dan satu penumpang lain. Jika ditinggal petani
maka sayuran dimakan kambing dan kambing dimakan serigala. Bagaimana
caranya agar semua bisa selamat sampai di seberang sungai ?
Jawab :
Deskripsi :
Ruang keadaan : daerah asal dan daerah tujuan : petani, sayur,
kambing,serigala = (P, Sy, K, Sg)
Keadaan awal : daerah asal : (P, Sy, K, Sg) & daerah tujuan = (0,0,0,0)
Keadaan akhir : daerah asal : (0,0,0,0) & daerah tujuan = (P, Sy, K, Sg)
Aturan :
Aturan ke- Aturan
1 Kambing dan petani
menyeberang
2 Sayur dan petani menyeberang
3 Serigala dan petani menyeberang
4 Kambing dan petani kembali
5 Sayur dan petani kembali
6 Serigala dan petani kembali
7 Petani kembali

Salah satu solusinya :


Keadaan awal Keadaan akhir
Daerah asal Daerah tujuan Aturan dipakai Daerah asal Daerah
tujuan
(P,Sy,K,Sg) (0,0,0,0) 1 (0,Sy,0,Sg) (P,0,K,0)
(0,Sy,0,Sg) (P,0,K,0) 7 (P,Sy,0,Sg) (0,0,K,0)
(P,Sy,0,Sg) (0,0,K,0) 3 (0,Sy,0,0) (P,0,K,Sg)
(0,Sy,0,0) (P,0,K,Sg) 4 (P,Sy,K,0) (0,0,0,Sg)
(P, Sy,K,0) (0,0,0,Sg) 2 (0,0,K,0) (P,Sy,0,Sg)
(0,0,K,0) (P,Sy,0,Sg) 7 (P,0,K,0) (0,Sy,0,Sg)
(P,0,K,0) (0,Sy,0,Sg) 1 (0,0,0,0) (P,Sy,K,Sg)
Sampai disini ditemukan solusi untuk keadaan akhir di daerah tujuan semua
(P,Sy,K,Sg) sampai di seberang sungai.

2.2.2 Representasi Ruang Keadaan


Beberapa cara untuk merepresentasi Ruang Keadaan :
1. Graph keadaan
Graph terdiri dari node (titik) yang menunjukkan keadaan dan arc (busur
dengan arah panah) untuk menunjukkan arah dari suatu keadaan ke keadaan
selanjutnya.
Contoh 2.1 :
Graph berikut menunjukkan node A sebagai keadaan awal dan Z keadaan
akhir
3 4 1
B D G J K
4 4 6 2 7
A E 8 H Z
3 6
5 C F I
2 4
Ada 4 lintasan sebagai solusi dari A ke Z yaitu :
ABDEGZ
ABDEGHZ
ACEGZ
ACEGHZ
2. Pohon Pelacakan
Digunakan untuk menghindari siklus/ cycle/ loop/ kalang/ gelang dan
menggambarkan secara hierarkis.
Pohon terdiri dari node dan cabang.
Node pada level 0 disebut akar yang menunjukkan keadaan awal.
Node akar mempunyai cabang yang terdiri dari beberapa node anak.
Node yang tidak memiliki anak disebut node daun yang menunjukkan akhir
pencarian/ goal atau jalan buntu (dead end)
Contoh :
Struktur pohon dari graph contoh 2.1 diatas :

B C

D F E

E I G

G I F H Z

J F H Z K I Z

K I Z

Level 0 dimulai dari node A sampai level 6 didapat node Z sebagai goal-nya.

3. Pohon and/or

Contoh pohon and/or dari kasus graph contoh 2.1 diatas :


A

B D E G C E G

H Z Z H Z Z

2.2 PENCARIAN/ SEARCHING

• Hal penting dalam menentukan keberhasilan sistem cerdas adalah kesuksesan dalam
pencarian.

• Pencarian = suatu proses mencari solusi dari suatu permasalahan melalui


sekumpulan kemungkinan ruang keadaan (state space).

• Untuk mengukur perfomansi metode pencarian, terdapat 4 kriteria yang dapat


digunakan :

1. Completeness : apakah metode tersebut menjamin penemuan solusi jika


solusinya memang ada
2. Time complexity : berapa lama waktu yang diperlukan? [semakin cepat, semakin
baik]
3. Space complexity : berapa banyak memori yang diperlukan
4. Optimality : apakah metode tersebut menjamin menemukan solusi yang terbaik
jika terdapat beberapa solusi berbeda?

Teknik pencarian dan pelacakan

– Pencarian buta (blind search)

• Pencarian melebar pertama (Breadth – First Search/ BFS)

• Pencarian mendalam pertama (Depth – First Search/ DFS)

– Pencarian terbimbing (heuristic search)

• Pendakian Bukit (Hill Climbing)


• Pencarian Terbaik Pertama (Best First Search)

Pencarian Buta (Blind Search)

A. Pencarian Melebar Pertama (Breadth-First Search)


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 (Gambar
2.12).

B C D

E F G H I J K L M

Gambar 1.Metode Breadth-First Search

 Algoritma.
1. Buat suatu variabel Node_List dan tetapkan sebagai keadaan awal.
2. Kerjakan langkah-langkah berikut ini sampai tujuan tercapai atau Node_List
dalam keadaan kosong:
(a) Ambil elemen pertama dari Node_List, sebut dengan nama E. Jika
Node_List kosong, keluar.
(b) Pada setiap langkah yang aturannya cocok dengan E, kerjakan:
i Aplikasikan aturan tersebut untuk membentuk suatu keadaan baru.
ii Jika keadaan awal adalah tujuan yang diharapkan, sukses dan keluar
iii Jika tidak demikian, tambahkan keadaan awal yang baru tersebut
pada akhir Node_List.

 Keuntungan.
1. Tidak akan menemui jalan buntu.
2. Jika ada satu solusi, maka breadth-first search akan menemukannya. Dan
jika ada lebih dari satu solusi, maka solusi minimum akan ditemukan.
 Kelemahan.
1. Membutuhkan memori yang cukup banyak, karena menyimpan semua node
dalam satu pohon.
2. Membutuhkan waktu yang cukup lama, karena akan menguji n level untuk
mendapatkan solusi pada level yang ke-(n+1)
Contoh gambar 1 , jika dicari solusi dari node awal A sampai node tujuan F dengan
metode BFS :
Iterasi Node List = F?, jika tidak, keluarkan dari node
list, masukkan keadaan baru (masuk
dari kiri keluar dari kanan) ke node
list
1 A A≠F
2 D,C,B B≠F
3 G,F,E,D,C C≠F
4 J,I,H,G,F,E,D D≠F
5 M,L,K,J,I,H,G,F,E E≠F
6 M,L,K,J,I,H,G,F F=F STOP

B. Pencarian Mendalam Pertama (Depth-First Search)


Pada Depth-First Search, proses pencarian akan dilakukan pada semua anaknya
sebelum dilakukan pencarian ke node-node yang selevel. Pencarian dimulai dari
node akar ke level yang lebih tinggi. Proses ini diulangi terus hingga ditemukannya
solusi (Gambar 2).

Gambar 2. Depth-First Search


C
 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) Bangkaitkan succesor E dari keadaan awal. Jika tidak ada succesor, maka
akan terjadi kegagalan.
(b) Panggil depth-first search dengan E sebagai keadaan awal.
(c) Jika sukses berikan tanda sukses. Namun jika tidak, ulangi langkah-2

 Keuntungan.
1. Membutuhkan memori yang relatif kecil, karena hanya node-node pada lintasan
yang aktif saja yang disimpan.
2. Secara kebetulan, metode depth-first search akan menemukan solusi tanpa
harus menguji labih banyak lagi dalam ruang keadaan.

 Kelemahan.
1. Memungkinkan tidak ditemukannya tujuan yang diharapkan.
2. Hanya akan mendapatkan 1 solusi pada setiap pencarian.
Contoh gambar 1 , jika dicari solusi dari node awal A sampai node tujuan F dengan
metode DFS :
Iterasi Succ. = F?, jika tidak, keluarkan dari succ.,
masukkan keadaan baru (masuk dari
kiri keluar dari kiri) ke node list
1 A A≠F
2 B,C,D B≠F
3 E,F,G,C,D E≠F
4 F,G,C,D F=F STOP

Pencarian Heuristik (Heuristic Search)


Pencarian buta tidak selalu dapat diterapkan dengan baik, hal ini disebabkan waktu
aksesnya yang cukup lama serta besarnya memori yang diperlukan. Kelemahan ini
sebenarnya dapat diatasi jika ada informasi tambahan dari domain yang bersangkutan.
Metode pencarian heuristic :
1. Pembangkitan dan Pengujian (generate & test)
2. Pendakian bukit (hill climbing)
3. Pencarian Terbaik Pertama (best first search)
4. Simulated Annealing

Pembangkitan & Pengujian (Generate And Test)


Pada prinsipnya metode ini merupakan penggabungan antara depth-first search
dengan pelacakan mundur (backtracking), yaitu bergerak ke belakang menuju pada
suatu keadaan awal. Nilai pengujian berupa jawaban ‘ya’ atau ‘tidak’.
Algoritma:
1. Bangkitkan/ generate suatu kemungkinan solusi (membangkitkan suatu titik tertentu
atau lintasan tertentu dari keadaan awal).
2. Uji/ test untuk melihat apakah node tersebut benar-benar merupakan solusinya
dengan cara membandingkan node tersebut atau node akhir dari suatu lintasan
yang dipilih dengan kumpulan tujuan yang diharapkan.
3. Jika solusi ditemukan, keluar. Jika tidak, ulangi kembali langkah yang pertama.

Contoh 1 : Traveling Salesman Problem (TSP).


Seorang salesman 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 dengan jarak antara tiap-tiap kota seperti
terlihat pada Gambar 3.

A 8 B
3 4
7 5

D 6 C

Gambar 3. Contoh kasus TSP.


Disini, penyelesaian dengan menggunakan generate & test dilakukan dengan
membangkitkan solusi-solusi yang mungkin dengan menyusun kota-kota dalam urutan
abjad, yaitu:
 A–B–C–D
 A–B–D–C
 A–C–B–D
 A–C–D–B
 Dan seterusnya (Gambar 4).

A B C D

B C D

C D B D C B

D C D B B C

Gambar 4. Metode Generate dan Test

Misalkan pertama-tama kita mulai dari node A. Kita pilih sebagai keadaan awal adalah
lintasan ABCD dengan panjang lintasan (=19). Kemudian kita lakukan backtracking
untuk mendapatkan lintasan ABDC (=18). Lintasan ini kita bandingkan dengan lintasan
ABCD, ternyata ABDC < ABCD, sehingga lintasan terpilih adalah ABDC. Kita lakukan
backtracking lagi untuk mendapatkan lintasan ACBD (=12), ternyata ACBD < ABDC,
maka lintasan terpilih sekarang adalah ACBD. Demikian seterusnya hingga kita
temukan solusi yang sebenarnya. Tabel 2.5 menunjukkan proses pencarian tersebut.
Dari Tabel 2.5 dapat dilihat bahwa pada akhir pencarian, kita peroleh lintasan terpendek
adalah A-C-B-D atau D-B-A-C dengan panjang lintasan sebesar 12.
Salah satu kelemahan dari metode generate & test ini adalah perlu membangkitkan
semua kemungkinan sebelum dilakukan pengujian, sehingga membutuhkan waktu yang
cukup besar dalam pencariannya.

Tabel 1. Alur pencarian dengan generate & test pada TSP.


Pencarian Panjang Panjang
Lintasan Lintasan terpilih
ke- Lintasan Lintasan
terpilih
1. ABCD 19 ABCD 19
2. ABDC 18 ABDC 18
3. ACBD 12 ACBD 12
4. ACDB 13 ACBD 12
5. ADBC 16 ACBD 12

6. ADCB 18 ACBD 12

7. BACD 17 ACBD 12

8. BADC 21 ACBD 12

9. BCAD 15 ACBD 12

10. BCDA 18 ACBD 12

11. BDAC 14 ACBD 12

12. BDCA 13 ACBD 12

13. CABD 15 ACBD 12

14. CADB 14 ACBD 12

15. CBAD 20 ACBD 12

16. CBDA 16 ACBD 12

17. CDAB 21 ACBD 12

18. CDBA 18 ACBD 12

19. DABC 20 ACBD 12

20. DACB 15 ACBD 12

21. DBAC 15 ACBD 12

22. DBCA 12 ACBD atau DBCA 12

23. DCAB 17 ACBD atau DBCA 12

24. DCBA 19 ACBD atau DBCA 12

B. Pendakian Bukit (Hill Climbing)


Metode ini hampir sama dengan metode pembangkitan & pengujian, hanya saja proses
pengujian dilakukan dengan menggunakan fungsi heuristik. Pembangkitan keadaan
berikutnya sangat tergantung pada feedback dari prosedur pengetesan. Tes yang
berupa fungsi heuristic ini akan menunjukkan seberapa baiknya nilai terkaan yang
diambil terhadap keadaan-keadaan lainnya yang mungkin.

B.1. Simple Hill Climbing (pencarian mendalam)


Algoritma:
1. Mulai dari keadaan awal, lakukan pengujian: jika merupakan tujuan, maka berhenti;
dan jika tidak, lanjutkan dengan keadaan sekarang sebagai keadaan awal.
2. Kerjakan langkah-langkah berikut sampai solusinya ditemukan, atau sampai tidak
ada operator baru yang akan diaplikasikan pada keadaan sekarang:
(a.) Cari operator yang belum pernah digunakan; gunakan operator ini untuk
mendapatkan keadaan yang baru.
(b.) Evaluasi keadaan baru tersebut.
ii. Jika keadaan baru merupakan tujuan, keluar.
iii. Jika bukan tujuan, namun nilainya lebih baik daripada keadaan
sekarang, maka jadikan keadaan baru tersebut menjadi keadaan
sekarang.
iv. Jika keadaan baru tidak lebih baik daripada keadaan sekarang, maka
lanjutkan iterasi.

Pada simple hill climbing ini, ada 3 masalah yang mungkin, yaitu:
 Algoritma akan berhenti kalau mencapai nilai optimum local.
 Urutan penggunaan operator akan sangat berpengaruh pada penemuan solusi.
 Tidak diijinkan untuk melihat satupun langkah sebelumnya.

Contoh kasus = contoh 1 dengan algoritma simple hill climbing :


Didefinisikan :
Ruang keadaan = semua kemungkinan lintasan yang ditempuh.
Operator = menukar posisi 2 kota dalam satu lintasan. Satu lintasan ada 4 kota, 2 kota
yang bersebelahan ditukar posisinya, jadi ada urutan kota sebanyak C(4,2)= 6.
Fungsi heuristic = panjang/ jarak total dari lintasan yang dipilih minimal.
Misal dipakai operator yaitu :
1. tukar kota ke-1 dengan kota ke-2 (1,2)
2. tukar 2,3
3. tukar 3,4
4. tukar 4,1
5. tukar 2,4
6. tukar 1,3
ambil keadaan awal ABCD (19),masukkan operator 1didapat BACD(17)< ABCD(19).
Ambil BACD(17) untuk keadaan awal masukkan operator 1 didapat ABCD, sudah
dipakai maka tidak dipilih, operator 2 didapat BCAD(15)<BACD(17).
Ambil BCAD (15) pakai operator 1 didapat CBAD(20), operator 2 didapat BACD (sudah
dipilih), operator 3 : BCDA(18), operator 4 :DCAB (19), op. 5 : BDAC(14)< BCAD(15)
Ambil BDAC(14), op. 1 : DBAC(15), op.2 :BADC(21), op 3 : BDCA(13)< BDAC(14)
Ambil BDCA (13), op.1 : DBCA(12)<BDCA(13)
Ambil DBCA(12), op.1 : BDCA (sudah dipakai), op.2 : DCBA(19), op3 : DBAC(15),op4 :
ABCD(sudah dipakai),op.5 : DACB(15), op.6: CBDA(16),tidak ada jarak lebih kecil dari
12, stop. Solusi jalur kota yang dilewati DBCA jarak minimal 12.
Jika hanya dipakai 4 operator misal operator 1 sampai 4 saja, akan didapat nilai
minimum lokal 15. Jadi kelengkapan operator sangat dibutuhkan untuk mendapat hasil
terbaik.

B.2. Steepest Ascent Hill Climbing (pencarian melebar kemudian mendalam)


Algoritma :
1. Mulai dari keadaan awal lakukan pengujian, jika merupakan tujuan maka stop,
jika tidak lanjutkan dengan keadaan sekarang sebagai keadaan awal.
2. Kerjakan hingga tujuan tercapai atau hingga iterasi tidak memberikan perubahan
pada keadaan sekarang.
a. Tentukan SUCC sebagai nilai heuristic 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 heuristic keadaan sekarang, ubah node
SUCC menjadi keadaan sekarang.
Contoh pada kasus contoh 1 dengan algoritma steepest ascent hill
climbing,operator yang sama :
ambil keadaan awal ABCD (19), level 1 didapat SUCC:
BACD(17),ACBD(12),ABDC(18), DBCA(12), ADCB(18),CBAD(20), ambil nilai heuristic
terbaik/ jarak min. yaitu ACBD(12).
Ambil ACBD(12) untuk keadaan awal.level 2 didapat SUCC : CABD(15),
ABCD(19),ACDB(13), DCBA(19), ADBC(16), BCAD(15). Tidak ada nilai heuristic yang
lebih baik dari keadaan awal, stop. Solusi lintasan ACBD dengan jarak 12.

C. Pencarian Terbaik Pertama (best first search/ BFS)


Pencarian diperbolehkan mengunjungi node di level yang lebih rendah, jika node pada
level yang lebih tinggi memiliki nilai heuristic yang lebih buruk.
Algoritma :
1. Buat sebuah stack, inialisasi node akar sebagai node pertama.
2. Bila node pertama ≠ goal, node dihapus dan diganti dengan anak-anaknya.
3. Seluruh node yang ada di stack di-sort ascending berdasarkan fungsi heuristic
yang digunakan.
4. Bila node pertama goal,ulangi langkah 2.
5. Jika node pertama = goal, cari solusi dengan menelusuri jalur dari goal ke node
akar. End.

Contoh untuk kasus yang sama dengan contoh 2.1 node awal = A, node tujuan =
Z, dengan algoritma BFS :
Stack Ambil sesuai nilai = goal=z , ket.
heuristic=jarak min.
A A ≠,hapus A, masukkan
anak ke stack
B(4), C(5) B ≠,hapus B, masukkan
anak ke stack
C(5), D(3) D ≠,hapus D, masukkan
anak ke stack
C(5), E(4) E ≠,hapus E, masukkan
anak ke stack
C(5), G(6) C ≠,hapus C, masukkan
anak ke stack
G(6), E(3), F(2) F ≠,hapus F, masukkan
anak ke stack
G(6), E(3), I(4) E ≠,hapus E, anak G sudah
di stack
G(6), I(4) I ≠,hapus I, tidak punya
anak,hapus dari
stack,hapus parent F
G(6) G ≠,hapus G, masukkan
anak ke stack
H(2),J(4),Z(7),F(8) H ≠,hapus H, masukkan
anak ke stack
J(4),Z(6),Z(7),F(8) J ≠,hapus J, masukkan
anak ke stack
Z(6),Z(7),F(8),K(1) K ≠,hapus K, tidak punya
anak, hapus dari
stack,hapus parent J

Z(6),Z(7),F(8) Z(6) = goal,stop

Solusi :

3 4 1
B D G J K
4 4 6 2 7
A E 8 H Z
3 6
5 C F I
2 4

Penelusuran dari A ke Z didapat solusi :


ABDEGHZ ,jarak 25
ABDEGZ, jarak 24
ACEGHZ, jarak 22
ACEGZ, jarak 21

Tugas :
Seorang selesman akan mengunjungi 4 kota yaitu K, L,M,N seperti digambarkan
di bawah ini. Cari rute terpendek (lintasan kota dan jarak terpendek) dimana
setiap kota hanya dikunjungi satu kali dan ia boleh memilih keadaan awal di
suatu kota dan keadaan akhir di kota lain. Selesaikan kasus ini dengan algoritma
:
a. Generate & test
b. Simple Hill climbing
c. Steepest ascent hill climbing
d. BFS

K 6 L
9 2
5 8

M 7 N

Gambar 3. Contoh kasus TSP.

Anda mungkin juga menyukai