1 / 62

Penyelesaian Problem Dengan Pencarian (Blind / Un-Informed Searching)

Kecerdasan Buatan / Artificial Intelligence. Penyelesaian Problem Dengan Pencarian (Blind / Un-Informed Searching). Imam Cholissodin, S.Si., M.Kom. Pokok Bahasan. Agen penyelesaian problem Jenis problem/masalah Formulasi problem Contoh problem Strategi pencarian uninformed

cicily
Download Presentation

Penyelesaian Problem Dengan Pencarian (Blind / Un-Informed Searching)

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


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

  2. Pokok Bahasan • Agen penyelesaian problem • Jenis problem/masalah • Formulasi problem • Contoh problem • Strategi pencarian uninformed • Algoritma pencarian dasar (BFS & DFS) • Robot With AI • 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 : • Percept : persepsi yang ada • Seq : urutan tindakan • State : deskripsi dari keadaan lingkungan sekitar • Goal : tujuan yang dicapai • Problem : perumusan masalah

  5. Agen Penyelesaian Problem • Contoh : Romania • Berlibur ke Rumania, saat ini berada di Arad. • Penerbangan (keberangkatan) dilakukan besok dari Bucharest • Merumuskan tujuan (Formulate goal) : • Berada di Bucharest • Merumuskan masalah (Formulate problem) : • States : berbagai kota sebagai alternatif tempat yang akan dilalui • Actions : drive antara kota • 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 • Agentahupersiskeadaansesuatu yang akandiamati. • Non-observable Sensorless problem (conformant problem) • Agenmungkintidakmengetahuidimanakeberadaansesuatu yang dicari. • Nondeterministic and/or partially observable  Contingency problem (keadaan yang tidakpasti) • Persepsi yang dapatmemberikaninformasibarutentangkeadaansaatini. • Unknown state space  Exploration problem (Masalaheksplorasi)

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

  8. Contoh Problem • Contoh : vacuum world • Single-state, start in #5. Solution?[Right, Suck] • 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 • 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] • 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 • 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] • Contingency • Nondeterministic: Suck may dirty a clean carpet • Partially observable: location, dirt at current location. • Percept: [L, Clean], i.e., start in #5 or #7Solution?[Right, if dirt then Suck]

  11. Formulasi Problem • Single-state problem formulation • Suatu problemdidefinisikan dalam 4 item : • initial state e.g., "at Arad" • actions or successor function S(x) = set of action–state pairs • <action,successor(state)> • e.g., S(Arad) = {<Berangkat(Arad  Zerind), BeradaDi(Zerind)>, … } • goal test, can be • explicit, e.g., x = "at Bucharest" • implicit, e.g., Checkmate(x) / Skakmat(x) • 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 • Dunianyataluarbiasakompleksdanrumit! State space harusmerupakanabstraksimasalahsupayabisadipecahkan. • State = himpunan “keadaannyata”. Mis : BeradaDi(Arad ) – dengansiapa? kondisicuaca? • Action= kombinasiberbagai “tindakannyata”. Mis : Berangkat(Arad , Sibiu) – jalantikus, isibensin, istirahat, dll. • Solution= representasiberbagai “path nyata” yang mencapaitujuan • Abstraksiinimembuatmasalah yang nyatalebihmudahdipecahkan.

  13. Contoh Problem • Contoh : Vacuum Cleaner World • State: lokasi agent, status debu. • Possible action: DoKeKiri(L), DoKeKanan(R), DoSedot(S). • Goal test: semuaruangansudahbebasdebu. • Path cost: asumsi step cost samauntuksemuaaction, mis: Path cost = 1 per action. • Successor function mendefinisikan state space sbb:

  14. Contoh Problem • Contoh: 8-Puzzle • State: lokasi 8 buahangkadalammatriks3x3 • Possible action(move, blank) : left, right, up, down • Goal test: apakahkonfigurasiangkasudahsepertigoal state di atas. • Path cost: asumsi, 1 step cost = 1 per move. Path cost = jumlahlangkahdalam path.

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

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

  17. Algoritma Pencarian Dasar • Tree search algorithms : • Setelahmerumuskanmasalah → carisolusinyamenggunakansebuahsearch algorithm • Search tree merepresentasikan state space. • Search tree terdiridarikumpulannode: strukturdata yang merepresentasikansuatu state padasuatupath, danmemilikiparent, children, depth, danpath cost. • Root nodemerepresentasikan initial state. • Penerapan successor function terhadap (state yang diwakili) node menghasilkan children baru → inidisebutnode expansion. • Kumpulan semua node yang belum di-expand disebutfringe(pinggir) sebuah search tree.

  18. Algoritma Pencarian Dasar • Tree search algorithms (Basic idea) : • Mulaidari root node (Arad) sebagaicurrent node. • Lakukan node expansion terhadapnya. • Pilihsalahsatu node yang di-expand sebagaicurrent node yang baru. Ulangilangkahsebelumnya.

  19. Algoritma Pencarian Dasar • Tree search algorithms (Basic idea) : • Mulaidari root node (Arad) sebagaicurrent node. • Lakukannode expansion terhadapnya. • Pilihsalahsatu node yang di-expand sebagaicurrent node yang baru. Ulangilangkahsebelumnya.

  20. Algoritma Pencarian Dasar • Tree search algorithms (Basic idea) : • Mulaidari root node (Arad) sebagaicurrent node. • Lakukannode expansion terhadapnya. • Pilihsalahsatu node yang di-expand sebagaicurrent node yang baru. Ulangilangkahsebelumnya.

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

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

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

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

  25. Algoritma Pencarian Dasar • Implementation: states vs. nodes • Sebuah state merepresentasikan abstraksi keadaannyatadari masalah. • Sebuah node adalah struktur data yang menjadi bagiandari search tree. • State tidak memiliki parent, children, depth, path cost! • Node = state pada path tertentu. Dua node berbedabisa mewakili state yang sama!

  26. Strategi Pencarian Uninformed • Strategipencarian : • Terdapatberbagaijenisstrategiuntukmelakukan search. • Semuastrategiiniberbedadalamsatuhal: urutandarinode expansion. • Search strategy di-evaluasiberdasarkan: • completeness: apakahsolusi (jikaada) pastiditemukan? • time complexity: jumlah node yang di-expand. • space complexity: jumlahmaksimum node di dalam memory. • optimality: apakahsolusidengan minimum cost pastiditemukan? • Time & space complexity diukurberdasarkan • b - branching factor dari search tree • d - depth (kedalaman) darisolusioptimal • m - kedalamanmaksimumdari search tree (bisa infinite!)

  27. Strategi Pencarian Uninformed • StrategiPencarianUninformed : • Uninformed strategy hanyamenggunakaninformasidaridefinisimasalah. • Bisaditerapkansecaragenerikterhadapsemuajenismasalahyang bisadirepresentasikandalamsebuah state space. • Ada beberapajenis : • Breadth-first search • Uniform-cost search • Depth-first search • Depth-limited search • Iterative-deepening search

  28. Breadth-First Search • Lakukannode expansion terhadap node di fringe yang paling dekatke root • Implementasi: fringe adalahsebuah queue, data strukturFIFO (First In First Out) • Hasil node expansion (successor function) ditaruhdi belakang BFS traversal queue: a bc cde defg efg fg g

  29. Breadth-First Search • Lakukannode expansion terhadap node di fringe yang paling dekatke root • Implementasi: fringe adalahsebuah queue, data strukturFIFO (First In First Out) • Hasil node expansion (successor function) ditaruhdi belakang BFS traversal queue: a bc cde defg efg fg g

  30. Breadth-First Search • Lakukannode expansion terhadap node di fringe yang paling dekatke root • Implementasi: fringe adalahsebuah queue, data strukturFIFO (First In First Out) • Hasil node expansion (successor function) ditaruhdi belakang BFS traversal queue: a bc cde defg efg fg g

  31. Breadth-First Search • Lakukannode expansion terhadap node di fringe yang paling dekatke root • Implementasi: fringe adalahsebuah queue, data strukturFIFO (First In First Out) • Hasil node expansion (successor function) ditaruhdi belakang BFS traversal queue: a bc cde defg efg fg g

  32. a b c d e f g h Breadth-First Search • BFS menggunakan prisip queue (Contoh lain) BFS traversal queue: BFS tree: a bef efg fg g ch hd d 1 2 6 8 a b c d e f g h 3 4 5 7

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

  34. Depth-First Search • Lakukannode expansion terhadap node di fringe yang paling jauhdariroot. • Implementasi: fringe adalahsebuahstack, data strukturLIFO (Last In First Out) • Hasil node expansion ditaruh di depan • Depth-first search sangatcocokdiimplementasikansecararekursif. DFS traversal stack: acgn acg acgo acg ac a null a ab abd abdh abdi abd ab abe abej abe abek … abe ab a ac acf acfl acf acfm acf ac acg …

  35. Depth-First Search • Lakukannode expansion terhadap node di fringe yang paling jauhdariroot. • Implementasi: fringe adalahsebuahstack, data strukturLIFO (Last In First Out) • Hasil node expansion ditaruh di depan • Depth-first search sangatcocokdiimplementasikansecararekursif. DFS traversal stack: acgn acg acgo acg ac a null a ab abd abdh abdi abd ab abe abej abe abek … abe ab a ac acf acfl acf acfm acf ac acg …

  36. Depth-First Search • Lakukannode expansion terhadap node di fringe yang paling jauhdariroot. • Implementasi: fringe adalahsebuahstack, data strukturLIFO (Last In First Out) • Hasil node expansion ditaruh di depan • Depth-first search sangatcocokdiimplementasikansecararekursif. DFS traversal stack: acgn acg acgo acg ac a null a ab abd abdh abdi abd ab abe abej abe abek … abe ab a ac acf acfl acf acfm acf ac acg …

  37. Depth-First Search • Lakukannode expansion terhadap node di fringe yang paling jauhdariroot. • Implementasi: fringe adalahsebuahstack, data strukturLIFO (Last In First Out) • Hasil node expansion ditaruh di depan • Depth-first search sangatcocokdiimplementasikansecararekursif. DFS traversal stack: acgn acg acgo acg ac a null a ab abd abdh abdi abd ab abe abej abe abek … abe ab a ac acf acfl acf acfm acf ac acg …

  38. Depth-First Search • Lakukannode expansion terhadap node di fringe yang paling jauhdariroot. • Implementasi: fringe adalahsebuahstack, data strukturLIFO (Last In First Out) • Hasil node expansion ditaruh di depan • Depth-first search sangatcocokdiimplementasikansecararekursif. DFS traversal stack: acgn acg acgo acg ac a null a ab abd abdh abdi abd ab abe abej abe abek … abe ab a ac acf acfl acf acfm acf ac acg …

  39. Depth-First Search • Lakukannode expansion terhadap node di fringe yang paling jauhdariroot. • Implementasi: fringe adalahsebuahstack, data strukturLIFO (Last In First Out) • Hasil node expansion ditaruh di depan • Depth-first search sangatcocokdiimplementasikansecararekursif. DFS traversal stack: acgn acg acgo acg ac a null a ab abd abdh abdi abd ab abe abej abe abek … abe ab a ac acf acfl acf acfm acf ac acg …

  40. Depth-First Search • Lakukannode expansion terhadap node di fringe yang paling jauhdariroot. • Implementasi: fringe adalahsebuahstack, data strukturLIFO (Last In First Out) • Hasil node expansion ditaruh di depan • Depth-first search sangatcocokdiimplementasikansecararekursif. DFS traversal stack: acgn acg acgo acg ac a null a ab abd abdh abdi abd ab abe abej abe abek … abe ab a ac acf acfl acf acfm acf ac acg …

  41. Depth-First Search • Lakukannode expansion terhadap node di fringe yang paling jauhdariroot. • Implementasi: fringe adalahsebuahstack, data strukturLIFO (Last In First Out) • Hasil node expansion ditaruh di depan • Depth-first search sangatcocokdiimplementasikansecararekursif. DFS traversal stack: acgn acg acgo acg ac a null a ab abd abdh abdi abd ab abe abej abe abek … abe ab a ac acf acfl acf acfm acf ac acg …

  42. Depth-First Search • Lakukannode expansion terhadap node di fringe yang paling jauhdariroot. • Implementasi: fringe adalahsebuahstack, data strukturLIFO (Last In First Out) • Hasil node expansion ditaruh di depan • Depth-first search sangatcocokdiimplementasikansecararekursif. DFS traversal stack: acgn acg acgo acg ac a null a ab abd abdh abdi abd ab abe abej abe abek … abe ab a ac acf acfl acf acfm acf ac acg …

  43. Depth-First Search • Lakukannode expansion terhadap node di fringe yang paling jauhdariroot. • Implementasi: fringe adalahsebuahstack, data strukturLIFO (Last In First Out) • Hasil node expansion ditaruh di depan • Depth-first search sangatcocokdiimplementasikansecararekursif. DFS traversal stack: acgn acg acgo acg ac a null a ab abd abdh abdi abd ab abe abej abe abek … abe ab a ac acf acfl acf acfm acf ac acg …

  44. Depth-First Search • Lakukannode expansion terhadap node di fringe yang paling jauhdariroot. • Implementasi: fringe adalahsebuahstack, data strukturLIFO (Last In First Out) • Hasil node expansion ditaruh di depan • Depth-first search sangatcocokdiimplementasikansecararekursif. DFS traversal stack: acgn acg acgo acg ac a null a ab abd abdh abdi abd ab abe abej abe abek … abe ab a ac acf acfl acf acfm acf ac acg …

  45. Depth-First Search • Lakukannode expansion terhadap node di fringe yang paling jauhdariroot. • Implementasi: fringe adalahsebuahstack, data strukturLIFO (Last In First Out) • Hasil node expansion ditaruh di depan • Depth-first search sangatcocokdiimplementasikansecararekursif. DFS traversal stack: acgn acg acgo acg ac a null a ab abd abdh abdi abd ab abe abej abe abek … abe ab a ac acf acfl acf acfm acf ac acg …

  46. a b c d e f g h Depth-First Search • DFS menggunakanprisipstack (Contohlain) DFS traversal stack: DFS tree: a ab abf abfe abf ab abg abgc abgcd abgcdh abgcd … 1 2 6 7 a b c d e f g h 4 3 5 8

  47. Depth-First Search • Properties of depth-first search • Complete? Tidak, bisagagaljika m takterbatas, atau state space dengan loop . • Time complexity? O(bm) → jika m »d , parah! • Space complexity? O(bm) → linear space! • Optimal? Tidak. • Depth-first search mengatasimasalahspace : • Mis: 1 node memakan 1000 byte, dan b = 10 • Jika d = 12, space yang dibutuhkanhanya 118 kilobyte . . . • bandingkandengan 10 petabyte!

  48. Variasi Depth-First Search • Backtracking search : lakukan node expansion satu-per-satu. Jikagagal backtrack dancobanilai successor function yang lain. • Depth-limited search : Batasikedalamanmaksimal yang dilihatadalahk. • Mengatasimasalahuntuk state space takterbatas. • Sayangnya, adaunsur incompleteness baru, jikak < d . • Biasanya d tidakdiketahui (tapibisaadaestimasi, mis. diameter suatu graph).

  49. Iterative-Deepening Search • Lakukandepth-limited search secarabertahapdengannilai k yang incremental. • Strategiinimenggabungkanmanfaat depth dan breadth first: space complexity linierdancompleteness terjamin! • Lakukan depth-limited search dengank = 0, 1, 2, . . . sampaitidakcutoff.

  50. Iterative-Deepening Search • Iterative deepening search k =0

More Related