Artificial Intelligence

Slides:



Advertisements
Presentasi serupa
TEKNIK PENCARIAN (SEARCHING)
Advertisements

Penyelesaian Problem Dengan Pencarian (Blind / Un-Informed Searching)
Kisi-kisi Jawaban UTS Semester Pendek Genap 2008/09.
Artificial Intelligent
Heuristic Search Dr. Kusrini, M.Kom.
Algoritma Genetika Kelompok 2 Ferry sandi cristian ( )
Problem Solving Game Playing
KECERDASAN BUATAN (ARTIFICIAL INTELLIGENCE)
Problem Solving Search -- Uninformed Search
SEARCH 2 Pertemuan ke Lima.
Hill Climbing.
Pencarian Heuristik.
METODE PENCARIAN HEURISTIK
Pencarian Tanpa Informasi
Hill Climbing Best First Search A*
HEURISTIC SEARCH Presentation Part IV.
KECERDASAN BUATAN (ARTIFICIAL INTELLIGENCE)
Pertemuan 4 Mata Kuliah : Kecerdasan Buatan
Ruang Keadaan (state space)
Sumber : Slide Materi ITS oleh Prof. Handayani Tjandrasa SEARCHINGSEARCHING.
Pencarian (Searching)
Penyelesaian Masalah Teknik Pencarian
Metode Pencarian & Pelacakan
Problem Solving Search -- Informed Search Ref : Artificial Intelligence: A Modern Approach ch. 4 Rabu, 13 Feb 2002.
SISTEM INTELEGENSIA BUATAN
Pencarian Heuristik.
METODE PENCARIAN dan PELACAKAN
Informed (Heuristic) Search
KECERDASAN BUATAN PERTEMUAN 10.
Kecerdasan Buatan Materi 4 Pencarian Heuristik.
Disampaikan Oleh : Yusuf Nurrachman, ST, MMSI
Pencarian Heuristik (Heuristic Search).
Pertemuan 3 Mendefinisikan Masalah dalam Ruang Keadaan
Pencarian Heuristik.
Informed Searching Part 1
TEKNIK PENCARIAN HEURISTIK
Penyelesaian Masalah menggunakan Teknik Pencarian Heuristic Search
Searching (Pencarian)
Teknik Pencarian 1 Blind Search
KECERDASAN BUATAN PERTEMUAN 3.
Imam Cholissodin | Algoritma Evolusi Teknik Optimasi Imam Cholissodin |
Pertemuan 6 Metode Pencarian
Metode Pencarian/Pelacakan
Metode Pencarian & Pelacakan
Masalah, Ruang Keadaan dan Pencarian
Bahan Kuliah IF2211 Strategi Algoritma
Pertemuan 6 Pencarian Heuristik
Heuristic Search (Part 2)
Constraint Satisfaction Problem (CSP)
Pertemuan 6 Pencarian Heuristik
Metode pencarian dan pelacakan - Heuristik
KECERDASAN BUATAN (ARTIFICIAL INTELLIGENCE)
Problem solving by Searching
Search.
TEKNIK PENCARIAN.
KECERDASAN BUATAN PERTEMUAN 10.
Problem solving by Searching
MASALAH DAN METODE PEMECAHAN MASALAH
Fakultas Ilmu Komputer
Informed (Heuristic) Search
Masalah, Ruang Keadaan dan Pencarian
Pertemuan 6 Metode Pencarian
Pertemuan 13 Algoritma Genetika.
Pertemuan 15 ALGORITMA GENETIKA
Masalah, Ruang Masalah dan Pencarian
Tugas Mata Kuliah Kecerdasan Buatan
Heuristic Search.
KECERDASAN BUATAN PERTEMUAN 4.
Heuristic Search Best First Search.
MASALAH, RUANG KEADAAN DAN PENCARIAN
Transcript presentasi:

Artificial Intelligence Kecerdasan Buatan/ Artificial Intelligence Informed Searching Imam Cholissodin, S.Si., M.Kom.

Pokok Bahasan Min-Max Alpha Betha Pruning Best-first search Greedy best-first search A* search Heuristics Local search algorithms Hill-climbing search Simulated annealing Local beam search Genetic algorithms Latihan Individu + Tugas Kelompok

Algoritma Minimax Definisi algoritma ini rekursif, dengan base case pada terminal state Untuk menghitung MINIMAX VALUE pada initial state, harus depth-first search seluruh game tree! Complete? Ya, kalau game tree-nya finite Optimal? Ya, asumsi lawan musuh optimal juga. (Kalau tidak? “Lebih optimal”!) Time complexity? O(bm) Space complexity? O(bm) (atau O(m) dgn. backtracking) Contoh dalam catur: b ≈ 35, m ≈ 100 → pencarian strategi optimal berdasarkan Minimax tidak feasible!

Algoritma Minimax Biasanya dalam suatu permainan ada batasan waktu Andaikan ada agent bermain catur yang diberi 100 detik untuk “berpikir” tiap langkah. Mis. sistem bisa memproses 104 node/detik → 106 node/langkah. Kita bisa melakukan aproksimasi sbb.: Cutoff: batasi depth yang diproses (≈ IDS). Evaluation function: prediksi dari nilai utility function (tidak perlu sampai ke terminal state).

Algoritma Minimax Biasanya, evaluation function berupa kombinasi linier dari fitur-fitur sebuah state: Eval (s) = w1f1(s) + w2f2(s) + . . . + wnfn (s) = Mis. untuk catur: w1 = 1, f1 = jumlah pion putih - jumlah pion hitam w2 = 3, f2 = jumlah gajah putih - jumlah gajah hitam

Algoritma Minimax Contoh penerapan algoritma Min Max. Diberikan sebuah situasi permainan seperti di bawah ini : X (max player) sedang dalam giliran untuk melanjutkan permainan. Berikan semua situasi berikutnya yang mungkin untuk X Pilihlah jalur yang tepat sesuai dengan algoritma minmax, jika diketahui fungsi utilitas untuk situasi menang untuk X = +10, kalah = -10, dan draw = 0.

Algoritma Minimax Penyelesaian pada Tic-Tac-Toe (Algoritma Min Max) :

Best-First Search Prinsip best-first search : Lakukan node expansion terhadap node di fringe yang nilai f(n)-nya paling kecil. Ide dasar : f(n) adalah sebuah evaluation function → fungsi yang menyatakan perkiraan seberapa “bagus” sebuah node. Kenapa perkiraan? Kalau tidak, bukan search namanya! Implementasi: fringe adalah sebuah priority queue di mana node disortir berdasarkan f(n). Contoh : Uniform-cost search Greedy (best-first) search A* search

Heuristic Function Kunci keberhasilan best-first search terletak di heuristic function. Heuristic adalah : rule of thumb “kiat-kiat sukses”, “tips-tips keberhasilan” informasi tambahan bagi si agent (agar lebih sukses) → informed search Heuristic function h(n) adalah fungsi yang menyatakan estimasi cost dari n ke goal state. Ada banyak kemungkinan heuristic function untuk sebuah masalah.

Heuristic Function Contoh : (Romania with step costs in km) Sebuah heuristic function untuk agent turis Rumania : hSLD(n) = jarak straight-line distance dari n ke Bucharest.

Greedy Best-First Search Prinsip greedy best-first search : Lakukan node expansion terhadap node di fringe yang nilai h(n)-nya paling kecil. Greedy best-first search selalu memilih node yang kelihatannya paling dekat ke goal.

Greedy Best-First Search Prinsip greedy best-first search : Lakukan node expansion terhadap node di fringe yang nilai h(n)-nya paling kecil. Greedy best-first search selalu memilih node yang kelihatannya paling dekat ke goal.

Greedy Best-First Search Prinsip greedy best-first search : Lakukan node expansion terhadap node di fringe yang nilai h(n)-nya paling kecil. Greedy best-first search selalu memilih node yang kelihatannya paling dekat ke goal.

Greedy Best-First Search Prinsip greedy best-first search : Lakukan node expansion terhadap node di fringe yang nilai h(n)-nya paling kecil. Greedy best-first search selalu memilih node yang kelihatannya paling dekat ke goal.

Greedy Best-First Search Properties of greedy best-first search : Complete? Ya, jika state space terbatas dan pengulangan state- nya ditangani. (Lihat Neamt → Oradea) Time complexity? Secara teoritis, O(bm), tetapi heuristic function yang baik akan lebih mempercepat. Space complexity? O(bm) → semua node disimpan di memory Optimal? Tidak.

A* Search Prinsip A* search : Hindari node yang berada di path yang “mahal”. Evaluation function f(n) = g(n) + h(n) : g(n) = Path cost ke n h(n) = Estimasi path cost dari n ke goal f(n) = Estimasi total cost melalui n Contoh penelusuran A* search :

A* Search Prinsip A* search : Hindari node yang berada di path yang “mahal”. Evaluation function f(n) = g(n) + h(n) : g(n) = Path cost ke n h(n) = Estimasi path cost dari n ke goal f(n) = Estimasi total cost melalui n Contoh penelusuran A* search :

A* Search Prinsip A* search : Hindari node yang berada di path yang “mahal”. Evaluation function f(n) = g(n) + h(n) : g(n) = Path cost ke n h(n) = Estimasi path cost dari n ke goal f(n) = Estimasi total cost melalui n Contoh penelusuran A* search :

A* Search Prinsip A* search : Hindari node yang berada di path yang “mahal”. Evaluation function f(n) = g(n) + h(n) : g(n) = Path cost ke n h(n) = Estimasi path cost dari n ke goal f(n) = Estimasi total cost melalui n Contoh penelusuran A* search :

A* Search Prinsip A* search : Hindari node yang berada di path yang “mahal”. Evaluation function f(n) = g(n) + h(n) : g(n) = Path cost ke n h(n) = Estimasi path cost dari n ke goal f(n) = Estimasi total cost melalui n Contoh penelusuran A* search :

A* Search Prinsip A* search : Hindari node yang berada di path yang “mahal”. Evaluation function f(n) = g(n) + h(n) : g(n) = Path cost ke n h(n) = Estimasi path cost dari n ke goal f(n) = Estimasi total cost melalui n Contoh penelusuran A* search :

Admissible Heuristics A* search menggunakan heuristic yang admissible 0 ≤ h(n) ≤ h*(n), di mana h*(n) adalah cost dari n yang sebenarnya. Bahasa mudahnya : nilai sebuah heuristic function tidak pernah melebihi cost ke goal yang sebenarnya. Contoh : hSLD(n). A* search adalah optimal. Bukti optimalitas A* (1) : Andaikan G2 adalah goal suboptimal di dalam fringe. Ambil n sebuah fringe node pada path menuju G, goal optimal, sbb : Karena f(G2) > f(n), algoritma A* search tidak pernah akan memilih G2 untuk di-expand. Teorema terbukti! f(G2) = g(G2), karena h(G2) = 0 g(G2) > g(G), karena G2 tidak optimal g(G) ≥ f(n), karena h admissible

Admissible Heuristics Consistency sebuah heuristic : Sebuah heuristic dikatakan consistent jika : h(n) ≤ c(n, a, n’) + h(n’) Jika h konsisten, maka : f(n’) = g(n’) + h(n’) = g(n) + c(n, a, n’) + h(n’) ≥ g(n) + h(n) ≥ f(n) Pada sembarang path, nilai f(n) tidak pernah turun (nondecreasing), atau monotonic. Theorem : If h(n) is consistent, A* using GRAPH- SEARCH is optimal

Admissible Heuristics Bukti optimalitas A*(2) Node expansion A* berdasarkan urutan nilai f . Bayangkan penelusuran state space yang dilakukan A* menambahkan f-contour. Bandingkan dengan “lapisan” yang ditelusuri breadth- first dan uniform-cost.

A* Search Properties of A* : Complete? Ya, kecuali jumlah node di mana f ≤ f(G) tak terbatas. Time complexity? Eksponensial dalam (error h x jumlah step solusi). Space complexity? O(bm) → semua node disimpan di memory. Optimal? Ya. A* meng-expand semua node di mana f(n) < C* A* (mungkin) meng-expand beberapa node di mana f(n) = C* A* tidak pernah meng-expand node di mana f(n) > C*

Merancang Heuristic Contoh Admissible Heuristic h(n) untuk 8-puzzle h1(n) : jumlah angka yang salah posisi. h2(n) : jumlah jarak semua angka dari posisi yang benar (base Manhattan Distance) Diketahui posisi tile 1 di Start State (2,2) dan di Goal State (0,0) Hitung Dman(1) = |2-0|+|2-0| = 2 + 2 = 4 h1(s) = 6 h2(s) = Dman(1) + Dman(2)+ Dman(3) + Dman(4)+ Dman(5) + Dman(6)+ Dman(7) + Dman(8)= 4+0+3+3+1+0+2+1=14 (0,0) (0,1) (0,2) (1,0) (1,1) (1,2) (2,0) (2,1) (2,2) Posisi

Merancang Heuristic Latihan Admissible Heuristic Perhatikan 8-puzzle berikut : Tentukan h1(s) dan h2(s) !

A* Search f(N) = h(N) = jumlah angka yang salah posisi 3 4 3 4 5 3 3 4 2 4 4 2 1

A* Search f(N) = g(N) + h(N) dengan h(N) = jumlah angka yang salah posisi 3+3 3+4 1+5 1+3 2+3 2+4 5+2 5+0 0+4 3+4 3+2 4+1

A* Search f(N) = h(N) =  jarak semua angka dari posisi yang benar (base Manhattan Distance) 6 4 5 3 2 5 4 2 1

Merancang Heuristic Membandingkan dua heuristic h1 dan h2 sama-sama admissible. Mana yang lebih baik? Bandingkan jumlah node yang di-expand: Jika h2(n) ≥ h1(n) untuk semua n (dan keduanya admissible), dikatakan bahwa h2 men-dominate h1 dan lebih baik untuk search. Semakin besar nilai h(n), semakin dekat ke h*(n), semakin banyak node yang tidak di-expand (di- prune), semakin efisien search-nya! D IDS A*(h1) A*(h2) 12 3,473,941 539 113 24 54,000,000,000 39,135 1,641

Hill-Climbing Search NILAI sebuah node → h(n) (heuristic function) Bayangkan seorang penderita amnesia mendaki gunung dengan kabut tebal (thick fog). State: posisi koordinat (X,Y) h(n): ketinggian pendaki Konsep penting: state space sebagai landscape. Disebut juga greedy local search Tergantung pilihan initial state, hill-climbing bisa terperangkap dalam local maximum.

Hill-Climbing Search Local maximum: tidak ada tetangga yang lebih baik, tetapi bukan solusi optimal. Plateau (dataran): semua tetangga sama baiknya. Contoh Hill-Climbing Search :

Genetic Algorithms (Hybrid) Konsep Algoritma Genetika Hybrid : (Case : Travelling Salesman Problem) Pertama, proses pembentukan matrix sesuai dengan jumlah populasi yang diinginkan. Kedua, proses membaca data jarak antar kota. Ketiga, proses generate individu berupa rute secara random sebanyak jumlah populasi. Keempat, proses pemberian nilai jumlah jarak tempuh untuk masing-masing individu. Note : Kemudian secara berulang melakukan proses diatas sebanyak generasi yang diinginkan untuk menghasilkan individu-individu baru yang lebih baik atau paling tidak sama dengan individu sebelumnya.

Genetic Algorithms (Hybrid) Diagram Sistem : Input Parameter : Jumlah Individu Dlm Satu Populasi (Pop_Size)= 5 nilai epsilon = 0.8 nilai P = 4 nilai Pc = 0.5 nilai Pm = 0.01 max gen = 2 jumlah_kota : 10

Genetic Algorithms (Hybrid) Detail Algoritma Genetika Hybrid : localsearch_1 : proses pertukaran gen dalam suatu individu proses di-loop sebanyak t kali salah satu gen ditukar dengan gen yang berada disebelahnya dilakukan perhitungan jumlah jarak tempuhnya jika dihasilkan individu yang lebih baik (jumlah jarak tempuh lebih kecil), maka proses dilakukan dari awal loop (t=0) jika tidak dilanjutkan proses loop berikutnya (t=t+1) fitness : proses penghitungan nilai fitness untuk masing-masing individu formula -> f(x) = fb + fk - nilai_individu(x), dimana fb : nilai maximum fk : nilai minimum

Genetic Algorithms (Hybrid) Detail Algoritma Genetika Hybrid : selection_crossover : proses pencarian calon orang tua dari individu baru yang akan dibentuk untuk proses crossover pemilihan secara acak 3 individu yang berbeda yang dilakukan sebanyak jumlah populasi dipilih salah satu individu yang memiliki nilai fitness tertinggi dicari suatu nilai random bertipe float yang dibandingkan dengan Pc jika nilai random lebih kecil dari Pc maka individu tersebut terpilih menjadi orang tua untuk proses crossover

Genetic Algorithms (Hybrid) Detail Algoritma Genetika Hybrid : selection_mutation : proses pencarian calon orang tua dari individu baru yang akan dibentuk untuk proses mutasi pemilihan secara acak 3 individu yang berbeda yang dilakukan sebanyak jumlah populasi dipilih salah satu individu yang memiliki nilai fitness tertinggi dicari suatu nilai random bertipe float yang dibandingkan dengan Pm jika nilai random lebih kecil dari Pm maka individu tersebut terpilih menjadi orang tua untuk proses mutasi

Genetic Algorithms (Hybrid) Detail Algoritma Genetika Hybrid : crossover_pmx : proses crossover berdasarkan dari orang tua yang terpilih pada proses sebelumnya orang tua harus berpasangan jika ganjil maka akan dihilangkan 1 untuk orang tua yang saling berpasangan dilakukan proses crossover yang dilakukan secara random mutation_bim : proses mutasi berdasarkan dari orang tua yang terpilih pada proses sebelumnya masing-masing orangtua melakukan mutasi gen secara random, artinya tidak harus dengan gen sebelahnya cluster_offspring_crossover_mutation : proses pemilihan individu terbaik hasil dari individu pada proses crossover dan mutasi dikumpulkan dipersiapkan untuk proses selanjutnya

Genetic Algorithms (Hybrid) Detail Algoritma Genetika Hybrid : localsearch_2 : proses pertukaran gen dalam suatu individu proses sama dengan localsearch individu yang diproses berasal dari individu terbaik pada proses sebelumnya show_population_new : proses menampilkan populasi baru yang dihasilkan dari individu-individu terbaik hasil dari localsearh_1 dan localsearch_2 dikumpulkan, kemudian diurutkan dan diambil sesuai jumlah populasi untuk menjadi populasi yang baru

Genetic Algorithms (Hybrid) Data jarak antar kota : 1 2 3 4 5 6 7 8 9 99 106 167 136 194 284 92 69 160 205 266 235 293 383 191 168 259 61 30 271 361 169 37 91 31 320 373 218 98 301 391 199 67 90 102 234 290 192 324 132 188 128 343 Contoh : Jarak kota 3 – 5 = 320

Genetic Algorithms (Hybrid) Generate Populasi : Individu : Nilai Z : Individu ke 0 : 8 1 2 4 0 5 6 7 3 9 Individu ke 1 : 2 8 1 9 6 7 5 3 0 4 Individu ke 2 : 8 5 2 4 3 1 9 6 7 0 Individu ke 3 : 1 2 4 8 6 7 9 3 5 0 Individu ke 4 : 4 8 7 9 0 6 3 1 5 2 Nilai Z : nilai z individu ke 0: 1391 = (8–1)+(1-2)+(2-4)+(4-0)+(0-5)+(5-6)+(6-7)+(7-3)+(3-9)+(9-8) = 168+205+30+136+194+90+192+218+30+128 = 1391 1391 1754 1787 1649 2064

Genetic Algorithms (Hybrid) Localsearch  Populasi Baru : Individual to 4 : 9 8 2 5 3 0 4 1 7 6 result_evaluation initial = 1967 exchange gen t =0 Individual to 4 : 9 8 2 5 0 3 4 1 7 6 result_evaluation stlh di exchange = 1736 result_evaluation initial = 1736 Individual new to 4 : 9 8 2 5 0 3 4 1 7 6 Individual to 4 : 9 8 2 5 0 3 1 4 7 6 result_evaluation stlh di exchange = 1979

Genetic Algorithms (Hybrid) Localsearch  Populasi Baru (Lanjutan) : Individual new to 4 : 9 2 8 5 0 3 4 1 7 6 exchange gen t =3 Individual to 4 : 9 8 2 5 0 3 4 1 7 6 result_evaluation stlh di exchange = 1736 exchange gen t =4 Individual to 4 : 9 2 5 8 0 3 4 1 7 6 result_evaluation stlh di exchange = 1771 Individual new to 4 last : 9 2 8 5 0 3 4 1 7 6 result_evaluation initial = 1662

Genetic Algorithms (Hybrid) Localsearch  Populasi Baru (Lanjutan) : Nilai Evaluasi Individu terakhir : Nilai Fitness individu ke 0 : 8 1 2 4 0 5 6 7 9 3 individu ke 1 : 2 8 1 9 6 5 7 3 4 0 individu ke 2 : 8 5 2 4 3 1 9 6 7 0 individu ke 3 : 1 4 2 8 6 7 3 9 5 0 individu ke 4 : 4 8 7 9 0 3 6 5 1 2 fb = 1787 fk = 1331 nilai fitness individu ke 0: 1787 = fb + fk – (nilai_evaluasi Individu ke 0) = 1787+1331-1331 = 1787 1331 1490 1787 1649 1705 1787 1628 1331 1469 1413

Genetic Algorithms (Hybrid) Crossover  Induk Crossover : Hasil seleksi awal crossover: individu ke->3 : 1469 individu ke->1 : 1628 individu ke->4 : 1413 tertinggi individu ke->1 : 1628 individu ke->0 : 1787 individu ke->2 : 1331 tertinggi individu ke->0 : 1787

Genetic Algorithms (Hybrid) Crossover  Induk Crossover (Lanjutan) : individu ke->0 : 1787 individu ke->3 : 1469 individu ke->1 : 1628 tertinggi individu ke->0 : 1787 individu ke->4 : 1413 individu ke->2 : 1331 tertinggi individu ke->3 : 1469 Hasil turnamen yang akan menjadi calon induk:

Genetic Algorithms (Hybrid) Crossover  Induk Crossover (Lanjutan) : Calon induk crossover (jika nilai random < Pc) : individu ke->1 : 0.174 --> induk crossover individu ke->0 : 0.833 individu ke->0 : 0.011 --> induk crossover individu ke->0 : 0.217 --> induk crossover individu ke->3 : 0.358 --> induk crossover Jumlah calon induk =4 Induk crossover: individu ke->1 : 1628 individu ke->0 : 1787 individu ke->3 : 1469

Genetic Algorithms (Hybrid) Mutasi  Induk Mutasi : Hasil seleksi awal mutasi: individu ke->3 : 1469 individu ke->2 : 1331 individu ke->1 : 1628 tertinggi individu ke->1 : 1628 individu ke->0 : 1787 tertinggi individu ke->0 : 1787

Genetic Algorithms (Hybrid) Mutasi  Induk Mutasi (Lanjutan) : individu ke->0 : 1787 individu ke->1 : 1628 individu ke->2 : 1331 tertinggi individu ke->0 : 1787 individu ke->3 : 1469 individu ke->4 : 1413 tertinggi individu ke->1 : 1628 Hasil turnamen yang akan menjadi calon induk:

Genetic Algorithms (Hybrid) Mutasi  Induk Mutasi (Lanjutan) : Calon induk mutasi (jika nilai random < Pm): individu ke->1 : 0.01 individu ke->0 : 0.067 individu ke->1 : 0.005 --> induk mutasi individu ke->0 : 0.075 individu ke->1 : 0.025 Jumlah calon induk =1 Induk mutasi: individu ke->1 : 1628

Genetic Algorithms (Hybrid) Crossover_pmx  Anak Crossover : Display induk crossover : individu ke->1 : 1628 individu ke->0 : 1787 individu ke->3 : 1469 Perkawinan individu 1 & 0 individu ke->1 : 2 8 1 9 6 5 7 3 4 0 individu ke->0 : 8 1 2 4 0 5 6 7 9 3 Memilih substring secara random : pos_string =3 Start tukar substring : temp_string[0]][3] =4 temp_string[1][3] =9 temp_string[0][3] =4

Genetic Algorithms (Hybrid) Crossover_pmx  Anak Crossover : pos_string =4 temp_string[0]][4] =0 temp_string[1][4] =6 temp_string[0][4] =0 pos_string =5 temp_string[0]][5] =5 temp_string[1][5] =5 temp_string[0][5] =5 pos_string =6 temp_string[0]][6] =6 temp_string[1][6] =7 temp_string[0][6] =6 pos_string =7 temp_string[0]][7] =7 temp_string[1][7] =3 temp_string[0][7] =7

Genetic Algorithms (Hybrid) Crossover_pmx  Anak Crossover : hasil penukaran berpasangan dua : individu ke->1 : 2 8 1 4 0 5 6 7 4 0 individu ke->0 : 8 1 2 9 6 5 7 3 9 3 Perkawinan individu 0 & 3 individu ke->0 : 8 1 2 4 0 5 6 7 9 3 individu ke->3 : 1 4 2 8 6 7 3 9 5 0 Memilih substring secara random : pos_string =5 Start tukar substring : temp_string[2]][5] =7 temp_string[3][5] =5 temp_string[2][5] =7

Genetic Algorithms (Hybrid) Crossover_pmx  Anak Crossover : pos_string =6 temp_string[2]][6] =3 temp_string[3][6] =6 temp_string[2][6] =3 pos_string =7 temp_string[2]][7] =9 temp_string[3][7] =7 temp_string[2][7] =9 pos_string =8 temp_string[2]][8] =5 temp_string[3][8] =9 temp_string[2][8] =5 pos_string =9 temp_string[2]][9] =0 temp_string[3][9] =3 temp_string[2][9] =0 hasil penukaran berpasangan dua : individu ke->0 : 8 1 2 4 0 7 3 9 5 0 individu ke->3 : 1 4 2 8 6 5 6 7 9 3 Display anak dari crossover : individu ke->1 : 2 8 1 4 0 5 6 7 9 3 individu ke->0 : 8 1 2 9 6 5 7 3 4 0 individu ke->0 : 8 1 2 4 6 7 3 9 5 0 individu ke->3 : 1 4 2 8 0 5 6 7 9 3

Genetic Algorithms (Hybrid) Mutasi_bim  Anak Mutasi : proses mutasi_bim : individu ke->1 : 1628 individu ke->1 : 2 8 1 9 6 5 7 3 4 0 Memilih substring secara random : pos_string =5 Start tukar substring : temp_string2[0][5] =4 = (jumlah_gen -1) – pos_string = 10-1-5 = 4 temp_string2_update[0][8] =5 Menampilkan anak mutasi : individu ke->1 : 2 8 1 9 6 4 7 3 5 0

Genetic Algorithms (Hybrid) Gabungan Anak Crossover + Anak Mutasi : Menampilkan gabungan anak crossover dan mutasi : individu ke->0 : 2 8 1 4 0 5 6 7 9 3 individu ke->1 : 8 1 2 9 6 5 7 3 4 0 individu ke->2 : 8 1 2 4 6 7 3 9 5 0 individu ke->3 : 1 4 2 8 0 5 6 7 9 3 individu ke->4 : 2 8 1 9 6 4 7 3 5 0 sum_induk =5 (anak-anak tersebut telah menjadi induk)

Genetic Algorithms (Hybrid) Localsearch2  Populasi Baru2 : Individu ke 0 : 2 8 1 4 0 5 6 7 9 3 hasil_evaluasi awal = 1331 tukar gen t =0 Individu ke 0 : 2 8 1 4 5 0 6 7 9 3 hasil_evaluasi stlh di tukar = 1690 Individu baru ke 0 : 2 8 1 4 0 5 6 7 9 3 tukar gen t =1 tukar gen t =2 Individu ke 0 : 2 8 4 1 0 5 6 7 9 3 hasil_evaluasi stlh di tukar = 1193 hasil_evaluasi awal = 1193 Individu baru ke 0 : 2 8 4 1 0 5 6 7 9 3

Genetic Algorithms (Hybrid) Localsearch2  Populasi Baru2 (Lanjutan) : tukar gen t =2 Individu ke 0 : 2 8 4 0 1 6 5 7 9 3 hasil_evaluasi stlh di tukar = 1193 e_random =0.833 Individu baru ke 0 : 2 8 4 0 1 5 6 7 9 3 tukar gen t =3 Individu ke 0 : 2 8 4 0 1 5 6 7 3 9 hasil_evaluasi stlh di tukar = 1253 tukar gen t =4 Individu baru ke 0 terakhir : 2 8 4 0 1 5 6 7 9 3

Genetic Algorithms (Hybrid) Gabungan Populasi baru Localsearch1 + Localsearch2 : Menampilkan populasi gabungan: (Hasil populasi baru localsearch + localsearch2) 8 1 2 4 0 5 6 7 9 3 : 1331 2 8 1 9 6 5 7 3 4 0 : 1490 8 5 2 4 3 1 9 6 7 0 : 1787 1 4 2 8 6 7 3 9 5 0 : 1649 4 8 7 9 0 3 6 5 1 2 : 1705 2 8 4 0 1 5 6 7 9 3 : 1193 8 1 2 9 6 5 7 3 4 0 : 1453 8 1 4 2 7 6 9 3 5 0 : 1697 1 4 2 8 0 6 5 7 9 3 : 1331 2 8 1 9 6 7 4 3 5 0 : 1849

Genetic Algorithms (Hybrid) Gabungan Populasi baru Localsearch1 + Localsearch2 : Menampilkan populasi gabungan hasil sortir: individu ke->0 : 2 8 4 0 1 5 6 7 9 3 : 1193 individu ke->1 : 8 1 2 4 0 5 6 7 9 3 : 1331 individu ke->2 : 1 4 2 8 0 6 5 7 9 3 : 1331 individu ke->3 : 8 1 2 9 6 5 7 3 4 0 : 1453 individu ke->4 : 2 8 1 9 6 5 7 3 4 0 : 1490 individu ke->5 : 1 4 2 8 6 7 3 9 5 0 : 1649 individu ke->6 : 8 1 4 2 7 6 9 3 5 0 : 1697 individu ke->7 : 4 8 7 9 0 3 6 5 1 2 : 1705 individu ke->8 : 8 5 2 4 3 1 9 6 7 0 : 1787 individu ke->9 : 2 8 1 9 6 7 4 3 5 0 : 1849 Menampilkan populasi gabungan sebanyak pop_size awal: individu ke ->0 : 2 8 4 0 1 5 6 7 9 3 : 1193 individu ke ->1 : 8 1 2 4 0 5 6 7 9 3 : 1331 individu ke ->2 : 1 4 2 8 0 6 5 7 9 3 : 1331 individu ke ->3 : 8 1 2 9 6 5 7 3 4 0 : 1453 individu ke ->4 : 2 8 1 9 6 5 7 3 4 0 : 1490

Ringkasan Best-first search : Uniform-cost search : f(n) = g(n) Greedy best-first search : f(n) = h(n) A* search : f(n) = g(n) + h(n) Dengan heuristic yang admissible dan consistent , A* pasti complete dan optimal . Heuristic demikian dapat diperoleh dari variasi masalah yang dipermudah, atau submasalah. Search di mana environment-nya tidak observable atau non- deterministic masih bisa diatasi. Permasalahan utama : menghindari local maximum secara stochastic.

Latihan Individu Selesaikan 8-Puzzle di bawah ini dengan algoritma A* Search berdasarkan teknik “f(N) = h(N) = jumlah angka yang salah posisi” (min. ada 3 depth) :

Latihan Individu Perhatikan Peta berikut ! (Optional) Buatlah Tree-nya, lalu selesaikan proses searching dari “Oradea ke Bucharest” menggunakan Algoritma Greedy Best-First Search !

Tugas Kelompok Berdasarkan latihan individu di slide 64, selesaikan proses searching dari “Oradea ke Bucharest” menggunakan Algoritma A* Search ! Selesaikan 8-Puzzle di bawah ini dengan algoritma A* Search berdasarkan 2 teknik berikut (setiap teknik min. ada 5 depth) : f(N) = g(N) + h(N) dengan h(N) = jumlah angka yang salah posisi f(N) = h(N) = jumlah jarak semua angka dari posisi yang benar (base Manhattan Distance) Note : kerjakan 1 dari 2 (a atau b)

Selesai