# Pengantar Intellegensia buatan

## Presentasi berjudul: "Pengantar Intellegensia buatan"— Transcript presentasi:

Pengantar Intellegensia buatan
Informed search Greedy Search A* Search IDA* Search RBFS Search SMA* Search

Repeated State and Cycle
Do not return to the state you just came from. Have the expand function (or the operator set) refuse to generate any successor that is the same state as the node's parent. Do not create paths with cycles in them. Have the expand function (or the operator set) refuse to generate any successor of a node that is the same as any of the node's ancestors. Do not generate any state that was ever generated before. This requires every state that is generated to be kept in memory, resulting in a space complexity of O(bd), potentially. It is better to think of this as O(s), where s is the number of states in the entire state space.

Spanning Search Tree state next cost A B 4 C 1 D 3 E 8 2 F 6 G A C B F
2 F 6 G C B F D E D G E G

Tujuan instruksional Mahasiswa dapat merancang dan mengkodekan algoritma pencarian serta mengenal kekuatan dan kelemahan masing masing algoritma: Greedy search A* search IDA* search RBFS search SMA * search

Uniform Cost Search Modifikasi BFS untuk mendapatkan biaya terendah sepanjang jalur pencarian, bukan hanya dilihat dari solusi yang didapat saja. (lowest cost vs. lowest depth) Urutan biaya selalu menaik g(SUCCESSOR(n)) > g(n) g(n) = biaya jalur pencarian dari titik awal sampai node n. Properti dari algoritma pencarian ini adalah: komplit, optimal / admissible, dan exponensial dalam kompleksitas waktu dan ruang, O(bd).

Uniform Cost Search Pada graf di atas, proses pencarian berlangsung sebagai berikut: 1. OPEN S (start) 2. OPEN A, B, C (cost = 1, 5, 15) 3. OPEN B, G, C (cost = 5, 11, 15) 4. OPEN G, G, C (cost = 10, 11, 15) 5. SOLUTION G (path S-B-G)

It’s not easy being blind
Algoritma Blind search bisa menemukan jawaban, namun Seringkali algoritma ini tidak efisien dalam pencariannya Anybody see my key ??

Informed search Untuk mengefisienkan pencarian, dibutuhkan tambahan informasi yang spesifik terhadap permasalahan yang dihadapi Pencarian seperti inilah yang kita sebut Informed search

Heuristik Heuristik = “rule of thumb”
Heuristic are criteria, methods , or principle for deciding among several course of action promises to be the most effective in order to reach some goal Fungsi heuristik h(n) adalah “perkiraan” biaya termurah dari node n ke node tujuan

Contoh heuristik (straight line distance = hsld)

Contoh heuristik(2) Heuristik ? ? ? Jumlah nomor yang salah tempat

Contoh heuristik(3) Heuristik ? ? ? Manhattan distance

More on heuristic Heuristic berasal dari asal kata heuriskein yang artinya menemukan. Buatlah heuristic sedemikian sehingga : h(n) pada kondisi goal adalah 0 Fungsi heuristic melambangkan cost yang akan dikeluarkan agent jika memilih node tertentu Heuristic memperbaiki proses pencarian solusi walaupun tidak harus sampai mengatasi kasus terburuk (worst case scenario)

Best First Search

Greedy Best First Search
Berusaha meminimalisasi perkiraan biaya untuk mencapai goal dengan meng-expand node yang dinilai paling dekat dengan goal. Fungsi yang digunakan untuk menilai kedekatan node dengan goal adalah fungsi heuristic, biasanya dinotasikan dengan huruf h h(n) = estimated cost of the cheapest path from the state at node n to a goal state

Greedy Search

Greedy search (construct the h(n))

Greedy Search S A D h(S ): 1 1 B D E C E E F F F G G G Fringe : S

Greedy Search S A D h(A ): 1 0.4 h(D) : 8.9 B D E C E E F F F G G G
Fringe : DA

Greedy Search S A D h(A ): 1 0.4 h(E) : 6.9 B D E C E E F F F G G G
Fringe : EA

Greedy Search S A D h(A ): 1 0.4 h(F) : 3.0 B D E C E E F F F G G G
Fringe : FA

Greedy Search S A D h(A ): 1 0.4 h(G) : 0 Total cost : 13 B D E C E E
F F F G G G Fringe : GA

Greedy search property
Complete ? No, can get stuck in loops Complete if repeated-state checking is performed Time ? O(bm), but good heuristic can give dramatic improvement Space ? O(bm) – save all nodes in memory Optimal ? No, Why ?

Try This Greedy search: A-B-E-G-H = 99 Not Optimal Better solution:
A-B-C-F-H = 39

A* Algorithm (Hart Nilsson & Rafael 1968)
Greedy Search  minimalisir estimasi search cost Uniform cost Search  minimalisir cost sampai saat ini. Algoritma A* menggabungkan keduanya Dengan fungsi f(n) f(n) = h(n) + g(n) g(n) = cost so far to reach n from start state h(n) = estimated cost to goal state from n f(n) = estimated total cost of path through n to goal

Try This

Try This

Back to: Romania

A* Search Example: Romania

A* Search Example: Romania

A* Search Example: Romania

A* Search Example: Romania

A* Search Example: Romania

A* Search Example: Romania

A* algorithm property Complete ?? Optimal ?? Time ?? Space ??

A* property (Optimality and Completeness)
Algoritma A* bersifat admissible. Ini berarti apabila solusi ada, solusi yang ditemukan pertama adalah solusi yang optimal. A* bersifat admissible bila memenuhi syarat syarat berikut : Di dalam graph state space Setiap node memiliki successor yang terbatas Setiap arc pada graph memiliki biaya yang > dari 0 Heuristik: untuk setiap node n, h(n) < h*(n)

A* property (Optimality)
A* optimal untuk heuristik tertentu – dari semua algoritma search yang optimal yang mencari dari root ke node tujuan, dapat dibuktikan bahwa tidak ada algoritma lain yang membuka simpul node yang paling sedikit dan menemukan solusi Namun, jumlah node yang disimpan masih bersifat exponential pada kasus terburuk Sayangnya perkiraan saja tidak cukup bagi algoritma A* untuk tidak membuka simpul secara exponential, sebagai tambahan A* harus menyimpan semua node pada memory A* jauh lebih efisien daripada pencarian tanpa informasi

Contours (Monotonicity)

More on heuristic (2) Heuristic yang baik adalah heuristic yang tidak overestimate Suatu heuristik dikatakan konsisten bila : h(n) <= cost(n,n’) + h(n’)

More on heuristic (3)

More on heuristic (4) heuristik untuk kasus diatas tidak konsisten, karena h(n)= 4 sedangkan h(n’) = cost(n,n’) + h(n’) = = 3, sehingga h(n) > h(n’). hal ini membuat nilai f mengecil dari node n ke node n’ Heuristik yang nilai f nya selalu membesar disebut heuristik yang monoton

Bukti Completeness A* A * dikatakan complete dan optimal dengan mengasumsikan sebuah heuristic yang admissible dan konsisten (atau menggunakan pathmax untuk mempertahankan konsistensi, i.e. Contours) Baca e-book

Analisis performansi A*
|h(n)-h*(n)| <= O (log h*(n)) Queue besar Baca e-book

Dominansi h2 dikatakan memiliki dominansi atas h1 jika h2(n) > = h1(n) untuk setiap n A * akan mengekspansi lebih sedikit node dengan h2 secara rata rata dibandingkan dengan h1 Bukti : Untuk setiap node dimana f(n) < C* akan diekspansi, maka n akan diekspansi apabila: h(n) < f* - g(n) karena h2(n) >= h1(n) setiap node yang diekspansi h2 akan diekspansi oleh h1. Bacalah di e-book bagaimana menggunakan heuristik lebih dari satu fungsi

Perbaikan algoritma A*
Algoritma A* menggunakan banyak sekali memory sehingga kerap kali habis tempat untuk pencarian Ada beberapa varian dari algoritma A* yang dapat digunakan untuk mensiasati kekurangan memory tersebut diantaranya adalah : IDA * RBFS SMA *

Itterative Deepening A* search
Idenya serupa dengan DFID search hanya saja yang menjadi batas adalah nilai f per node. Mulailah dengan flimit = h(start) Potonglah (prune) semua node dimana f(node ) > f limit flimit berikutnya adalah nilai minimum node yang dipotong

IDA*

IDA*

IDA*

IDA* property Complete and optimal time complexity : DFS
Space complexity : DFS (bm) Setiap iterasi pada IDA* adalah iterasi DFS sehingga space yang dibutuhkan linear dan tidak membutuhkan priority queue

IDA* weakness Apabila nilai f sangat bervariasi, bahkan bila pada kasus terburuk setiap node memiliki nilai f yang berbeda maka pada tiap iterasi IDA* hanya akan mengekspansi satu buah node. IDA* tidak cocok untuk graf dengan banyak siklus. NB: Semua algoritma berbasis DFS tidak cocok untuk graf dengan banyak siklus

IDA*

RBFS menggunakan kebutuhan memory yang linear Cara kerjanya meniru algoritma best first search RBFS menyimpan nilai f terbaik dari jalur alternatif yang tersedia dari pendahulu node yang sekarang Bila node yang sekarang melebihi limit nilai f maka jalur alternatif lainnya diperiksa. RBFS mengingat nilai f daun terbaik di sub pohon yang sudah dilalui

Simplified Memory bounded A*
Algoritma ini menjalankan best first search selama memory masih tersedia, apabila memory penuh maka node dengan nilai terburuk di buang, namun nilainya disimpan pada node atasnya. Kalau ada ruang memori yang mencukupi untuk semua node pada tree dalam jalur pencarian, maka pencarian akan menjadi optimal.

SMA* Illustrated

Local Search Algorithm
Kadang kadang kita tidak membutuhkan path pencarian, kita hanya perlu hasilnya saja. Bila demikian kita bisa menggunakan algoritma penyelesaian lain yaitu local search algorithm Local search algorithm tidak menyimpan state dalam bentuk tree tapi hanya menyimpan satu state dan ‘memperbaiki’ state tersebut sampai mencapai sebuah goal.

Example problem

Local Search Algorithm (2)
Beroperasi dengan menggunakan satu state aktif dan biasanya bergerak hanya kepada state yang bersebelahan dengan state tersebut Keuntungan local search algorithm Menggunakan memory yang sangat sedikit (hanya 1 state) Kadang dapat menemukan jawaban yang baik di state space yang besar dan atau tak terbatas

Local Search State Space

Local Search algorithm (3)
Beberapa local search algorithm: Hill Climbing / Gradient descent Simulated Annealing

Hill Climbing algorithm
Layaknya seorang pendaki gunung yang mencari tanah yang ketinggian lebih tinggi dari yang ditempatinya sekarang, hill climbing algorithm mencari state yang lebih baik dari state yang ada sekarang dan “membuang sisanya”

Hill Climbing algorithm
“Like climbing Everest in thick fog with amnesia” Steps in hill-climbing algorithm: Create initial state Generate successors Apply heuristic evaluation function to successors Choose the best alternative (forgetting all the rest) Repeat to step 2 until no more improvement could be made

Hill Climbing example ~ Good One

Hill Climbing example ~ Good One

Hill Climbing example ~ Bad One

Traveling Salesman Problem (TSP)
Seorang salesman ingin mengunjungi n kota. Jarak antar kota sudah diketahui. Kita ingin mengetahui rute terpendek yang dilalui dengan syarat tiap kota hanya boleh dikunjungi tepat 1 kali. Fungsi heuristik: Rute berikutnya harus lebih pendek dari rute saat ini 8 B A 3 4 7 5 C D 6

TSP - Hill Climbing Operator: menukar urutan posisi 2 kota dalam satu lintasan Fungsi heuristik: panjang lintasan

Properties of Hill-Climbing
Complete ? No, may never find an answer Time ? May be very slow Space ? Constant Optimal ? No, may not find the best answer

Hill Climbing Weakness

Hill Climbing Improvement
Random Restart Hill-climbing Conduct a series of hill-climbing from randomly generated initial states Stochastic Hill-Climbing Chooses at random from among the uphill moves First-choice Hill-Climbing

Simulated Annealing Steps: Pick a move at random
Idea: Escape local maxima by allowing some “bad” moves, but gradually decrease their size and frequency Steps: Pick a move at random If move will improve things, take it If it will make things worse, take it with some probability Take it with probability e ∆E / T ∆E is value(current state) – value(move state) T is constant Keep going, making T smaller according to some schedule If the schedule is slow enough, this algorithm is guaranteed to find the global optimum

Simulated Annealing Origin: Annealing in Physics
The process of gradually cooling a liquid until it freezes If solid materials is heated past its melting point and then cooled back into a solid state, the structural properties of the cooled solid depend on the rate of cooling. E corresponds to the total energy of atoms in the material, and T corresponds to the temperature. The schedule determines the rate at which the temperature is lowered. Individual moves in the state space correspond to random fluctuations due to thermal noise

Latihan Heuristik Sebuah rubic cube adalah sebuah kubus 3x3 dengan 6 warna, kubus ini awalnya memiliki warna yang sama untuk setiap sisinya. Untuk memainkannya seseorang dapat mengeser rubic perbaris atau kolom sehingga warna pada tiap sisi rubic tidak sama. Tujuan dari permainan adalah membuat rubic cube memiliki warna yang sama kembali pada tiap sisinya.

Latihan Heuristik Cobalah menganalisa permasalahan rubic cube :
Berapa branching factor dari permasalahan ini ? (tuliskan juga operator yang anda gunakan, jangan lupa tangani masalah repeated state bila ada). Carilah sebuah heuristik yang dapat dipakai untuk menyelesaikan permasalahan ini. Dari semua algoritma uninformed search yang sudah anda pelajari sebutkan algoritma apa yang paling tepat digunakan untuk permasalahan ini menurut anda, sertakan pula alasan mengapa anda memilih algoritma tersebut.

Latihan A* Buatlah graf pencarian sesuai tabel disamping.
Lakukan strategi pencarian dengan algoritma uniform cost, greedy search, dan A* Gambarkan perjalanan pencarian.

Latihan Local Search Selesaikanlah 8 puzzle berikut dengan menggunakan algoritma greedy search, A* dan Hill climbing 1 3 4 2 5 7 8 6 1 2 3 4 5 6 7 8 Initial state Goal state

Presentasi serupa