Pemecahan Masalah dengan Pencarian Agen Tunggal Dian Eka

  • Slides: 77
Download presentation
Pemecahan Masalah dengan Pencarian (Agen Tunggal) Dian Eka R

Pemecahan Masalah dengan Pencarian (Agen Tunggal) Dian Eka R

Ruang Masalah Keadaan Awal (Initial State) Tujuan (Goal)

Ruang Masalah Keadaan Awal (Initial State) Tujuan (Goal)

Teknik Searching Dalam AI Digunakan untuk mencari solusi dari suatu permasalahan Langkahnya adalah dengan

Teknik Searching Dalam AI Digunakan untuk mencari solusi dari suatu permasalahan Langkahnya adalah dengan mendefinisikan terlebih dahulu Ruang Masalah (State)nya.

Contoh agen yang memiliki tujuan 8 puzzle : untuk mencapai konfigurasi bahw baris teratas

Contoh agen yang memiliki tujuan 8 puzzle : untuk mencapai konfigurasi bahw baris teratas daari puzzle terisi dengan ubin 1, 2, 3

Representasi formulasi Permasalahan Setiap permasalahan akan dapat direpresentasikan dengan grap terarah Ø Keadaaan akan

Representasi formulasi Permasalahan Setiap permasalahan akan dapat direpresentasikan dengan grap terarah Ø Keadaaan akan digambarkan dalam node Ø Aksi yang diijinkan digambarkan sebagai sebuah arah(arc)

Contoh terdapat graph yang menunjukkan kota Graph keadaan

Contoh terdapat graph yang menunjukkan kota Graph keadaan

 Graph keadaan dengan node M menunjukkan keadaan awal, node T adalah tujuan. Ada

Graph keadaan dengan node M menunjukkan keadaan awal, node T adalah tujuan. Ada 4 lintasan dari M ke T : M-A-B-C-E-T M-A-B-C-E-H-T M-D-C-E-H-T Lintasan buntu atau lintasan yang tidak sampai ke tujuan : 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

 Struktur pohon digunakan untuk menggambarkan keadaan secara hirarkis. Node yg terletak pada level-o

Struktur pohon digunakan untuk menggambarkan keadaan secara hirarkis. Node yg terletak pada level-o disebut ’akar’. Node akar : menunjukkan keadaan awal & memiliki beberapa percabangan yang terdiri atas beberapa node yg disebut ’anak’. Node-node yg tidak memiliki anak disebut ’daun’ menunjukkan akhir dari suatu pencarian, dapat berupa tujuan yang diharapkan (goal) atau jalan buntu (dead end).

Example: Romania On holiday in Romania; currently in Arad. Flight leaves tomorrow from Buchares

Example: Romania On holiday in Romania; currently in Arad. Flight leaves tomorrow from Buchares Formulate goal: be in Bucharest Formulate problem: states: various cities actions: drive between cities Find solution: sequence of cities, e. g. , Arad, Sibiu, Fagaras, Bucharest

Example: Romania

Example: Romania

Single-state problem formulation A problem is defined by four items: 1. 2. initial state

Single-state problem formulation A problem is defined by four items: 1. 2. initial state e. g. , "at Arad" actions or successor function S(x) = set of action–state pairs 3. 4. <action, successor(state)> e. g. , S(Arad) = {<Arad Zerind, Zerind>, … } goal test, can be explicit, e. g. , x = "at Bucharest" implicit, e. g. , Checkmate(x) Assign numeric cost to each path e. g. , sum of distances, number of actions executed, etc. c(x, a, y) is the step cost, assumed to be ≥ 0 path cost (additive) A solution is a sequence of actions leading from the initial state to a goal state Solution quality is measured by the path cost function

Example: The 8 -puzzle states? locations of tiles actions? move, blank, left, right, up,

Example: The 8 -puzzle states? locations of tiles actions? move, blank, left, right, up, down goal test? = goal state (given) path cost? 1 per move [Note: optimal solution of n-Puzzle family is NP-hard]

untuk mendeskripsikan masalah dengan baik harus : 1. Mendefinisikan suatu ruang keadaan (state space)

untuk mendeskripsikan masalah dengan baik harus : 1. Mendefinisikan suatu ruang keadaan (state space) 2. Menetapkan satu atau lebih keadaan awal (initial state) 3. Menetapkan satu atau lebih tujuan (goal state) 4. Menetapkan kumpulan aturan (action)

Studi Kasus : Masalah Galon Air(A Water Jug Problem) Kran air 4 liter A

Studi Kasus : Masalah Galon Air(A Water Jug Problem) Kran air 4 liter A 3 liter B Bagaimana caranya bisa didapatkan air dengan ukuran tepat 2 liter di Galon A ? ? ?

Penyelesaian : 1. Identifikasi ruang keadaan (state space) Permasalahan ini dapat digambarkan sebagai himpunan

Penyelesaian : 1. Identifikasi ruang keadaan (state space) Permasalahan ini dapat digambarkan sebagai himpunan pasangan bilangan bulat : x = jumlah air yg diisikan ke ember 4 galon (ember A) y = jumlah air yg diisikan ke ember 3 galon (ember B) Ruang keadaan = (x, y) sedemikian hingga x ∈ {0, 1, 2, 3, 4} dan y ∈{0, 1, 2, 3} 2. Keadaan awal & tujuan Keadaan awal : kedua ember kosong = (0, 0) Tujuan : ember 4 galon berisi 2 galon air = (2, n) dengan sembarang n

3. Keadaan ember bisa digambarkan sebagai berikut :

3. Keadaan ember bisa digambarkan sebagai berikut :

Aturan-aturan diasumsikan kita dapat mengisi ember air itu dari pompa air, membuang air dari

Aturan-aturan diasumsikan kita dapat mengisi ember air itu dari pompa air, membuang air dari ember ke luar, menuangkan air dari ember yang satu ke ember yang lain.

Representasi ruang keadaan dengan pohon pelacakan Pencarian suatu solusi dapat dilukiskan dengan menggunakan pohon.

Representasi ruang keadaan dengan pohon pelacakan Pencarian suatu solusi dapat dilukiskan dengan menggunakan pohon. Tiap-tiap node menunjukkan satu keadaan. Jalur dari parent ke child , menunjukkan 1 operasi. Tiap node memiliki node child yg menunjukkan keadaan yg dapat dicapai oleh parent.

Masalah PETANI, KAMBING, SERIGALA, SAYURAN, PERA HU Seorang petani akan menyeberangkan seekor kambing, seekor

Masalah PETANI, KAMBING, SERIGALA, SAYURAN, PERA HU Seorang petani akan menyeberangkan seekor kambing, seekor serigala, sayuran dengan sebuah perahu yg melalui sungai. Perahu hanya bisa memuat petani & satu penumpang yg lain (kambing, serigala, atau sayuran). Jika ditinggalkan petani tersebut, maka sayuran dimakan kambing dan kambing akan dimakan serigala.

Penyelesaian : 1. Identifikasi ruang keadaan Permasalahan ini dapat dilambangkan dengan (jumlah kambing, jumlah

Penyelesaian : 1. Identifikasi ruang keadaan Permasalahan ini dapat dilambangkan dengan (jumlah kambing, jumlah serigala, jumlah sayuran, jumlah perahu). Contoh : daerah asal (0, 1, 1, 1) = daerah asal tidak ada kambing, ada serigala, ada sayuran, ada perahu 2. Keadaan awal & tujuan Keadaan awal, pada kedua daerah : daerah asal = (1, 1, 1, 1) daerah seberang = (0, 0, 0, 0) Keadaan tujuan, pada kedua daerah : daerah asal = (0, 0, 0, 0) daerah seberang = (1, 1, 1, 1)

Jenis Teknik Searching Blind Search ( Un-Informed Search ) - Breadth First Search (

Jenis Teknik Searching Blind Search ( Un-Informed Search ) - Breadth First Search ( BFS ) Depth First Search ( DFS ) Uniform Cost Search ( UCS ) Depth Limited Search ( DLS ) Iterative Deepening Search ( IDS ) Bi-Directional Search ( BDS ) Heuristic Search ( Informed Search )

Breadth-First Search (BFS) Pencarian dilakukan pada semua node dalam setiap level secara berurutan dari

Breadth-First Search (BFS) Pencarian dilakukan pada semua node dalam setiap level secara berurutan dari kiri ke kanan. Jika pada satu level belum ditemukan solusi, maka pencarian dilanjutkan pada level berikutnya. Demikian seterusnya sampai ditemukan solusi. Dengan strategi ini, maka dapat dijamin bahwa solusi yang ditemukan adalah yang paling baik (Optimal). Tetapi BFS harus menyimpan semua node yang pernah dibangkitkan. Hal ini harus dilakukan untuk penelusuran balik jika solusi sudah ditemukan.

Breadth-First Search Metode pencarian dapat dilihat sbb:

Breadth-First Search Metode pencarian dapat dilihat sbb:

 Keuntungan BFS: 1. Tidak akan menemui jalan buntu 2. If ada solusi, mk

Keuntungan BFS: 1. Tidak akan menemui jalan buntu 2. If ada solusi, mk breadth first seacrh akan menemukannya. If lbh dr satu, maka solusi min akan ditemukan. Kelemahan BFS: 1. Membutuhkan memori yg ckp banyak, krn menyimpan semua node dalam satu pohon 2. Membutuhkan waktu yg ckp lama, krn menguji n level u/ mdptkan solusi pd level yg ke-(n+1)

Penanganan Masalah Galon Air dg BFS Galon B diisi tepat 2 l air 0,

Penanganan Masalah Galon Air dg BFS Galon B diisi tepat 2 l air 0, 0 0, 3 3, 0 3, 3 4, 2 4, 0 4, 3 1, 0

Breadth-first search Expand shallowest unexpanded node Implementation: fringe at end is a FIFO queue,

Breadth-first search Expand shallowest unexpanded node Implementation: fringe at end is a FIFO queue, i. e. , new successors go

Breadth-first search Expand shallowest unexpanded node Implementation: fringe end is a FIFO queue, i.

Breadth-first search Expand shallowest unexpanded node Implementation: fringe end is a FIFO queue, i. e. , new successors go at

Breadth-first search Expand shallowest unexpanded node Implementation: fringe at end is a FIFO queue,

Breadth-first search Expand shallowest unexpanded node Implementation: fringe at end is a FIFO queue, i. e. , new successors go

Breadth-first search Expand shallowest unexpanded node Implementation: fringe at end is a FIFO queue,

Breadth-first search Expand shallowest unexpanded node Implementation: fringe at end is a FIFO queue, i. e. , new successors go

 Gambar berikut mengilustrasikan pembangkitan pohon BFS untuk masalah Water Jug. Pembangkitan suksesor dari

Gambar berikut mengilustrasikan pembangkitan pohon BFS untuk masalah Water Jug. Pembangkitan suksesor dari suatu node bergantung pada urutan dari Aturan Produksi yang dibuat. Jika urutan dari aturan 4 ditukar dengan aturan 5, maka pohon BFS yang dibangkitkan juga akan berubah.

Pohon Breadth First Search untuk Water Jug Problem

Pohon Breadth First Search untuk Water Jug Problem

Properties of breadth-first search Complete? Yes (if b is finite) Time? 1+b+b 2+b 3+…

Properties of breadth-first search Complete? Yes (if b is finite) Time? 1+b+b 2+b 3+… +bd + b(bd-1) = O(bd+1) Space? O(bd+1) (keeps every node in memory) Optimal? Yes (if cost = 1 per step) Space is the bigger problem (more than time)

Depth First Search Metode pencarian dapat dilihat sbb:

Depth First Search Metode pencarian dapat dilihat sbb:

 Keuntungan : 1. Membutuhkan memori relatif kecil, krn hanya node – node pd

Keuntungan : 1. Membutuhkan memori relatif kecil, krn hanya node – node pd lintasan yg aktif saja yg disimpan 2. Scr kebetulan, metode ini akan menemukan solusi tanpa hrs menguji lbh banyak Kerugian : 1. Memungkinkan tdk ditemukannya tujuan yg diharapkan 2. Hanya akan mendapat solusi pd setiap pencarian

Penanganan Masalah Galon Air dg DFS 0, 0 0, 3 3, 0 3, 3

Penanganan Masalah Galon Air dg DFS 0, 0 0, 3 3, 0 3, 3 4, 2 4, 0 4, 3 1, 0

Kelemahan DFS adalah: Jika pohon yang dibangkitkan mempunyai level yang dalam (tak terhingga), maka

Kelemahan DFS adalah: Jika pohon yang dibangkitkan mempunyai level 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).

Penelusuran Depth First Search untuk Water Jug Problem

Penelusuran Depth First Search untuk Water Jug Problem

 Expand deepest unexpanded node Depth-first search Implementation: fringe = LIFO queue, i. e.

Expand deepest unexpanded node Depth-first search Implementation: fringe = LIFO queue, i. e. , put successors at front

Depth-first search Expand deepest unexpanded node Implementation: fringe = LIFO queue, i. e. ,

Depth-first search Expand deepest unexpanded node Implementation: fringe = LIFO queue, i. e. , put successors at front

 Expand deepest unexpanded node Depth-first search Implementation: fringe = LIFO queue, i. e.

Expand deepest unexpanded node Depth-first search Implementation: fringe = LIFO queue, i. e. , put successors at front

deepest unexpanded Depth-first searchnode Expand Implementation: fringe = LIFO queue, i. e. , put

deepest unexpanded Depth-first searchnode Expand Implementation: fringe = LIFO queue, i. e. , put successors at front

 Expand deepest unexpanded node Implementation: Depth-first search fringe = LIFO queue, i. e.

Expand deepest unexpanded node Implementation: Depth-first search fringe = LIFO queue, i. e. , put successors at front

Depth-first search Expand deepest unexpanded node Implementation: fringe = LIFO queue, i. e. ,

Depth-first search Expand deepest unexpanded node Implementation: fringe = LIFO queue, i. e. , put successors at front

Depth-first search Expand deepest unexpanded node Implementation: fringe = LIFO queue, i. e. ,

Depth-first search Expand deepest unexpanded node Implementation: fringe = LIFO queue, i. e. , put successors at front

Depth-first search Expand deepest unexpanded node Implementation: fringe = LIFO queue, i. e. ,

Depth-first search Expand deepest unexpanded node Implementation: fringe = LIFO queue, i. e. , put successors at front

Depth-first search Expand deepest unexpanded node Implementation: fringe = LIFO queue, i. e. ,

Depth-first search Expand deepest unexpanded node Implementation: fringe = LIFO queue, i. e. , put successors at front

Depth-first search Expand deepest unexpanded node Implementation: fringe = LIFO queue, i. e. ,

Depth-first search Expand deepest unexpanded node Implementation: fringe = LIFO queue, i. e. , put successors at front

Depth-first search Expand deepest unexpanded node Implementation: fringe = LIFO queue, i. e. ,

Depth-first search Expand deepest unexpanded node Implementation: fringe = LIFO queue, i. e. , put successors at front

Depth-first search Expand deepest unexpanded node Implementation: fringe = LIFO queue, i. e. ,

Depth-first search Expand deepest unexpanded node Implementation: fringe = LIFO queue, i. e. , put successors at front

Properties of depth-first search Complete? No: fails in infinite-depth spaces, spaces with loops Modify

Properties of depth-first search Complete? No: fails in infinite-depth spaces, spaces with loops Modify to avoid repeated states along path complete in finite spaces Time? O(bm): terrible if m is much larger than d but if solutions are dense, may be much faster than breadth-first Space? O(bm), i. e. , linear space! Optimal? No

Depth-limited search = depth-first search with depth limit l, i. e. , nodes at

Depth-limited search = depth-first search with depth limit l, i. e. , nodes at depth l have no successors Recursive implementation:

Iterative deepening search o Prinsipnya: lakukan depth-limited search secara bertahap dengan nilai l yang

Iterative deepening search o Prinsipnya: lakukan depth-limited search secara bertahap dengan nilai l yang incremental Strategi ini menggabungkan manfaat DFS dan BFS: space complexity linier & completeness terjamin Lakukan depth-limited search dengan l = 0, 1, 2, … sampai tidak cutoff

Iterative deepening search l =0

Iterative deepening search l =0

Iterative deepening search l =1

Iterative deepening search l =1

Iterative deepening search l =2

Iterative deepening search l =2

Iterative deepening search l =3

Iterative deepening search l =3

Iterative deepening search Number of nodes generated in a depth-limited search to depth d

Iterative deepening search Number of nodes generated in a depth-limited search to depth d with branching factor b: NDLS = b 0 + b 1 + b 2 + … + bd-2 + bd-1 + bd Number of nodes generated in an iterative deepening search to depth d with branching factor b: NIDS = (d+1)b 0 + d b^1 + (d-1)b^2 + … + 3 bd-2 +2 bd-1 + 1 bd For b = 10, d = 5, NDLS = 1 + 100 + 1, 000 + 100, 000 = 111, 111 NIDS = 6 + 50 + 400 + 3, 000 + 20, 000 + 100, 000 = 123, 456 Overhead = (123, 456 - 111, 111)/111, 111 = 11%

 Sekilas strategi IDS ini kelihatan tidak efisien atau boros: banyak node digenerate ulang!

Sekilas strategi IDS ini kelihatan tidak efisien atau boros: banyak node digenerate ulang! IDS sebenarnya malah lebih cepat daripada BFS (jika tree memiliki depth besar) (root node tidak dihitung krn dianggap initial state) Pada umumnya Iterative deepening search adalah uninformed search strategy terbaik jika state space besar dan kedalaman solusi (d) tidak diketahui

Properties of iterative deepening search Complete? Time? Yes (d+1)b 0 + d b 1

Properties of iterative deepening search Complete? Time? Yes (d+1)b 0 + d b 1 + (d-1)b 2 + … + bd = O(bd) Space? O(bd) Optimal? Yes, if step cost = 1

Summary of algorithms

Summary of algorithms

5. Berikan keadaan awal, tujuan, suksesor dan biaya , berikan formulasi problem yang menurut

5. Berikan keadaan awal, tujuan, suksesor dan biaya , berikan formulasi problem yang menurut anda paling tepat

6. Temukan solusinya, tunjukkan langkahnya

6. Temukan solusinya, tunjukkan langkahnya