ARTIFICIAL INTELLIGENCE
SEARCHING
REASONING
PLANNING
LEARNING
mempertimbangkan aksi-aksi yang akan datang dan hasil yang ingin dicapai Pemecahan masalah oleh agen (Problem-Solving Agents) merupakan salah satu macam Goal-based agent Pemecahan masalah oleh Agen yaitu dengan cara menemukan urutan aksi-aksi untuk mencapai tujuan
Ukuran performansi
Formulasi Masalah
Proses Menemukan state dan aksi-aksi yang akan
Pencarian
input problem, output solusi dalam bentuk urutan aksi-
aksi
melakukan pencarian dengan aksi-aksi yang berurutan yang akan menyelesaikan masalah, dan menjalankan aksi-aksi pada suatu waktu. Jika selesai merumuskan tujuan lain dan ulangi lagi.
Successor-Fn(x) = <Action,Successor>
Goal Test (menentukan tujuan/goal state) Path Cost (nilai dari solusi path atau urutan state/aksi
Contoh Kasus
Agen kita sedang berlibur dan sekarang sedang di
kota Arad Romania Besok dia harus naik pesawat dari Bucharest Tujuan (Goal) dari agen sekarang adalah pergi ke Bucharest Aksi yang tidak berhubungan dengan tujuan akan dibuang keputusan agen lebih sederhana
Contoh Kasus
Agen Mencapai tujuan (ke Bucharest) dengan naik
yang tercepat) tapi hanya memiliki peta. Dari informasi peta, dilakukan hipotesa terhadap ketiga jalur tsb untuk sampai ke Bucharest
{<Go(Sibiu),In(Sibiu)>, <Go(Timisoara),In(Timisoara)>,<Go(Zerin d),In(Zerind)>} Goal Test {In(Bucharest)} Path Cost 418 (Arad-Sibiu-Rimicu Vilcea-PitestiBucharest)
Contoh Lain :
Toy Problem
Diharapkan bisa mengilustrasikan berbagai macam metode problem-
solving Membandingkan performa algoritma Akan dibahas untuk kasus : vacum cleaner, 8-puzle, 8-Queen Problem
Airline Travel Problem Touring Problem Traveling Salesman Problem VLSI Layout Robot Navigation Automatic Assembly Sequencing Internet Searching
Toy Problem
Vacuum Cleaner
States : Berada di salah satu dari dua lokasi yang ada, yg masing2 mungkin bersih atau kotor. Jadi jml kemungkinan state = 2 * 22 Initial State ? Successor Function ? . Goal Test ? Path Cost ?
Toy Problem
Vacuum Cleaner
States : Berada di salah satu dari
dua lokasi yang ada, yg masing2 mungkin bersih atau kotor. Jadi jml kemungkinan state = 2 * 22 Initial State : sembarang state Successor Function : (kekiri,kekanan,bersihkan) Goal Test : Semua lokasi bersih Path Cost : jumlah aksi-aksi yang paling sedikit dilakukan. Setiap aksi = 1 point
Toy Problem
The 8-Puzzles
State :
Toy Problem
The 8-Puzzles
State : lokasi dari 8 kotak angka dan 1 kotak kosong Initial State : sembarang state Successor Function : (kotak kosong bergerak kekiri, kekanan,
keatas atau kebawah) Goal Test : Tersusun kotak angka yang diinginkan Path Cost : Setiap bergerak bernilai 1
Toy Problem
8-Queen Problem
State : ? Initial State : ? Successor
. . . .
8-Queen Problem
Toy Problem
State : susunan 0..8 ratu pada
papan catur Initial State : Tidak ada ratu pada papan catur Successor Function : Masukkan ratu ke papan catur Goal Test : Tidak ada ratu yang saling serang
Latihan
Tentukan initial state, goal test, successor function dan cost
function pada tiap permasalahan dibawah ini: Kamu harus mewarnai peta hanya menggunakan 4 warna, dimana tidak diperbolehkan 2 kota yang bertetanggaan (berhubungan) mempunyai warna yang sama Ada sebuah monyet dengan tinggi 3 kaki berada disuatu ruangan, pada ruangan tersebut terdapat beberapa pisang yang terletak di atap dengan ketinggian 8 kaki dari lantai. Monyet tersebut akan mengambil pisang tersebut. Pada ruangan tersebut terdapat 2 peti kayu. Dan monyet tsb bisa memanjat dan melompat meraih pisang. Kamu mempunyai 3 tempat air, dengan ukuran 12 galon, 8 galon dan 3 galon dan air. Kamu dapat menakar air dari galon satu ke galon lainnya sampai mendapatkan air tepat berukuran satu galon
Metode Pencarian
Terdapat banyak metode yang telah diusulkan.
jenis : 1. Pencarian buta / tanpa informasi (blind / un-informed search) 2. Pencarian heuristik / dengan informasi (heuristic atau informed search)
setiap metode mempunyai karakteristik yang berbeda-
Heuristic Searching
Sebagai Dasar dari Kecerdasan Buatan
Para peneliti awal kecerdasan buatan menitik beratkan
pada penyelesaian masalah yang tidak menggunakan metoda komputasi konvensional. konvensional tidak dapat lagi digunakan.
Hal ini disebabkan metoda pemecahan masalah Permasalahan pada sistem KB tidak memiliki algoritma
yang mirip dengan cara yang digunakan oleh manusia untuk menyelesaikan masalah dan dapat diimplementasikan pada komputer.
Searching dalam sebuah struktur data telah menjadi dasar bagi algoritma komputer, tetapi proses searching pada KB memiliki perbedaan. Metoda searching pada KB merupakan searching terhadap problem space bukan searching data (e.g., angka, karakter, string) tertentu.
Proses searching ini berupa jalur yang menggambarkan keadaan awal sebuah masalah
menuju kepada penyelesaian masalah yang diinginkan (i.e., the solved problem).
Jalur-jalur ini mengambarkan langkah-langkah
penyelesaian masalah.
Melalui proses searching menuju sebuah penyelesaian akan terbentuk sebuah solution
space.
Perhatikan contoh penyelesaian masalah komputer pada Gambar 1.4. Langkah pertama untuk mengetahui apakah
komputer dapat digunakan atau tidak adalah men-switch ON. Selanjutnya dengan melakukan inspeksi terhadap kondisi lampu indikator kita dapat menentukan langkah berikutnya. Misalnya kondisi lampu OFF. Dengan melakukan searching terhadap problem space kita akan tiba pada sebuah penyelesaian masalah agar komputer dapat diaktifkan kembali.
Breadth-First Search (BFS) Depth-First Search (DFS) Depth-Limited Search (DLS) Uniform Cost Search (UCS) Iterative-Deepening Search (IDS) Bi-Directional Search (BDS)
1. Breadth-first Search
Breadth-first search (BFS) melakukan proses
searching pada semua node yang berada pada level atau hirarki yang sama terlebih dahulu sebelum melanjutkan proses searching pada node di level berikutnya. Urutan proses searching BFS ditunjukkan dalam Gambar 1.6 adalah: A,B,C,D,E,F,
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
optimal)
Jika ada satu solusi, maka breadth-first search akan
menemukannya. Dan jika ada lebih dari satu solusi, maka solusi minimum akan ditemukan.
menyimpan semua node dalam satu pohon (membutuhkan simpul yam umumnya relatif banyak)
Membutuhkan waktu yang cukup lama, karena akan
2. Depth-first Search
Depth-first search (DFS) adalah proses searching
sistematis buta yang melakukan ekpansi sebuah path (jalur) menuju penyelesaian masalah sebelum melakukan ekplorasi terhadap path yang lain. Proses searching mengikuti sebuah path tunggal sampai menemukan goal atau dead end. Apabila proses searching menemukan dead-end, DFS akan melakukan penelusuran balik ke node terakhir untuk melihat apakah node tersebut memiliki path cabang yang belum dieksplorasi.
tersebut. Apabila sudah tidak ada lagi cabang yang dapat dieksplorasi, DFS akan kembali ke node parent dan melakukan proses searching terhadap cabang yang belum dieksplorasi dari node parent sampai menemukan penyelesaian masalah.
dengan BFS yang harus menyimpan semua node yang pernah dibangkitkan. Jika solusi yang dicari berada pada level yang dalam dan paling kiri, maka DFS akan menemukannya secara cepat.
yang dalam (tak terhingga), maka tidak ada jaminan untuk menemukan solusi (Tidak Complete). Jika terdapat lebih dari satu solusi yang sama tetapi berada pada level yang berbeda, maka pada DFS tidak ada jaminan untuk menemukan solusi yang paling baik (Tidak Optimal).
(tidak complete) dengan membatasi kelemahan maksimum dari suatu jalur solusi.
Tetapi, sebelum menggunakan DLS, kita harus tahu
Definisi
Algoritma Depth-Limited Search (DLS), adalah salah
satu jenis algoritma pencarian solusi. Algoritma ini dijalankan dengan cara membangkitkan pohon pencarian secara dinamis. Pencarian solusi dilakukan secara mendalam.
Pada dasarnya, algoritma DLS sama dengan algoritma
DFS, hanya saja dalam permasalahan penelusuran graf, sebelumnya ditentukan terlebih dahulu batas maksimum level yang dikunjungi.
Algoritma
Misalkan terdapat graf/pohon dengan n buah simpul dan v merupakan
1.
Kunjungi simpul v.
2.
3.
Kunjungi simpul w yang bertetangga dengan simpul v, yang berada di kedalaman pohon <= batas.
4.
5.
Ketika mencapai simpul u sedemikian sehingga semua simpul yang bertetangga dengannya telah dikunjungi, pencarian dirunut-balik (backtrack) ke simpul terakhir yang dikunjungi sebelumnya dan mempunyai simpul w yang belum dikunjungi.
6.
Pencarian berakhir bila tidak ada lagi simpul yang belum dikunjungi yang dapat dicapai dari simpul yang telah dikunjungi dalam kedalaman pohon <= batas.
complete) dengan membatasi kedalaman maksimum dari suatu jalur solusi. Tetapi harus diketahui atau ada batasan dari sistem tentang level maksimum. Jika batasan kedalaman terlalu kecil, DLS tidak complete.
Contoh 1
Bila simpul awal adalah 1 dan batas kedalaman adalah 3 maka urutan dikunjunginya adalah 1, 2, 4, 5, 3, 6,7.
Contoh 2
Bila simpul awal juga 1 dan batas kedalaman adalah 3 maka urutan dikunjunginya adalah 1, 2, 5, 6, 3, 7, 4
baik, hal ini disebabkan waktu aksesnya yang cukup lama serta besarnya memori yang dibutuhkan. Kelemahan ini sebenarnya dapat diatasi jika ada informasi tambahan (fungsi heuristik) dari domain yang bersangkutan.
efisiensi dalam proses pencarian, namun dengan kemungkinan mengorbankan kelengkapan (completeness). Untuk dapat menerapkan heuristik tersebut dengan baik dalam suatu domain tertentu, diperlukan suatu Fungsi Heuristik. Fungsi heuristik digunakan untuk menghitung path cost suatu node tertentu menuju ke node tujuan.
Fungsi Heuristik
Kasus 8-puzzle Ada 4 operator yang dapat digunakan untuk menggerakkan dari satu keadaan (state) ke keadaan yang baru.
Geser ubin kosong ke kiri Geser ubin kosong ke kanan Geser ubin kosong ke atas Geser ubin kosong ke bawah
yang menempati posisi yang benar. Jumlah yang lebih tinggi adalah yang diharapkan. Sehingga langkah selanjutnya yang harus dilakukan adalah menggeser ubin kosong ke kiri.
Informasi yang diberikan berupa straight-line distance (jarak dalam garis lurus) antara tiap kota dengan Bucharest.
4.
5. 6.
Generate and Test (Pembangkit dan Pengujian) Hill Climbing (Pendakian Bukit) Best First Search (Pencarian Terbaik Pertama) Simulated Annealing A* Djikstra
solusi yang mungkin. Test, yang menguji solusi yang dibangkitkan tersebut.
Algoritma GT menggunakan prosedur Depth First Search karena suatu solusi harus dibangkitkan secara lengkap sebelum dilakukan Test.
dimungkinkan dapat dilakukan secara sistematis, maka prosedur ini akan dapat segera menemukan solusinya, (bila ada). Namun, jika ruang problema sangat besar, maka proses ini akan membutuhkan waktu yang lama. Metode generate and test ini kurang efisien untuk masalah yang besar atau kompleks
kota. Akan dicari rute terpendek di mana setiap kota hanya boleh dikunjungi tepat 1 kali. Jarak antara tiap-tiap kota sudah diketahui. Misalkan ada 4 kota dengan jarak antara tiap-tiap kota seperti terlihat pada gambar berikut.
A
3
8 4
B
5
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
keadaan awal adalah lintasan ABCD dengan panjang lintasan = 18. Kemudian kita lakukan backtracking untuk mendapatkan lintasan ABDC dengan panjang lintasan = 19.
ternyata ABDC > ABCD, sehingga lintasan terpilih adalah ABCD. Kita lakukan lagi backtracking untuk mendapatkan lintasan ACBD (=16), ternyata ACBD < ABCD, maka lintasan terpilih sekarang adalah ACBD. Demikian seterusnya hingga ditemukan solusi yang sebenarnya. Salah satu kelemahan dari metode ini adalah perlunya dibangkitkan semua kemungkinan solusi sehingga membutuhkan waktu yang cukup besar dalam pencariannya.
untuk menyelesaikan solusi tersebut. Solusi awal adalah solusi terbaik. Analisa solusi berikutnya. Jika jarak dari solusi berikutnya lebih pendek dari pada jarak solusi sebelumnya, maka solusi berikutnya adalah solusi terbaik. Lakukan sampai seluruh solusi selesai dianalisa