Kecerdasan Buatan Artificial Intelligence Informed Searching Imam Cholissodin
Kecerdasan Buatan/ Artificial Intelligence Informed Searching Imam Cholissodin, S. Si. , M. Kom.
Pokok Bahasan 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 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. : o Cutoff: batasi depth yang diproses (≈ IDS). o 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) = w 1 f 1(s) + w 2 f 2(s) +. . . + wnfn (s) = Mis. untuk catur: w 1 = 1, f 1 = jumlah pion putih - jumlah pion hitam w 2 = 3, f 2 = 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 : o Uniform-cost search o Greedy (best-first) search o A* search
Heuristic Function Kunci keberhasilan best-first search terletak di heuristic function. Heuristic adalah : o rule of thumb o “kiat-kiat sukses”, “tips-tips keberhasilan” o 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 : h. SLD(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 : o Complete? Ya, jika state space terbatas dan pengulangan statenya ditangani. (Lihat Neamt → Oradea) o Time complexity? Secara teoritis, O(bm), tetapi heuristic function yang baik akan lebih mempercepat. o Space complexity? O(bm) → semua node disimpan di memory o Optimal? Tidak.
A* Search Prinsip A* search : Hindari node yang berada di path yang “mahal”. Evaluation function f(n) = g(n) + h(n) : o g(n) = Path cost ke n o h(n) = Estimasi path cost dari n ke goal o 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) : o g(n) = Path cost ke n o h(n) = Estimasi path cost dari n ke goal o 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) : o g(n) = Path cost ke n o h(n) = Estimasi path cost dari n ke goal o 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) : o g(n) = Path cost ke n o h(n) = Estimasi path cost dari n ke goal o 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) : o g(n) = Path cost ke n o h(n) = Estimasi path cost dari n ke goal o 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) : o g(n) = Path cost ke n o h(n) = Estimasi path cost dari n ke goal o 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 : h. SLD(n). A* search adalah optimal. Bukti optimalitas A* (1) : o Andaikan G 2 adalah goal suboptimal di dalam fringe. Ambil n sebuah fringe node pada path menuju G, goal optimal, sbb : • • • f(G 2) = g(G 2), karena h(G 2) = 0 g(G 2) > g(G), karena G 2 tidak optimal g(G) ≥ f(n), karena h admissible o Karena f(G 2) > f(n), algoritma A* search tidak pernah akan memilih G 2 untuk di-expand. Teorema terbukti!
Admissible Heuristics Consistency sebuah heuristic : o Sebuah heuristic dikatakan consistent jika : h(n) ≤ c(n, a, n’) + h(n’) o Jika h konsisten, maka : f(n’) = g(n’) + h(n’) = g(n) + c(n, a, n’) + h(n’) ≥ g(n) + h(n) ≥ f(n) o Pada sembarang path, nilai f(n) tidak pernah turun (nondecreasing), atau monotonic. o Theorem : If h(n) is consistent, A* using GRAPHSEARCH is optimal
Admissible Heuristics Bukti optimalitas A*(2) o Node expansion A* berdasarkan urutan nilai f. o Bayangkan penelusuran state space yang dilakukan A* menambahkan f-contour. o Bandingkan dengan “lapisan” yang ditelusuri breadthfirst dan uniform-cost.
A* Search Properties of A* : o Complete? Ya, kecuali jumlah node di mana f ≤ f(G) tak terbatas. o Time complexity? Eksponensial dalam (error h x jumlah step solusi). o Space complexity? O(bm) → semua node disimpan di memory. o 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 o h(n) untuk 8 -puzzle • h 1(n) : jumlah angka yang salah posisi. • h 2(n) : jumlah jarak semua angka dari posisi yang benar (base Manhattan Distance) (0, 0) (0, 1) (0, 2) (1, 0) (1, 1) (1, 2) (2, 0) (2, 1) (2, 2) Posisi • 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 o h 1(s) = 6 o h 2(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
Merancang Heuristic Latihan Admissible Heuristic o Perhatikan 8 -puzzle berikut : Tentukan h 1(s) dan h 2(s) !
A* Search f(N) = h(N) = jumlah angka yang salah posisi 3 5 3 4 2 4 2 3 3 0 4 5 4 1
A* Search f(N) = g(N) + h(N) dengan h(N) = jumlah angka yang salah posisi 3+3 1+5 2+3 3+4 5+2 0+4 3+2 1+3 2+3 5+0 3+4 1+5 2+4 4+1
A* Search f(N) = h(N) = jarak semua angka dari posisi yang benar (base Manhattan Distance) 6 5 2 4 3 0 4 6 5 1
Merancang Heuristic Membandingkan dua heuristic o h 1 dan h 2 sama-sama admissible. Mana yang lebih baik? Bandingkan jumlah node yang di-expand: D IDS A*(h 1) A*(h 2) 12 3, 473, 941 539 113 24 54, 000, 000 39, 135 1, 641 o Jika h 2(n) ≥ h 1(n) untuk semua n (dan keduanya admissible), dikatakan bahwa h 2 men-dominate h 1 dan lebih baik untuk search. o Semakin besar nilai h(n), semakin dekat ke h*(n), semakin banyak node yang tidak di-expand (diprune), semakin efisien search-nya!
Hill-Climbing Search NILAI sebuah node → h(n) (heuristic function) Bayangkan seorang penderita amnesia mendaki gunung dengan kabut tebal (thick fog). o State: posisi koordinat (X, Y) o 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) o Pertama, proses pembentukan matrix sesuai dengan jumlah populasi yang diinginkan. o Kedua, proses membaca data jarak antar kota. o Ketiga, proses generate individu berupa rute secara random sebanyak jumlah populasi. o 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 : o. Jumlah Individu Dlm Satu Populasi (Pop_Size)= 5 onilai epsilon = 0. 8 onilai P = 4 onilai Pc = 0. 5 onilai Pm = 0. 01 omax gen = 2 ojumlah_kota : 10
Genetic Algorithms (Hybrid) Detail Algoritma Genetika Hybrid : 1. 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) 2. 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 : 1. 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 : 1. 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 : 1. crossover_pmx : proses crossover berdasarkan dari orang tua yang terpilih pada proses sebelumnya 2. 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 3. masing-masing orangtua melakukan mutasi gen secara random, artinya tidak harus dengan gen sebelahnya cluster_offspring_crossover_mutation individu terbaik : proses pemilihan hasil dari individu pada proses crossover dan mutasi dikumpulkan dipersiapkan untuk proses selanjutnya
Genetic Algorithms (Hybrid) Detail Algoritma Genetika Hybrid : 1. localsearch_2 : proses pertukaran gen dalam suatu individu 2. 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 diambil sesuai jumlah populasi untuk menjadi populasi yang baru
Genetic Algorithms (Hybrid) Data jarak antar kota : 0 1 2 3 4 5 6 7 8 9 0 0 99 106 167 136 194 284 92 69 160 1 99 0 205 266 235 293 383 191 168 259 2 106 205 0 61 30 271 361 169 37 91 3 167 266 61 0 31 320 373 218 98 30 4 136 235 30 31 0 301 391 199 67 61 5 194 293 271 320 301 0 90 102 234 290 6 284 383 361 373 391 90 0 192 324 290 7 92 191 169 218 199 102 192 0 132 188 8 69 168 37 98 67 234 324 132 0 128 9 160 259 91 30 61 290 343 188 128 0 Contoh : • Jarak kota 3 – 5 = 320
Genetic Algorithms (Hybrid) Generate Populasi : Nilai Z : Individu : • • • Individu ke 0 : 8 Individu ke 1 : 2 Individu ke 2 : 8 Individu ke 3 : 1 Individu ke 4 : 4 1 8 5 2 8 2 1 2 4 7 4 9 4 8 9 0 6 3 6 0 5 7 1 7 6 6 5 9 9 3 7 3 6 3 1 3 0 7 5 5 9 4 0 0 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 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 exchange gen t =0 • Individual to 4 : 9 8 2 5 0 3 1 4 7 6 result_evaluation stlh di exchange = 1979 • Individual new to 4 : 9 8 2 5 0 3 4 1 7 6
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 • Individual new to 4 : 9 2 8 5 0 3 4 1 7 6 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 : 9 2 8 5 0 3 4 1 7 6 • 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 : • • • individu ke 0 : 8 individu ke 1 : 2 individu ke 2 : 8 individu ke 3 : 1 individu ke 4 : 4 1 8 5 4 8 2 1 2 2 7 4 9 4 8 9 0 6 3 6 0 5 5 1 7 3 6 7 9 3 6 7 3 6 9 5 9 4 7 5 1 3 0 0 0 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 Nilai Fitness 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 – individu ke->4 : 1413 tertinggi individu ke->0 : 1787 – individu ke->4 : 1413 – individu ke->3 : 1469 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->3 : 1469 – individu ke->2 : 1331 tertinggi individu ke->3 : 1469 • Hasil turnamen yang akan menjadi calon induk: – – – individu ke->1 : 1628 individu ke->0 : 1787 individu ke->3 : 1469
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->3 : 1469 – individu ke->0 : 1787 – individu ke->2 : 1331 tertinggi individu ke->0 : 1787 – individu ke->1 : 1628 – individu ke->2 : 1331 – individu ke->3 : 1469 tertinggi individu ke->1 : 1628
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->1 : 1628 – individu ke->4 : 1413 tertinggi individu ke->1 : 1628 • Hasil turnamen yang akan menjadi calon induk: – – – individu ke->1 : 1628 individu ke->0 : 1787 individu ke->1 : 1628
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 : – – pos_string =3 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 : – – pos_string =5 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_string 2[0][5] =4 = (jumlah_gen -1) – pos_string = 10 -1 -5 = 4 – temp_string 2_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) Localsearch 2 Populasi Baru 2 : • 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 • 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 =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) Localsearch 2 Populasi Baru 2 (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 • Individu baru ke 0 : 2 8 4 0 1 5 6 7 9 3 tukar gen t =4 • Individu ke 0 : 2 8 4 0 1 5 6 7 3 9 – hasil_evaluasi stlh di tukar = 1253 • • Individu baru ke 0 : 2 8 4 0 1 5 6 7 9 3 Individu baru ke 0 terakhir : 2 8 4 0 1 5 6 7 9 3
Genetic Algorithms (Hybrid) Gabungan Populasi baru Localsearch 1 + Localsearch 2 : • Menampilkan populasi gabungan: (Hasil populasi baru localsearch + localsearch 2) – – – – – 8124056793 2819657340 8524319670 1428673950 4879036512 2840156793 8129657340 8142769350 1428065793 2819674350 : 1331 : 1490 : 1787 : 1649 : 1705 : 1193 : 1453 : 1697 : 1331 : 1849
Genetic Algorithms (Hybrid) Gabungan Populasi baru Localsearch 1 + Localsearch 2 : • Menampilkan populasi gabungan hasil sortir: – – – – – • individu ke->0 : 2 8 4 0 1 5 6 7 9 3 individu ke->1 : 8 1 2 4 0 5 6 7 9 3 individu ke->2 : 1 4 2 8 0 6 5 7 9 3 individu ke->3 : 8 1 2 9 6 5 7 3 4 0 individu ke->4 : 2 8 1 9 6 5 7 3 4 0 individu ke->5 : 1 4 2 8 6 7 3 9 5 0 individu ke->6 : 8 1 4 2 7 6 9 3 5 0 individu ke->7 : 4 8 7 9 0 3 6 5 1 2 individu ke->8 : 8 5 2 4 3 1 9 6 7 0 individu ke->9 : 2 8 1 9 6 7 4 3 5 0 : 1193 : 1331 : 1453 : 1490 : 1649 : 1697 : 1705 : 1787 : 1849 Menampilkan populasi gabungan sebanyak pop_size awal: – – – individu ke ->0 : 2 8 4 0 1 5 6 7 9 3 individu ke ->1 : 8 1 2 4 0 5 6 7 9 3 individu ke ->2 : 1 4 2 8 0 6 5 7 9 3 individu ke ->3 : 8 1 2 9 6 5 7 3 4 0 individu ke ->4 : 2 8 1 9 6 5 7 3 4 0 : 1193 : 1331 : 1453 : 1490
Ringkasan Best-first search : o Uniform-cost search : f(n) = g(n) o Greedy best-first search : f(n) = h(n) o 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) : a. b. 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
- Slides: 66