INTELEGENSI BUATAN. Pertemuan 2,3 Problem, Space, Search. M. Miftakul Amin, M. Eng. website :

dokumen-dokumen yang mirip
Metode Pencarian & Pelacakan dengan Heuristik

Pencarian. Kecerdasan Buatan Pertemuan 3 Yudianto Sujana

KECERDASAN BUATAN METODE HEURISTIK / HEURISTIC SEARCH ERWIEN TJIPTA WIJAYA, ST., M.KOM

memberikan output berupa solusi kumpulan pengetahuan yang ada.

MASALAH, RUANG KEADAAN & PENCARIAN

Sistem Kecerdasan Buatan. Masalah, Ruang Masalah dan Pencarian Solusi. Masalah. Masalah Sebagai Ruang Keadaan 10/7/2015

MASALAH, RUANG KEADAAN. Kecerdasan Buatan

BAB III METODE PELACAKAN/PENCARIAN

BAB IV TEKNIK PELACAKAN

Masalah, Ruang Keadaan, Pencarian. Kecerdasan Buatan Pertemuan 2 Yudianto Sujana

Case Study : Search Algorithm

Teknik Pencarian Heuristik

METODE PENCARIAN DAN PELACAKAN

Masalah, Ruang Masalah dan Pencarian

KECERDASAN BUATAN. Simple Hill Climbing. Disusun Oleh:

BAB II MASALAH DAN RUANG MASALAH. Gambar 2.1 sistem yang menggunakan kecerdasan buatan

Pendakian Bukit (Hill Climbing)

HEURISTIC SEARCH. Irvanizam Zamanhuri, M.Sc Dr. Taufiq A. Gani, M.EngSc

BAB 2 TINJAUAN PUSTAKA

APLIKASI SIMULATED ANNEALING UNTUK PENENTUAN TATA LETAK MESIN

Masalah, Ruang Keadaan dan Pencarian 4/7/2016. fakultas ilmu komputer program studi informatika

PENCARIAN RUTE TERPENDEK ARENA KONTES ROBOT PEMADAM API INDONESIA (KRPAI) MENGGUNAKAN ALGORITMA HILL CLIMBING

PENYELESAIAN TRAVELLING SALESMAN PROBLEM DENGAN ALGORITMA SIMPLE HILL CLIMBING

HEURISTIC SEARCH UTHIE

BAB III REPRESENTASI RUANG KEADAAN ( STATE SPACE) keadaan baru yang akan dicapai dengan menggunakan operator. Node-node dalam graph

BAB 1 PENDAHULUAN. 1.1 Latar Belakang

MASALAH, RUANG KEADAAN

KECERDASAN BUATAN MASALAH, RUANG KEADAAN DAN PENCARIAN ERWIEN TJIPTA WIJAYA, ST., M.KOM

SISTEM PENENTUAN LINTASAN TERPENDEK TRAVELING SALESMAN PROBLEM DENGAN ALGORITMA SIMPLE HILL CLIMBING

Update 2012 DESAIN DAN ANALISIS ALGORITMA SEARCHING

Masalah, Ruang Masalah dan Pencarian

BAB II LANDASAN TEORI

Contoh 4/7/ HEURISTIC METHOD. Pencarian Heuristik

SISTEM INTELEGENSIA. Pertemuan 3 Diema HS, M. Kom

Artificial Intelegence/ P_3 EKA YUNIAR

ARTIFICIAL INTELLIGENCE

Search Strategy. Search Strategy

ALGORITMA PENCARIAN (1)

Kecerdasan Buatan Penyelesaian Masalah dengan Pencarian

LAMPIRAN 1. Proses Pembuatan Kopi Tanpa Ampas. Green Bean Kopi Tempur. Jadi. Digiling. Diseduh. Jadi. Hasil Seduhan Kopi Tempur. Disaring.

ALGORITMA PENCARIAN (HEURISTIC)

Kecerdasan Buatan. Penyelesaian Masalah dengan Pencarian... Pertemuan 02. Husni

BAB 2 LANDASAN TEORI

Pencarian Rute Terpendek pada Tempat Wisata di Kota Bogor Menggunakan Metode Heuristik

ANALISA KEBUTUHAN WAKTU PADA PROSES PENYELESAIAN TRAVELING SALESMAN PROBLEM

Combinatorics. Aturan Jumlah. Teknik Menghitung (Kombinatorik) Contoh

Artificial Intelegence/ P_2. Eka Yuniar

7. LAMPIRAN Formula Adonan Arem-Arem 1 kilogram beras 3 liter santan Kara yang diencerkan 1 sachet royco rasa daging ayam Daun pandan

PENYELESAIAN MASALAH 8 PUZZLE DENGAN ALGORITMA HILL CLIMBING STEPEST ASCENT LOGLIST HEURISTIK BERBASIS JAVA

TATA LETAK DENGAN BANTUAN KOMPUTER. Tataletak Fasilitas dengan Bantuan Komputer

APLIKASI SIMULATED ANNEALING UNTUK MENYELESAIKAN TRAVELLING SALESMAN PROBLEM

Sebelumnya... Best-First Search Greedy Search A* Search, karena boros memory, dimunculkan variannya (sekilas): IDA* SMA* D* (DWA*) RBFS Beam

I. KECERDASAN BUATAN Pengampu : Idhawati Hestiningsih

03/03/2015. Agenda Teknik Dasar Pencarian Teknik Pemecahan Masalah Strategi Pencarian Mendalam Pencarian Heuristik

TEKNIK PENCARIAN HEURISTIK (HEURISTIC SEARCHING)

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

BAB 2 LANDASAN TEORI

Masalah, Ruang Keadaan dan Pencarian 4/7/2016. fakultas ilmu komputer program studi informatika

Bab 2 2. Teknik Pencarian

I. PENGANTAR KECERDASAN BUATAN

BAB II LANDASAN TEORI. Menurut Schroeder (2000) Penjadwalan dapat didefinisikan sebagai suatu

KATA PENGANTAR. DAFTAR TABEL.. xviii. 1.1 Latar Belakang Masalah 1

LESSON 6 : INFORMED SEARCH Part II

TEKNIK PENYELESAIAN MASALAH BERDASARKAN AI

Penerapan Metode Best First Search Pada Permainan Tic Tac Toe

BAB II LANDASAN TEORI

ALGORITMA PENCARIAN. 1. Iterative-Deepening Depth-First Search (IDS) Nama : Gede Noverdi Indra Wirawan Nim : Kelas : VI A

UNIVERSITAS GUNADARMA

UJI KECOCOKAN ( MATCHING TEST

AI sebagai Masalah Pelacakan. Lesson 2

PENYELESAIAN TRAVELLING SALESMAN PROBLEM MENGGUNAKAN METODE SIMPLE HILL CLIMBING

Perangkat Lunak Simulasi Langkah Kuda Dalam Permainan Catur

7. LAMPIRAN Perhitungan. Perhitungan jumlah fortifikan yang ditambahkan : AKG zat besi wanita = 18 mg/hari

Ruang Pencarian PERTEMUAN 3

BAB 2 LANDASAN TEORI

SSSS, Problem Solving. State Space Search. Erick Pranata. Edisi I

BAB II TINJAUAN PUSTAKA. ditentukan oleh pemilik kos sedangkan lama waktu penyewaan ditentukan sendiri

SEARCHING. Blind Search & Heuristic Search

Perancangan Kriptografi Block Cipher 64 Bit Berbasis pada Pola Terasering Artikel Ilmiah

BAB 2 LANDASAN TEORI Visualisasi

PERBANDINGAN METODE PENCARIAN DEPTH-FIRST SEARCH, BREADTH-FIRST SEARCH DAN BEST-FIRST SEARCH PADA PERMAINAN 8-PUZZLE

PENGEMBANGAN MEDIA PEMBELAJARAN SISTEM PELACAKAN PADA MATA KULIAH KECERDASAN BUATAN BERBASIS MULTIMEDIA

PENGEMBANGAN MEDIA PEMBELAJARAN SISTEM PELACAKAN PADA MATA KULIAH KECERDASAN BUATAN BERBASIS MULTIMEDIA

PENYELESAIAN TRAVELLING SALESMAN PROBLEM DENGAN METODE TABU SEARCH

STEGANOGRAFI PADA MULTIPLE IMAGES 24 BITS

ANALISIS ALGORITMA ANT SYSTEM (AS) PADA KASUS TRAVELLING SALESMAN PROBLEM (TSP)

Kecerdasan Buatan (Artificial Intelligence) Muhammad Dahria

BAB 1 PENDAHULUAN. 1.1 Latar Belakang

Aplikasi dan Analisis Algoritma BFS dan DFS dalam Menemukan Solusi pada Kasus Water Jug

BAB 2 LANDASAN TEORI

AI sebagai Masalah Pelacakan. Lesson 2

ANALISA ALGORITMA GENETIKA DALAM TRAVELLING SALESMAN PROBLEM SIMETRI. Lindawati Syam M.P.Siallagan 1 S.Novani 2

PENERAPAN METODE STEEPEST ASCENT HILL CLIMBING PADA MODEL PENCARIAN RUTE TERDEKAT FASILITAS PELAYANAN DARURAT DI KOTA BOGOR BERBASIS ANDROID

KUISIONER. 2. Apakah anda pernah mengkonsumsi Jelly (dalam kemasan cup dan siap dikonsumsi) a) Ya, alasannya

Contoh. Teknik Menghitungdan Kombinatorial. Contoh. Combinatorics

BAB II PEMECAHAN MASALAH DENGAN AI

Metode Searching. Blind/Un-informed Search. Heuristic/Informed Search. Breadth-First Search (BFS) Depth-First Search (DFS) Hill Climbing A*

Pemanfaatan Pohon dalam Realisasi Algoritma Backtracking untuk Memecahkan N-Queens Problem

Aplikasi Teori Peluang dalam Permainan Poker

STUDI PERBANDINGAN ALGORITMA CHEAPEST INSERTION HEURISTIC DAN ANT COLONY SYSTEM DALAM PEMECAHAN TRAVELLING SALESMAN PROBLEM

Transkripsi:

INTELEGENSI BUATAN Pertemuan 2,3 Problem, Space, Search M. Miftakul Amin, M. Eng. e-mail: mmiftakulamin@gmail.com website : http://mafisamin.web.ugm.ac.id Jurusan Teknik Komputer Jurusan Teknik Komputer Politeknik Negeri Sriwijaya Palembang 2014

Tujuan Mahasiswa mampu merepresentasikan masalah dalam ruang keadaan dan melakukan memahami berbagai metode pencarian.

Pokok Bahasan Mendefinisikan Masalah dalam Ruang Keadaan Representasi Ruang Keadaan Metode Pencarian & Pelacakan

Artificial Intelligence ARTIFICIAL INTELLIGENCE Input: MASALAH Knowledge Base Inference Engine Output: SOLUSI

Permainan Catur Keadaan awal :

Aturan-aturan untuk melakukan gerakan secara legal

IF 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)

Tujuan yang ingin dicapai adalah posisi pada papan catur yang menunjukkan kemenangan seseorang terhadap lawannya. Kemenangan ini ditandai dengan posisi Raja yang sudah tidak dapat bergerak lagi.

Ruang Keadaan suatu ruang yang berisi semua keadaan yang suatu ruang yang berisi semua keadaan yang mungkin

Penyelesaian masalah secara umum Mendefinisikan suatu ruang keadaan; Menetapkan satu atau lebih keadaan awal; Menetapkan satu atau lebih tujuan; Menetapkan kumpulan aturan.

Representasi Ruang Keadaan Graph Keadaan Pohon Pelacakan Pohon AND/OR Kasus

Graph Keadaan M 4 5 A 3 4 F 1 G B E 6 7 2 C T 8 H 6 3 D 2 I 4 J

Lintasan dari M ke T: M-A-B-C-E-T M-A-B-C-E-H-T M-D-C-E-T M-D-C-E-H-T Lintasan yang menemui jalan buntu (tidak sampai ke T): M-A-B-C-E-F-G M-A-B-C-E-I-J M-D-C-E-F-G M-D-C-E-I-J M-D-I-J

Pohon Pelacakan M Level-0 A D Level-1 e B I C Level-2 C J Buntu E Level-3 E F I H T Level-4 F G Buntu I J Buntu H T Tujuan T Tujuan G Buntu J Buntu T Tujuan Tujuan Level-5 Level-6

Pohon AND/OR M M arc yang terletak antara busur berarti AND A B C A B C (a) (b)

M Level-0 A B C E D C E Level-1 H T T H T T Level-2

Contoh: Masalah Teko Air Ada 2 buah teko masing-masing berkapasitas 4 galon (teko A) dan 3 galon (teko B). Tidak ada tanda yang menunjukkan batas ukuran pada kedua teko tersebut. t Ada sebuah pompa air yang akan digunakan untuk mengisikan air pada kedua teko tersebut. Permasalahannya: Bagaimanakah kita dapat mengisikan tepat 2 galon air ke dalam teko yang berkapasitas 4 galon? 4 galon (teko A) 3 galon (teko B) Air tak terbatas

Penyelesaian Identifikasi ruang keadaan: Permasalahan ini dapat direpresentasikan dengan 2 bilangan integer, yaitu x dan y: x = air yang diisikan pada teko 4 galon (teko A); y = air yang diisikan pada teko 3 galon (teko B); Ruang keadaan: (x,y) sedemikian hingga x {0,1,2,3,4} dan y {0,1,2,3}.,, Keadaan awal & tujuan: Keadaan awal, kedua teko dalam keadaan kosong: (0,0); Tujuan, keadaan dimana pada teko 4 galon berisi tepat 2 galon air: (2,n) untuk sembarang n.

Keadaan Awal Tujuan (0,0) (1,0) (2,0) (3,0) (4,0) (0,1) (1,1) (2,1) (3,1) (4,1) (0,2) (1,2) (2,2) (3,2) (4,2) (0,3) (1,3) (2,3) (3,3) (4,3)

Aturan-aturan Aturan ke- Jika 1. (x,y) (4,y) x < 4 Isi teko A. 2. (x,y) y < 3 (x,3) Isi teko B. Maka 3. (x,y) (x-d,y) dy) x > 0 Tuangkan sebagian air keluar dari teko A. 4. (x,y) y > 0 (x,y-d) Tuangkan sebagian air keluar dari teko B. 5. (x,y) x > 0 6. (x,y) y > 0 (0,y) Kosongkan teko A dengan membuang airnya ke tanah. (x,0) Kosongkan teko B dengan membuang airnya ke tanah.

7. (x,y) x+y 4 dan y > 0 (4,y-(4-x)) Tuangkan air dari teko B ke teko A sampai teko A penuh. 8. (x,y) (x-(3-y),3) x+y 3 dan x > 0 Tuangkan air dari teko A ke teko B sampai teko B penuh. 9. (x,y) x+y 4 dan y > 0 10. (x,y) x+y 3 dan x > 0 (x+y,0) Tuangkan seluruh air dari teko B ke teko A. (0,x+y) Tuangkan seluruh air dari teko A ke teko B. 11. (0,2) (2,0) Tuangkan 2 galon air dari teko B ke teko A. 12. (2,y) (0,y) Kosongkan 2 galon air di teko A dengan membuang airnya ke tanah.

Representasi ruang keadaan dengan pohon pelacakan. (0,0) (4,0) (0,3) (4,3) (0,0) (1,3) (4,3) (0,0) (3,0)

Salah satu solusi: Isi Teko A (gallon) Isi Teko B (gallon) Aturan yang dipakai 0 0 2 0 3 9 3 0 2 3 3 7 4 2 5 0 2 9 2 0 solusi

Contoh: Petani, Sayur, dan Kambing Seorang gpetani akan menyeberangkan seekor kambing, seekor serigala, dan sayur-sayuran dengan sebuah boat yang melalui sungai. Boat hanya bisa memuat petani dan satu penumpang yang lain (kambing, serigala atau sayur-sayuran) sayuran). Jika ditinggalkan oleh petani tersebut, maka sayur-sayuran akan dimakan oleh kambing, dan kambing akan dimakan oleh serigala.

Penyelesaian Identifikasi ruang keadaan Permasalahan ini dapat dilambangkan dengan (JumlahKambing, JumlahSerigala, l JumlahSayuran, JumlahBoat). Sebagai contoh: Daerah asal (0,1,1,1) berarti pada daerah asal tidak ada kambing, ada serigala, ada sayuran, dan ada boat. Keadaan Awal Daerahasal:(1111) asal: (1,1,1,1) Daerah seberang: (0,0,0,0) Tujuan Daerah asal: (0000) (0,0,0,0) Daerah seberang: (1,1,1,1)

Aturan-aturan Aturan ke- Aturan 1. Kambing menyeberang 2. Sayuran menyeberang 3. Serigala menyeberang 4. Kambing kembali 5. Sayuran kembali 6. Serigala kembali 7. Boat kembali

Salah satu solusi: Daerah Asal Daerah Seberang Aturan yang dipakai (1,1,1,1) (0,0,0,0) 1 (0,1,1,0) (1,0,0,1) 7 (0,1,1,1) (1,0,0,0) 3 (0,0,1,0) (1,1,0,1) 4 (1011) (1,0,1,1) (0100) (0,1,0,0) 2 (1,0,0,0) (0,1,1,1) 7 (1001) (1,0,0,1) (0110) (0,1,1,0) 1 (0,0,0,0) (1,1,1,1) solusi

Metode Pencarian & pelacakan Pencarian Buta (Blind Search) Breadth-First Search Depth-First Search Pencarian Terbimbing (Heuristics Search) Generate & Test Hill Climbing Best-First Search Tabu Search Simulated Annealing

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

A B C D E F G H I J K L M

Keuntungan: Tidak akan menemui jalan buntu. Jika ada satu solusi, maka breadth-first search akan menemukannya. Dan jika ada lebih dari satu solusi, maka solusi minimum akan ditemukan. Kelemahan: Membutuhkan memori yang cukup banyak, karena menyimpan semua node dalam satu pohon. Membutuhkan waktu yang cukup lama, karena akan menguji n level untuk mendapatkan solusi pada level yang ke-(n+1)

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

A B C

Keuntungan Membutuhkan memori yang relatif kecil, karena hanya node-node pada lintasan yang aktif saja yang disimpan. Secara kebetulan, metode depth-first search akan menemukan solusi tanpa harus menguji labih banyak lagi dalam ruang keadaan. Kelemahan Memungkinkan tidak ditemukannya tujuan yang diharapkan. Hanya akan mendapatkan 1 solusi pada setiap pencarian.

Pencarian Heuristik Kasus 8-puzzle Keadaan Awal 1 2 3 7 8 4 6 5 Tujuan 1 2 3 8 4 7 6 5

Operator Ubin kosong ggeser ke kanan Ubin kosong geser ke kiri Ubin kosong geser ke atas Ubin kosong geser ke bawah Langkah awal Tujuan 1 2 3 8 4 1 2 3 7 8 4 7 6 5 kiri 6 5 kanan atas 1 2 3 7 8 4 1 2 3 7 8 4 1 2 3 7 4 6 5 6 5 6 8 5

Nilai heuristik Untuk jumlah ubin yang menempati posisi yang benar jumlah yang lebih tinggi adalah yang lebih diharapkan (lebih baik) Tujuan 1 2 3 1 2 3 8 4 7 8 4 7 6 5 kiri 6 5 kanan atas 1 2 3 1 2 3 1 2 3 7 8 4 7 8 4 7 4 6 5 6 5 6 8 5 h=6 h=4 h=5

Untuk jumlah ubin yang menempati posisi yang salah jumlah yang lebih kecil adalah yang diharapkan (lebih baik). Tujuan 1 2 3 8 4 1 2 3 7 8 4 7 6 5 kiri 6 5 kanan atas 1 2 3 7 8 4 1 2 3 7 8 4 1 2 3 7 4 6 5 6 5 6 8 5 h=2 h=4 h=3

Menghitung total gerakan yang diperlukan untuk mencapai tujuan jumlah yang lebih kecil adalah yang diharapkan (lebih baik). Tujuan 1 2 3 8 4 1 2 3 7 8 4 7 6 5 kiri 6 5 kanan atas 1 2 3 7 8 4 1 2 3 7 8 4 1 2 3 7 4 6 5 6 5 6 8 5 h=2 h=4 h=4

Generate & Test Pada prinsipnya metode ini merupakan penggabungan antara depth-first search dengan pelacakan mundur (backtracking), yaitu bergerak ke belakang menuju pada suatu keadaan awal. Algoritma: 1. Bangkitkan suatu kemungkinan solusi (membangkitkan suatu titik tertentu t t atau lintasan tertentu t t dari keadaan awal). 2. Uji 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.

Kasus: Traveling Salesman Problem (TSP). Seorang salesman ingin mengunjungi n kota. Jarak antara tiap-tiap kota sudah diketahui. Ingin diketahui rute terpendek dimana setiap kota hanya boleh dikunjungi tepat 1 kali. A 8 B 3 4 7 5 D 6 C

Generate & test akan membangkitkan semua solusi yang mungkin: A B C D A B D C A C B D A C D B, dll A B C D B C D C D B D C B D C D B B C

Alur pencarian Pencarian ke- Lintasan Panjang Lintasan Lintasan terpilih Panjang 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

Pencarian ke- Lintasan Panjang Lintasan Lintasan terpilih Panjang Lintasan terpilih 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. DACD 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

Salah satu kelemahan dari metode generate & test ini i adalah perlu membangkitkan k semua kemungkinan sebelum dilakukan pengujian, sehingga membutuhkan waktu yang cukup besar dalam pencariannya.

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.

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

Kasus: TSP Operator Tukar kota ke-i dengan kota ke-j (Tk i,j) Untuk 4 kota: Tk 1,2 : tukar kota ke-1 dengan kota ke-2. Tk 1,3 : tukar kota ke-1 dengan kota ke-3. Tk 1,4 : tukar kota ke-1 dengan kota ke-4. Tk 2,3 : tukar kota ke-2 dengan kota ke-3. Tk 2,4 : tukar kota ke-2 dengan kota ke-4. Tk 3,4 : tukar kota ke-3 dengan kota ke-4. Untuk N kota, akan ada operator sebanyak: 2! ( N! N 2 )!

(19) ABCD Tk 1,2 Tk 1,3 Tk 2,3 Tk 3,4 Tk 4,1 Tk 2,4 (17) BACD ACBD ABDC DBCA ABDC Tk 1,2 (15) Tk 2,3 Tk 3,4 Tk 4,1 Tk 2,4 Tk 1,3 ABCD BCAD BADC DACB BDCA CABD CBAD Tk 1,2 Tk 2,3 Tk 3,4 Tk 4,1 Tk 2,4 Tk 1,3 (20) (18) (19) (14) CBAD BACD BCDA DCAB BDAC ACBD Tk 1,2 Tk 2,3 Tk 3,4 Tk 4,1 Tk 2,4 Tk 1,3 (15) (21) (13) DBAC BADC BDCA CDAB BCAD ADBC Tk 1,2 Tk 2,3 Tk 3,4 Tk 4,1 Tk 2,4 Tk 1,3 (12) DBCA BCDA BDAC BDAC CBAD ADCB Tk 1,2 Tk 2,3 Tk 3,4 Tk 4,1 Tk 2,4 Tk 1,3 (19) (15) (13) (15) (16) BDCA DCBA DBAC ACDB DACB CBDA

Apabila hanya digunakan 4 operator saja: (19) ABCD (17) Tk 1,2 Tk 2,3 Tk 3,4 Tk 4,1 BACD ACBD ABDC DBCA Tk 3,4 Tk 1,2 Tk 2,3 Tk 4,1 (15) ABCD BCAD BADC DACB Tk 3,4 Tk 1,2 Tk 2,3 (20) (17) (18) Tk 4,1 (17) CBAD BACD BCDA DCAB

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

Steepest Ascent Hill Climbing Steepest-ascent hill climbing sebenarnya hampir sama dengan simple hill climbing, hanya saja gerakan pencarian tidak dimulai dari posisi paling kiri. Gerakan selanjutnya dicari berdasarkan nilai heuristik terbaik. Dalam hal ini urutan penggunaan operator tidak menentukan penemuan solusi.

Algoritma Mulai dari keadaan awal, lakukan pengujian: jika merupakan tujuan, maka berhenti; dan jika tidak, lanjutkan dengan keadaan sekarang sebagai keadaan awal. Kerjakan hingga tujuan tercapai atau hingga iterasi tidak memberikan perubahan pada keadaan sekarang. Tentukan SUCC sebagai nilai heuristic terbaik dari successor-successor. Kerjakan untuk tiap operator yang digunakan oleh keadaan sekarang: Gunakan operator tersebut t 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. Jika SUCC lebih baik daripada nilai heuristic keadaan sekarang, ubah node SUCC menjadi keadaan sekarang.

Kasus: TSP (17) BACD (19) ABCD Tk 1,2 Tk 1,3 Tk 2,3 Tk Tk Tk 2,4 (12) (18) 3,4 4,1 (12) (18) (20) ACBD ABDC DBCA ADCB CBAD Tk 1,2 Tk Tk Tk 2,4 Tk 1,3 (15) Tk 2,3 (19) (13) 3,4 4,1(19) (16) (15) CABD ABCD ACDB DCBA ADBC BCAD

Pada steepest-ascent hill climbing ini, ada 3 masalah yang mungkin, yaitu: Local optimum: keadaan semua tetangga lebih buruk atau sama dengan keadaan dirinya. Plateau: keadaan semua tetangga sama dengan keadaan dirinya. Ridge: local optimum yang lebih disebabkan karena ketidakmampuan k untuk menggunakan 2 operator sekaligus.

Best-First Search Metode best-first search ini merupakan kombinasi dari metode depth-first search dan metode breadth-first search dengan mengambil kelebihan dari kedua metode tersebut. Apabila pada pencarian dengan metode hill climbing tidak diperbolehkan dpeboe utu untuk kembali ke node odepadaeeyageb level yang lebih rendah meskipun node pada level yang lebih rendah tersebut memiliki nilai heuristik yang lebih baik, lain halnya dengan metode best-first search ini. Pada metode best-first search, pencarian diperbolehkan mengunjungi node yang ada di level yang lebih rendah, jika ternyata node pada lebih yang lebih tinggi ternyata memiliki nilai heuristik yang lebih buruk.

Algoritma: Tempatkan node awal A pada antrian OPEN. Kerjakan langkah-langkah berikut hingga tujuan ditemukan atau antrian OPEN sudah kosong: Ambil node terbaik dari OPEN; Bangkitkan semua successornya; Untuk tiap-tiap successor kerjakan: Jika node tersebut belum pernah dibangkitkan sebelumnya, evaluasi node tersebut dan masukkan ke OPEN; Jika node tersebut sudah pernah dibangkitkan sebelumnya, ubah parent jika lintasan baru lebih menjanjikan. Hapus node tersebut dari antrian OPEN.

A A Antrian OPEN [A] [D,C,B] B C D 3 5 7 A B C D 3 5 E F 2 4 A [C,F,B,E] [G,F,B,E,H] B C D 3 G H E F 5 1 2 4

Tabu Search Tabu Search merupakan suatu metode optimasi yang menggunakan short-term memory untuk menjaga agar proses pencarian tidak terjebak pada nilai optimum lokal. Metode ini menggunakan Tabu List untuk menyimpan sekumpulan solusi yang baru saja dievaluasi. Selama proses optimasi, pada setiap iterasi, solusi yang akan dievaluasi akan dicocokkan terlebih dahulu dengan isi Tabu List untuk melihat apakah solusi tersebut sudah ada pada Tabu List. Apabila solusi tersebut sudah ada pada Tabu List, maka solusi tersebut tidak akan dievaluasi lagi pada iterasi berikutnya. Apabila sudah tidak ada lagi solusi yang tidak menjadi anggota Tabu List, maka nilai terbaik yang baru saja diperoleh merupakan solusi yang sebenarnya.

Algoritma: Tetapkan: X = Matriks input berukuran nxm. MaxItr = maksimum iterasi. S = bangkitkan solusi secara random. GlobalMin = FCost(S). Best = S. TabuList = []. Kerjakan dari k=1 sampai MaxItr: BestSoFar = FCost(S). BestMove = S. Kerjakan dari i=1 sampai (n-1):

Kerjakan dari j=i sampai n: L = Tukar(S[i],S[j]). S[j]) Cost = FCost(L). Jika (L TabuList) atau (Cost < GlobalMin), kerjakan: Jika (Cost < BestSoFar), kerjakan BestSoFar = Cost. BestMove = L. S = BestMove. Tambahkan S ke TabuList. Jika BestSoFar < GlobalMin, lmi kerjakan: k GlobalMin = BestSoFar. Best = BestMove. Contoh

Simulated Annealing Ide dasar simulated annealing terbentuk dari pemrosesan logam. Annealing (memanaskan kemudian mendinginkan) dalam pemrosesan logam ini adalah suatu proses bagaimana membuat bentuk cair berangsur-angsur menjadi bentuk yang lebih padat seiring dengan penurunan temperatur. Simulated annealing biasanya digunakan untuk penyelesaian masalah yang mana perubahan keadaan dari suatu kondisi ke kondisi yang lainnya membutuhkan ruang yang sangat luas, misalkan perubahan gerakan dengan menggunakan permutasi pada masalah Travelling Salesman Problem. Pada simulated annealing, ada 3 parameter yang sangat menentukan, yaitu: tetangga, gain, temperatur, pembangkitan bilangan random.

Algoritma Evaluasi keadaan awal. Jika keadaan awal merupakan tujuan, maka pencarian berhasil dan KELUAR. Jika tidak demikian, lanjutkan dengan menetapkan keadaan awal sebagai kondisi sekarang. Inisialisasi BEST_SO_FAR untuk keadaan sekarang. Inisialisasi T sesuai dengan annealing schedule. Kerjakan hingga solusi ditemukan atau sudah tidak ada operator baru lagi akan diaplikasikan ke kondisi sekarang. Gunakan operator yang belum pernah digunakan tersebut untuk menghasilkan kondisi baru. Evaluasi kondisi yang baru dengan menghitung: E E = nilai i sekarang nilai i keadaan baru. Jika kondisi baru merupakan tujuan, maka pencarian berhasil dan KELUAR. Jika bukan tujuan, namun memiliki nilai yang lebih baik daripada kondisi sekarang, maka tetapkan kondisi baru sebagai kondisi sekarang. Demikian pula tetapkan BEST_SO_FAR untuk kondisi yang baru tadi. Jika nilai kondisi baru tidak lebih baik dari kondisi sekarang, maka tetapkan kondisi baru sebagai kondisi sekarang dengan probabilitas: E / T p' = e Langkah ini biasanya dikerjakan dengan membangkitkan suatu bilangan random r pada range [0 1]. Jika r < p, maka perubahan kondisi baru menjadi kondisi sekarang diperbolehkan. Namun jika tidak demikian, maka tidak akan dikerjakan apapun. Perbaiki T sesuai dengan annealing scheduling. BEST_SO_FAR SO adalah jawaban yang dimaksudkan.

Secara umum ada 3 hal pokok pada simulated annealing, yaitu: a. Nilai awal untuk temperatur (T0). Nilai T0 biasanya ditetapkan cukup besar (tidak mendekati nol), karena jika T mendekati 0 maka gerakan simulated annealing akan sama dengan hill climbing. Biasanya temperatur awal ini ditetapkan sebesar 2 kali panjang suatu jalur yang dipilih secara acak. b. Kriteria yang digunakan untuk memutuskan apakah temperatur sistem seharusnya dikurangi. c. Berapa besarnya pengurangan temperatur dalam setiap waktu.

Pseudocode Function PjgJalur(L,X,Y): real; Panjang = 0; For i=1 to(nc-1) do Panjang = Panjang + ((XL(i+1) XL(i)) 2 + (YL(i+1) YL(i)) 2 ); PjgJalur = Panjang;

Function T0(MTemp:integer): real; LMax = 0; For i=1 to MTemp do LA = ambil jalur sembarang Len = PjgJalur(LA) If Len > LMax then LMax = Len T0 = 2*LMax

Function JalurBaru(L): arraync; Bangkitkan 2 bilangan random N1 dan N2 antara 1 sampai NC dengan N1 < N2 Depan = L(1) sampai L(N1-1); 1); Tengah = L(N1) sampai L(N2); Belakang = L(N2+1) sampai L(NC); Bangkitkan bilangan random r. If r < 0,5 then DepanBaru = Depan. TengahBaru(1..NT) = Tengah(NT..1); dengan NT=N2- N1+1. BelakangBaru = Belakang. Lbaru = [DepanBaru TengahBaru BelakangBaru]

else Sementara = [Depan Belakang]; dengan M elemen. Bangkitkan bilangan random r dengan nilai antara 1 sampai M. DepanBaru = Sementara(1..r). TengahBaru = Tengah. BelakangBaru = Sementara(r+1..M). Lbaru = [DepanBaru TengahBaru BelakangBaru] JalurBaru = LBaru

Procedure SimulatedAnneal (MTemp:integer; NC:integer; X,Y:real; MItr:integer; MSukses:integer; dect:real); T = T0(MTemp); L = [1 2 3 NC]; MaxIterasi = MItr*NC; MaxSukses = MSukses*NC; JalurTerpendek = L; PjgJalurTerpendek = PjgJalur(L); Sukses = 1; While Sukses > 0 Sukses = 0; MinPjgJalur = PjgJalur(L); For i=1 to MaxIterasi do Jalur = JalurBaru(L); Pjg = PjgJalur(Jalur); l

If Pjg < MinPjgJalur then MinPjgJalur = Pjg; Lbaru = Jalur; Sukses = Sukses +1; If MinPjgJalur < PjgJalurTerpendek then PjgJalurTerpendek = MinPjgJalur; JalurTerpendek = Lbaru; If Sukses = MaxSukses then BREAK; else Bangkitkan bilangan random r; If r < e -(Pjg-MinPjgJalur)/T then Lbaru=Jalur; L = Lbaru; T = dect * T;

Kasus: TSP Operator Ada beberapa operator yang bisa digunakan. Berikut ini adalah salah satu contoh operator untuk menentukan jalur. Misalkan jumlah kota yang akan dikunjungi adalah NC. Kota-kota disimpan pada larik L. Bangkitkan 2 bilangan random antara 1 sampai NC, misalkan kedua bilangan itu adalah N1 dan N2 dengan N1 < N2. Depan = L(1) sampai L(N1-1). Tengah = L(N1) sampai L(N2). Belakang = L(N2+1) sampai L(NC). Bangkitkan bilangan random r, apabila r < 0,5; maka: DepanBaru = Depan. TengahBaru = Tengah dengan urutan dibalik. BelakangBaru B = Belakang. Lbaru = [DepanBaru TengahBaru BelakangBaru] Jika r 0,5; maka kerjakan: Sementara = [Depan Belakang], misalkan memiliki M elemen. Bangkitkan bilangan random r dengan nilai antara 1 sampai M. DepanBaru = Sementara(1:r). TengahBaru = Tengah. BelakangBaru = Sementara(r+1:M). Lbaru = [DepanBaru TengahBaru BelakangBaru]

Misalkan jalur yang ada adalah: L = [4 3 6 9 11 2 5 1 7 8 12 10] NC=12 Bangkitkan bilangan random, misal: N1=4 dan N2=10. Didapatkan: Depan = [4 3 6]. Tengah = [9 11 2 5 1 7 8]. Belakang = [12 10]. Bangkitkan bilangan random r, apabila r < 0,5; maka: DepanBaru = [4 3 6]. TengahBaru = [8 7 1 5 2 11 9]. BelakangBaru = [12 10]. Lbaru = [4 3 6 8 7 1 5 2 11 9 12 10] Jika r 0,5; maka kerjakan: Sementara = [4 3 6 12 10], M=5. Bangkitkan bilangan random r, misal r=2. DepanBaru = [4 3]. TengahBaru = [9 11 2 5 1 7 8]. BelakangBaru = [6 12 10]. Lbaru = [4 3 9 11 2 5 1 7 8 6 12 10] Contoh