Uploaded by gbt.prabowo16

Gilbert Evan 07111840000022

advertisement
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.
Download