Presentasi sedang didownload. Silahkan tunggu

Presentasi sedang didownload. Silahkan tunggu

Penyelesaian Problem Dengan Pencarian (Blind / Un-Informed Searching) Imam Cholissodin, S.Si., M.Kom. Kecerdasan Buatan/ Artificial Intelligence.

Presentasi serupa


Presentasi berjudul: "Penyelesaian Problem Dengan Pencarian (Blind / Un-Informed Searching) Imam Cholissodin, S.Si., M.Kom. Kecerdasan Buatan/ Artificial Intelligence."— Transcript presentasi:

1 Penyelesaian Problem Dengan Pencarian (Blind / Un-Informed Searching) Imam Cholissodin, S.Si., M.Kom. Kecerdasan Buatan/ Artificial Intelligence

2 Pokok Bahasan 1.Agen penyelesaian problem 2.Jenis problem/masalah 3.Formulasi problem 4.Contoh problem 5.Strategi pencarian uninformed 6.Algoritma pencarian dasar (BFS & DFS) 7.Robot With AI 8.Latihan Individu + Tugas Kelompok

3 Agen Penyelesaian Problem  Agen pemecahan masalah adalah jenis agen berbasis tujuan.  Memutuskan apa yang harus dilakukan dengan mencari urutan tindakan yang mengarah pada keadaaan (states) yang diinginkan.  Formulasi Goal.  Perumusan masalah.  Search  mengambil masalah sebagai masukan dan solusi pengembalian dalam bentuk urutan tindakan.  Implementasi / Eksekusi.

4 Agen Penyelesaian Problem  Penjelasan : o Percept : persepsi yang ada o Seq : urutan tindakan o State : deskripsi dari keadaan lingkungan sekitar o Goal : tujuan yang dicapai o Problem : perumusan masalah

5 Agen Penyelesaian Problem  Contoh : Romania o Berlibur ke Rumania, saat ini berada di Arad. o Penerbangan (keberangkatan) dilakukan besok dari Bucharest o Merumuskan tujuan (Formulate goal) :  Berada di Bucharest o Merumuskan masalah (Formulate problem) :  States : berbagai kota sebagai alternatif tempat yang akan dilalui  Actions : drive antara kota o Cari solusi (Find solution) :  Urutan kota yang dilalui untuk mencapai tujuan. Misalnya ; Arad, Sibiu, Fagaras, Bucharest

6 Jenis Problem/Masalah  Deterministic, fully observable  Single-state problem o Agen tahu persis keadaan sesuatu yang akan diamati.  Non-observable  Sensorless problem (conformant problem) o Agen mungkin tidak mengetahui dimana keberadaan sesuatu yang dicari.  Nondeterministic and/or partially observable  Contingency problem (keadaan yang tidak pasti) o Persepsi yang dapat memberikan informasi baru tentang keadaan saat ini.  Unknown state space  Exploration problem (Masalah eksplorasi)

7 Contoh Problem  Contoh : vacuum world o Single-state, start in #5. Solution?

8 Contoh Problem  Contoh : vacuum world o Single-state, start in #5. Solution? [Right, Suck] o Sensorless, start in {1,2,3,4,5,6,7,8} e.g., Right goes to {2,4,6,8} Solution?

9 Contoh Problem  Contoh : vacuum world o Sensorless, start in {1,2,3,4,5,6,7,8} e.g., Right goes to {2,4,6,8} Solution? [Right,Suck,Left,Suck] o Contingency Nondeterministic: Suck may dirty a clean carpet Partially observable: location, dirt at current location. Percept: [L, Clean], i.e., start in #5 or #7 Solution?

10 Contoh Problem  Contoh : vacuum world o Sensorless, start in {1,2,3,4,5,6,7,8} e.g., Right goes to {2,4,6,8} Solution? [Right,Suck,Left,Suck] o Contingency Nondeterministic: Suck may dirty a clean carpet Partially observable: location, dirt at current location. Percept: [L, Clean], i.e., start in #5 or #7 Solution? [Right, if dirt then Suck]

11 Formulasi Problem  Single-state problem formulation o Suatu problem didefinisikan dalam 4 item : 1.initial state e.g., "at Arad" 2.actions or successor function S(x) = set of action–state pairs   e.g., S(Arad) = {, … } 3.goal test, can be  explicit, e.g., x = "at Bucharest"  implicit, e.g., Checkmate(x) / Skakmat(x) 4.path cost (additive)  Menetapkan besarnya biaya untuk setiap jalur yang ada.  Mis., jumlah jarak tempuh, jumlah tindakan lain yang dilakukan, dll.  c(x, a, y) adalah cost action a dari state x ke state y, diasumsikan ≥ 0.  Solusinya adalah suatu urutan tindakan yang mengarah dari keadaan awal (initial state) ke keadaan tujuan (goal state).  Kualitas suatu solusi dapat diukur dari nilai fungsi biaya (cost function) yang paling minimal dari jalur (path) yang dilalui.

12 Formulasi Problem  Selecting a state space o Dunia nyata luar biasa kompleks dan rumit! State space harus merupakan abstraksi masalah supaya bisa dipecahkan. o State = himpunan “keadaan nyata”. Mis : BeradaDi (Arad ) – dengan siapa? kondisi cuaca? o Action = kombinasi berbagai “tindakan nyata”. Mis : Berangkat(Arad, Sibiu) – jalan tikus, isi bensin, istirahat, dll. o Solution = representasi berbagai “path nyata” yang mencapai tujuan o Abstraksi ini membuat masalah yang nyata lebih mudah dipecahkan.

13 Contoh Problem  Contoh : Vacuum Cleaner World o State: lokasi agent, status debu. o Possible action: DoKeKiri(L), DoKeKanan(R), DoSedot(S). o Goal test: semua ruangan sudah bebas debu. o Path cost: asumsi step cost sama untuk semua action, mis: Path cost = 1 per action. o Successor function mendefinisikan state space sbb:

14 Contoh Problem  Contoh: 8-Puzzle o State: lokasi 8 buah angka dalam matriks 3x3 o Possible action (move, blank) : left, right, up, down o Goal test: apakah konfigurasi angka sudah seperti goal state di atas. o Path cost: asumsi, 1 step cost = 1 per move. Path cost = jumlah langkah dalam path.

15 Contoh Problem  Contoh: 8-Queens Problem Letakkan 8 bidak menteri (queen!) sedemikian sehingga tidak ada yang saling “makan” (menteri bisa makan dalam satu baris, kolom, diagonal). o State: Papan catur dengan n bidak menteri, 0 ≤ n ≤ 8. o Initial state: Papan catur yang kosong. o Possible action: Letakkan sebuah bidak menteri di posisi kosong. o Goal test: 8 bidak menteri di papan, tidak ada yang saling makan. Note : Formulasi yang lebih baik akan melarang menempatkan queen dalam setiap persegi yang sudah diserang.

16 Contoh Problem  Contoh: Robotic assembly (Perakitan Robot) o States: koordinat real-valued bagian sudut sendi robot dari obyek yang akan dirakit. o Actions: gerakan terus menerus dari sendi robot. o Goal test: perakitan telah lengkap (complete assembly). o Path cost: waktu untuk eksekusi (time to execute).

17 Algoritma Pencarian Dasar  Tree search algorithms : o Setelah merumuskan masalah → cari solusinya menggunakan sebuah search algorithm o Search tree merepresentasikan state space. o Search tree terdiri dari kumpulan node: struktur data yang merepresentasikan suatu state pada suatu path, dan memiliki parent, children, depth, dan path cost. o Root node merepresentasikan initial state. o Penerapan successor function terhadap (state yang diwakili) node menghasilkan children baru → ini disebut node expansion. o Kumpulan semua node yang belum di-expand disebut fringe (pinggir) sebuah search tree.

18 Algoritma Pencarian Dasar  Tree search algorithms (Basic idea) : o Mulai dari root node (Arad) sebagai current node. o Lakukan node expansion terhadapnya. o Pilih salah satu node yang di-expand sebagai current node yang baru. Ulangi langkah sebelumnya.

19 Algoritma Pencarian Dasar  Tree search algorithms (Basic idea) : o Mulai dari root node (Arad) sebagai current node. o Lakukan node expansion terhadapnya. o Pilih salah satu node yang di-expand sebagai current node yang baru. Ulangi langkah sebelumnya.

20 Algoritma Pencarian Dasar  Tree search algorithms (Basic idea) : o Mulai dari root node (Arad) sebagai current node. o Lakukan node expansion terhadapnya. o Pilih salah satu node yang di-expand sebagai current node yang baru. Ulangi langkah sebelumnya.

21 Algoritma Pencarian Dasar  Tree search algorithms (Basic idea) : 1.Pada awalnya, fringe = himpunan node yang mewakili initial state. 2.Pilih satu node dari fringe sebagai current node (Kalau fringe kosong, selesai dengan gagal). 3.Jika node tsb. lolos goal test, selesai dengan sukses! 4.Jika tidak, lakukan node expansion terhadap current node tsb. Tambahkan semua node yang dihasilkan ke fringe. 5.Ulangi langkah 2.

22 Algoritma Pencarian Dasar  Tree search algorithms (Basic idea) : 1.Pada awalnya, fringe = himpunan node yang mewakili initial state. 2.Pilih satu node dari fringe sebagai current node (Kalau fringe kosong, selesai dengan gagal). 3.Jika node tsb. lolos goal test, selesai dengan sukses! 4.Jika tidak, lakukan node expansion terhadap current node tsb. Tambahkan semua node yang dihasilkan ke fringe. 5.Ulangi langkah 2.

23 Algoritma Pencarian Dasar  Tree search algorithms (Basic idea) : 1.Pada awalnya, fringe = himpunan node yang mewakili initial state. 2.Pilih satu node dari fringe sebagai current node (Kalau fringe kosong, selesai dengan gagal). 3.Jika node tsb. lolos goal test, selesai dengan sukses! 4.Jika tidak, lakukan node expansion terhadap current node tsb. Tambahkan semua node yang dihasilkan ke fringe. 5.Ulangi langkah 2.

24 Algoritma Pencarian Dasar  Tree search algorithms (Basic idea) : 1.Pada awalnya, fringe = himpunan node yang mewakili initial state. 2.Pilih satu node dari fringe sebagai current node (Kalau fringe kosong, selesai dengan gagal). 3.Jika node tsb. lolos goal test, selesai dengan sukses! 4.Jika tidak, lakukan node expansion terhadap current node tsb. Tambahkan semua node yang dihasilkan ke fringe. 5.Ulangi langkah 2.

25 Algoritma Pencarian Dasar  Implementation: states vs. nodes o Sebuah state merepresentasikan abstraksi keadaan nyata dari masalah. o Sebuah node adalah struktur data yang menjadi bagian dari search tree. o State tidak memiliki parent, children, depth, path cost! o Node = state pada path tertentu. Dua node berbeda bisa mewakili state yang sama!

26 Strategi Pencarian Uninformed  Strategi pencarian : o Terdapat berbagai jenis strategi untuk melakukansearch. o Semua strategi ini berbeda dalam satu hal: urutan dari node expansion. o Search strategy di-evaluasi berdasarkan:  completeness: apakah solusi (jika ada) pasti ditemukan?  time complexity: jumlah node yang di-expand.  space complexity: jumlah maksimum node di dalam memory.  optimality: apakah solusi dengan minimum cost pasti ditemukan? o Time & space complexity diukur berdasarkan  b - branching factor dari search tree  d - depth (kedalaman) dari solusi optimal  m - kedalaman maksimum dari search tree (bisa infinite!)

27 Strategi Pencarian Uninformed  Strategi Pencarian Uninformed : o Uninformed strategy hanya menggunakan informasi dari definisi masalah. o Bisa diterapkan secara generik terhadap semua jenis masalah yang bisa direpresentasikan dalam sebuah state space. o Ada beberapa jenis :  Breadth-first search  Uniform-cost search  Depth-first search  Depth-limited search  Iterative-deepening search

28 Breadth-First Search  Lakukan node expansion terhadap node di fringe yang paling dekat ke root o Implementasi: fringe adalah sebuah queue, data struktur FIFO (First In First Out) o Hasil node expansion (successor function) ditaruh di belakang BFS traversal queue: a bc cde defg efg fg g

29 Breadth-First Search  Lakukan node expansion terhadap node di fringe yang paling dekat ke root o Implementasi: fringe adalah sebuah queue, data struktur FIFO (First In First Out) o Hasil node expansion (successor function) ditaruh di belakang BFS traversal queue: a bc cde defg efg fg g

30 Breadth-First Search  Lakukan node expansion terhadap node di fringe yang paling dekat ke root o Implementasi: fringe adalah sebuah queue, data struktur FIFO (First In First Out) o Hasil node expansion (successor function) ditaruh di belakang BFS traversal queue: a bc cde defg efg fg g

31 Breadth-First Search  Lakukan node expansion terhadap node di fringe yang paling dekat ke root o Implementasi: fringe adalah sebuah queue, data struktur FIFO (First In First Out) o Hasil node expansion (successor function) ditaruh di belakang BFS traversal queue: a bc cde defg efg fg g

32 Breadth-First Search  BFS menggunakan prisip queue (Contoh lain) BFS traversal queue: ab ef cd gh BFS tree: ab ef cd gh a bef efg fg g ch hd d

33 Breadth-First Search  Properties of breadth-first search : o Complete? Ya, jika b terbatas o Time complexity? b + b 2 + b b d + b(b d − 1) = O(b d +1 ) → eksponensial dalam d. o Space complexity? O(b d +1 ), karena semua node yang di-generate harus disimpan. o Optimal? Ya, jika semua step cost sama, tapi pada umumnya tidak optimal. o Masalah utama breadth-first search adalah space :  Mis: 1 node memakan 1000 byte, dan b = 10  Jika d = 6, ada 10 7 node ≈ 10 gigabyte.  Jika d = 12, ada node ≈ 10 petabyte!

34 Depth-First Search  Lakukan node expansion terhadap node di fringe yang paling jauh dari root. o Implementasi: fringe adalah sebuah stack, data struktur LIFO (Last In First Out) o Hasil node expansion ditaruh di depan o Depth-first search sangat cocok diimplementasikan secara rekursif. DFS traversal stack: a ab abd abdh abdi abd ab abe abej abe abek … abe ab a ac acf acfl acf acfm acf ac acg … acgn acg acgo acg ac a null

35 Depth-First Search  Lakukan node expansion terhadap node di fringe yang paling jauh dari root. o Implementasi: fringe adalah sebuah stack, data struktur LIFO (Last In First Out) o Hasil node expansion ditaruh di depan o Depth-first search sangat cocok diimplementasikan secara rekursif. DFS traversal stack: a ab abd abdh abdi abd ab abe abej abe abek … abe ab a ac acf acfl acf acfm acf ac acg … acgn acg acgo acg ac a null

36 Depth-First Search  Lakukan node expansion terhadap node di fringe yang paling jauh dari root. o Implementasi: fringe adalah sebuah stack, data struktur LIFO (Last In First Out) o Hasil node expansion ditaruh di depan o Depth-first search sangat cocok diimplementasikan secara rekursif. DFS traversal stack: a ab abd abdh abdi abd ab abe abej abe abek … abe ab a ac acf acfl acf acfm acf ac acg … acgn acg acgo acg ac a null

37 Depth-First Search  Lakukan node expansion terhadap node di fringe yang paling jauh dari root. o Implementasi: fringe adalah sebuah stack, data struktur LIFO (Last In First Out) o Hasil node expansion ditaruh di depan o Depth-first search sangat cocok diimplementasikan secara rekursif. DFS traversal stack: a ab abd abdh abdi abd ab abe abej abe abek … abe ab a ac acf acfl acf acfm acf ac acg … acgn acg acgo acg ac a null

38 Depth-First Search  Lakukan node expansion terhadap node di fringe yang paling jauh dari root. o Implementasi: fringe adalah sebuah stack, data struktur LIFO (Last In First Out) o Hasil node expansion ditaruh di depan o Depth-first search sangat cocok diimplementasikan secara rekursif. DFS traversal stack: a ab abd abdh abdi abd ab abe abej abe abek … abe ab a ac acf acfl acf acfm acf ac acg … acgn acg acgo acg ac a null

39 Depth-First Search  Lakukan node expansion terhadap node di fringe yang paling jauh dari root. o Implementasi: fringe adalah sebuah stack, data struktur LIFO (Last In First Out) o Hasil node expansion ditaruh di depan o Depth-first search sangat cocok diimplementasikan secara rekursif. DFS traversal stack: a ab abd abdh abdi abd ab abe abej abe abek … abe ab a ac acf acfl acf acfm acf ac acg … acgn acg acgo acg ac a null

40 Depth-First Search  Lakukan node expansion terhadap node di fringe yang paling jauh dari root. o Implementasi: fringe adalah sebuah stack, data struktur LIFO (Last In First Out) o Hasil node expansion ditaruh di depan o Depth-first search sangat cocok diimplementasikan secara rekursif. DFS traversal stack: a ab abd abdh abdi abd ab abe abej abe abek … abe ab a ac acf acfl acf acfm acf ac acg … acgn acg acgo acg ac a null

41 Depth-First Search  Lakukan node expansion terhadap node di fringe yang paling jauh dari root. o Implementasi: fringe adalah sebuah stack, data struktur LIFO (Last In First Out) o Hasil node expansion ditaruh di depan o Depth-first search sangat cocok diimplementasikan secara rekursif. DFS traversal stack: a ab abd abdh abdi abd ab abe abej abe abek … abe ab a ac acf acfl acf acfm acf ac acg … acgn acg acgo acg ac a null

42 Depth-First Search  Lakukan node expansion terhadap node di fringe yang paling jauh dari root. o Implementasi: fringe adalah sebuah stack, data struktur LIFO (Last In First Out) o Hasil node expansion ditaruh di depan o Depth-first search sangat cocok diimplementasikan secara rekursif. DFS traversal stack: a ab abd abdh abdi abd ab abe abej abe abek … abe ab a ac acf acfl acf acfm acf ac acg … acgn acg acgo acg ac a null

43 Depth-First Search  Lakukan node expansion terhadap node di fringe yang paling jauh dari root. o Implementasi: fringe adalah sebuah stack, data struktur LIFO (Last In First Out) o Hasil node expansion ditaruh di depan o Depth-first search sangat cocok diimplementasikan secara rekursif. DFS traversal stack: a ab abd abdh abdi abd ab abe abej abe abek … abe ab a ac acf acfl acf acfm acf ac acg … acgn acg acgo acg ac a null

44 Depth-First Search  Lakukan node expansion terhadap node di fringe yang paling jauh dari root. o Implementasi: fringe adalah sebuah stack, data struktur LIFO (Last In First Out) o Hasil node expansion ditaruh di depan o Depth-first search sangat cocok diimplementasikan secara rekursif. DFS traversal stack: a ab abd abdh abdi abd ab abe abej abe abek … abe ab a ac acf acfl acf acfm acf ac acg … acgn acg acgo acg ac a null

45 Depth-First Search  Lakukan node expansion terhadap node di fringe yang paling jauh dari root. o Implementasi: fringe adalah sebuah stack, data struktur LIFO (Last In First Out) o Hasil node expansion ditaruh di depan o Depth-first search sangat cocok diimplementasikan secara rekursif. DFS traversal stack: a ab abd abdh abdi abd ab abe abej abe abek … abe ab a ac acf acfl acf acfm acf ac acg … acgn acg acgo acg ac a null

46 Depth-First Search  DFS menggunakan prisip stack (Contoh lain) ab ef cd gh DFS traversal stack: DFS tree: ab ef cd gh a ab abf abfe abf ab abg abgc abgcd abgcdh abgcd …

47 Depth-First Search  Properties of depth-first search o Complete? Tidak, bisa gagal jika m tak terbatas, atau state space dengan loop. o Time complexity? O(b m ) → jika m »d, parah! o Space complexity? O(bm) → linear space! o Optimal? Tidak. o Depth-first search mengatasi masalah space :  Mis: 1 node memakan 1000 byte, dan b = 10  Jika d = 12, space yang dibutuhkan hanya 118 kilobyte...  bandingkan dengan 10 petabyte!

48 Variasi Depth-First Search  Backtracking search : lakukan node expansion satu- per-satu. Jika gagal backtrack dan coba nilai successor function yang lain.  Depth-limited search : Batasi kedalaman maksimal yang dilihat adalah k. o Mengatasi masalah untuk state space tak terbatas. o Sayangnya, ada unsur incompleteness baru, jika k < d. o Biasanya d tidak diketahui (tapi bisa ada estimasi, mis. diameter suatu graph).

49 Iterative-Deepening Search  Lakukan depth-limited search secara bertahap dengan nilai k yang incremental.  Strategi ini menggabungkan manfaat depth dan breadth first: space complexity linier dan completeness terjamin!  Lakukan depth-limited search dengan k = 0, 1, 2,... sampai tidak cutoff.

50 Iterative-Deepening Search  Iterative deepening search k =0

51 Iterative-Deepening Search  Iterative deepening search k =1

52 Iterative-Deepening Search  Iterative deepening search k =2

53 Iterative-Deepening Search  Iterative deepening search k =3

54 Iterative-Deepening Search  Properties of Iterative-Deepening Search o Complete? Ya. o Time complexity? db 1 + (d − 1)b b d = O(b d ) o Space complexity? O(bd ) o Optimal? Ya, jika semua step cost sama.  Secara sekilas, strategi ini kelihatan tidak efisien, atau boros: banyak usaha terulang!  Iterative-deepening search malah lebih cepat dari breadth-first search! o N(IDS ) = db + (d − 1)b (1)b d o N(BFS) = b + b b d + (b d+1 − b) o Untuk b = 10 dan d = 5: N(IDS ) = , , ,000 = 123,450 N(BFS) = ,000+10, , ,990 = 1,111,100. o Pada umumnya, IDS adalah uninformed search strategy yang terbaik jika state space besar dan kedalaman solusi (d ) tidak diketahui.

55 Perbandingan Algoritma  Perbandingan strategi pencarian  Kegagalan menangani state yang mengulang dapat membuat masalah linier menjadi eksponensial!

56 Graph Search  Solusinya adalah untuk mencatat state mana yang sudah pernah dicoba. Catatan ini disebut closed list (fringe = open list).  Modifikasi algoritma TreeSearch dengan closed list menjadi GraphSearch.

57 Graph Search  Time complexity: sama, jika kita asumsi operasi STATE[node] ∈ closed = O(1) (implementasi dengan hashtable?)  Space complexity: DFS dan IDS tidak lagi linier!  GraphSearch tidak mencatat path menuju suatu state. Ini mempengaruhi sifat optimality suatu strategi: o Uniform-cost dan breadth-first search dengan step cost konstanta masih optimal. o Untuk variasi Depth-first dan iterative-deepening search, jika state mengulang ditemukan, periksa apakah path cost-nya lebih kecil → update info node dan anak-anaknya! /

58 Ringkasan  Breadth-first search: completeness terjamin, tapi rakus memory.  Uniform-cost search: mirip BFS, optimality terjamin jika cost path ≥ ε untuk ε > 0.  Depth-first search: Space complexity linier, tetapi tidak complete (maupun optimal).  Depth-limited search: mirip DFS, tetapi kedalaman search dibatasi sampai k.  Iterative-deepening search: lakukan DLS secara bertahap dengan k = 0, 1, 2,....  Pengulangan state bisa dihindari dengan mencatat state yang sudah pernah dicoba. TreeSearch → GraphSearch.

59 Latihan Individu  Selesaikan graf di bawah ini menggunakan algoritma DFS dan BFS berikut dengan hasil setiap langkah (Traversal dan Tree) dimulai dari node 1 untuk (a1) node K untuk (a2) ! (a1) (a2) AB C L G FE D H I MK J

60 Tugas Kelompok  Buatlah video untuk pemecahan/ solusi kasus : a)8-Puzzles b)8-Queens (Optional) Lalu tuliskan langkah-langkah penyelesaiannya ! (Initial State-nya bebas)  Selesaikan graf di bawah ini menggunakan algoritma IDS berikut dengan hasil setiap langkah (Traversal dan Tree) dimulai dari node A (k=2) ! AB C L G FE D H I MK J

61 Selesai

62 Robot With AI


Download ppt "Penyelesaian Problem Dengan Pencarian (Blind / Un-Informed Searching) Imam Cholissodin, S.Si., M.Kom. Kecerdasan Buatan/ Artificial Intelligence."

Presentasi serupa


Iklan oleh Google