LAPORAN TUGAS PERENCANAAN KOMPONEN TERPROGRAM Reinforcement Learning Dengan Matlab Disusun Oleh: Gilbert Evan Prabowo 07111840000022 S1-Teknik Elektro INSTITUT TEKNOLOGI SEPULUH NOPEMBER SURABAYA 2020 BAB I Ringkasan Algoritma Pada folder file QL_Shortest_5x5 yang telah diunduh dapat dilihat bahwa terdapat 6 program matlab yang meliputi action, print_Qtable, Q_learning, Routing, Search_Location, update_Qvalue. Q_Learning.m merupakan program utama dari program maze ini. Pada program ini Q value table sebelum dan sesudah pembelajaran dapat ditunjukan. File Action.m adalah fungsi atau program yang menentukan Langkah dari agent-nya dalam hal ini agentnya adalah people atau orang. Sementara Search_Location.m. adalah fungsi yang menunjukan mengenai lokasi dari agents saat ini. Program update_Qvalue.m. merupakan program yang digunakan untuk mengupdate Q-Value. Sementara Routing.m adalah fungsi yang digunakan untuk menunjukan rute berdasarkan Q-table. Berikut adalah program dari Q_Learning.m Gambar 1. Program Q_Learning.m Dapat dilihat dalam program bahwa setting awal hyperparameter yaitu alpha dan gamma adalah 0.5 dan 0.9. pada awalnya dibuat table dari Q value yang nilainya random. Perintah disp("Q-Table and route before learning"); adalah perintah untuk mencetak pada command window kalimat Q-Table and route before learning. print_Qtable(Q_table); adalah perintah untuk mencetak Qtable yang telah dibuat secara random tadi. Perintah Routing(Q_table); merupakan perintah untuk menunjukan routing dari Q-table yang lama. Berikutnya adalah fungsi perulangan. Pada program dapat dilihat bahwa dilakukan 300 generation sehingga perulangannya dilakukan 300 kali. Lalu di definisikan lokasi orang atau agent dengan menggunakan fungsi “maze = [1 0 0 0 0; 0 0 0 0 0 ; 0 0 0 0 0 ; 0 0 0 0 0 ; 0 0 0 0 0 ];” Pada fungsi tersebut dapat dilihat bahwa nilai 1 menunjukan bahwa tempat tersebut terisi agent sementara 0 kosong. Berikutnya adalah mendefiniskan epsilon dengan rumus 1- (episode/301). Berikutnya adalah perulangan 15 kali menggunakkan for. Selanjutnya untuk perintah state = Search_Location(maze) ; if state == 25 break end adalah perintah untuk menunjukan lokasi sebelumnya ada dimana. Apabila telah dititik 25 atau diujung maka perulangan akan berhenti. Berikutnya untuk line 32 adalah perintah untuk memanggil program action sehingga dapat menentukan Langkah selanjutnya. Setelah dilakukan action maka nilai Q-value nya akan di update Kembali menggunakan perintah new_state = Search_Location(new_maze) ; [Q_table , new_state ] = update_Qvalue(state,new_state,Q_table,act,alpha,ganma, t) ; maze = new_maze ; setelah itu hasil dari perulangannya ditampilkan dalam bentuk Q-table yang diprint atau dicetak pada command window dari MATLAB. Berikut adalah program Routing.m Gambar 2. Gambar program routing Pada program disp (“Route”); digunakan untuk menampilkan tulisan Route pada command windows. Selanjutnya s akan diberi nilai awal 1 lalu di taruh dalam perulangan for Ketika I mulai dari 1 hingga 25. Setelah itu diberi penghalang sesuai dengan gambar pada mazenya berupa bila S==5 artinya bila s bernilai 5 maka yang dikeluarkan pada command windownya adalah error. Lalu diberi statement if bila snya mencapai nilai 25 maka pada command windownya akan keluar “Goal!”. Selanjutnya pada perintah [M,I] = max(Q_table(s,:)); Digunakan untuk mencari baris yang paling besar dari Q table. Berikutnya adalah conditional statement jika I = 1 jika sisa pembagian antara s dengan 5 adalah 0 maka nilainya s akan ditambah 1. Selain itu akan mengeluarkan output error. Berikutnya untuk I=2 bila s diatas 5 maka nilai s akan dikurangi dengan 5 selain itu akan terjadi error. Untuk I = 3 jika sisa pembagian antara s dengan 5 adalah 1 maka nilai s akan dikurangi 1, selain itu akan terjadi error. Untuk I = 4 atau kolom ke 4, nilai s nya kurang dari 21 maka nilai s akan ditambah 5. Program case statement ini digunakan untuk menentukan batas Gerakan dari agentnya jadi 5x5nya. Berikutnya adalah penjelasan mengenai program action.m. Berikut adalah program action.m Gambar 3. Program Action.m Pada action.m ini menenetukan Langkah dari agent. Disini digunakan greedy algorithm untuk menentukan Langkah selanjutnya dari agentnya. Greedy algorithm pada dasarnya memilih nilai yang terbesar dari sebuah node dibandingkan dengan pilihan yang lain. Lalu setelah dilakukan pemilihan Langkah selanjtunya menggunakan greedy algorithm, state i, state j, dan state diupdtae berdasarkan langkah yang diambil menggunakan greedy algorithm. Langkah selanjutnya adalah menentukan apakah langkah yang diambil keluar dari batas labirinnya. Apabila keluar dari batas maka dilakukan pemilihan action lagi. Program berikutnya adalah update Q-value. Pada update Q-value ini dilakukan penilaian untuk penghalang. Dapat dilihat pada program apabila mengenai penghalang maka nilainya akan dikurangi 100 dan apabila agent gagal menemukan jalan dalam 15 langkah maka nilainya akan dikurangi 50. Apabila agents sampai pada kotak ke 25 maka nilainya akan diberi nilai 100. Sementara yang lain tidak. Ini unutk menunjukan langkah mana yang boleh dan mana yang tidak dan membatasi langkah dari agentsnya agar lebih efektif. Berikut adalah program dari update_Qvalue.m Gambar 4. Program update_Qvalue Berikutnya adalah program search_Location.m program ini untuk menunjukan lokasi dari agent saat ini. Hasil dari outputnya berupa state, state I, dan state j. 3 data ini nantinya akan digunakan untuk menentukan action yang diambil oleh agentnya. Berikut adalah gambar dari programnya. Gambar 5. Program search_Location.m Yang terahkir adalah program untuk mencetak Q-table nya. Dapat dilihat pada gambar berikut. Gambar 6. Program print_Qtable.m Program ini akan melakukan pengumpulan data dimmana state akan dituliskan dari state 1 sampai state 5. Lalu, pada matiks right akan mengambil data dari Q-table kolom pertama. UP merupakan matriks S*1 yang mengambil data dari Qtable kolom kedua. DOWN merupakan matriks S*1 yang mengambil data dari Qtable kolom ketiga. LEFT merupakan matriks S*1 yang mengambil data dari Qtable kolom keempat. BAB II Hasil Running Program Setelah program print_Qtable di run maka didapatkan hasil outputnya adalah sebagai berikut. Gambar 2. Hasil Running Program Gambar 3. Hasil Running Program BAB III Kesimpulan Setelah di jalakan dapat dilihat bahwa nantinya unutk mencari jalan rute terdekat dilakukan dari reinforcement learning. Sementara untuk rutenya dilakukan penjumlahan dari nilai pada table. Nantinya yang diambil adalah nilai yang terbesar setelah dijumlahkan. Aapabila nilai penjumlahan hingga minus atau kurang dari nol makayang keluar adalah Error.