From dc2e2f48fd3137a5e89d1f79a221bda34c560570 Mon Sep 17 00:00:00 2001 From: NBCisae <33085131+NBCisae@users.noreply.github.com> Date: Sun, 11 Mar 2018 23:25:57 +0100 Subject: [PATCH] Add files via upload Final version --- simonet/FlappyAgent.py | 22 ++++ simonet/Qtrained | Bin 0 -> 181605 bytes .../__pycache__/FlappyAgent.cpython-36.pyc | Bin 0 -> 616 bytes simonet/__pycache__/state.cpython-36.pyc | Bin 0 -> 436 bytes simonet/run.py | 29 +++++ simonet/state.py | 7 + simonet/trainning.py | 122 ++++++++++++++++++ 7 files changed, 180 insertions(+) create mode 100644 simonet/FlappyAgent.py create mode 100644 simonet/Qtrained create mode 100644 simonet/__pycache__/FlappyAgent.cpython-36.pyc create mode 100644 simonet/__pycache__/state.cpython-36.pyc create mode 100644 simonet/run.py create mode 100644 simonet/state.py create mode 100644 simonet/trainning.py diff --git a/simonet/FlappyAgent.py b/simonet/FlappyAgent.py new file mode 100644 index 0000000..9742510 --- /dev/null +++ b/simonet/FlappyAgent.py @@ -0,0 +1,22 @@ +from state import new_state +import numpy as np +import pickle + +opened = 0 +Q = np.zeros((18,30,21,2)) + +def FlappyPolicy(state, screen): + + global opened + global Q + + if not opened : + file = open("Qtrained",'rb') + Q = pickle.load(file) + opened = 1 + + s = new_state(state) + action = np.argmax(Q[s[0],s[1],s[2]][:]) + return action*119 + + diff --git a/simonet/Qtrained b/simonet/Qtrained new file mode 100644 index 0000000000000000000000000000000000000000..4c90c15b6f1649326e87d59b544e5e9fb1903710 GIT binary patch literal 181605 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 W5CI}U1c<=@g@C8zanIS#3;zLy5~c$H literal 0 HcmV?d00001 diff --git a/simonet/__pycache__/FlappyAgent.cpython-36.pyc b/simonet/__pycache__/FlappyAgent.cpython-36.pyc new file mode 100644 index 0000000000000000000000000000000000000000..c65d0bf8250dcd037136ecc755cb38a8691cfba4 GIT binary patch literal 616 zcmYk2&5qMB5XZ-klcrS{1mdd_LLA9~y{yCmAp}|pE~v14T%t(G8+%KNlUTOP64X5v z9t8q zs7`E!%5DITHCdMVNpQ01w2IuF?s0c;BdGcQ98u&k>#e2=K|W@-sXrSXh3Tb=?8MQ` zk#{y`(ydzgwMb(+t{5|4JB<=?)}VlStf)iNcfY~iLebyX$B(NIUOQjCl&7xIraJU? zP})7T!%?;DH(#{e+*iH#jds=BSM?`pjP6#t@=e=!I#e%=w03yD(p@;TL!AHrf76?$ z9&&8quOJ{5Y=)oUIeWm|9n2KMCFqWwpSaYpVCu$(#=`Ua*kv0e}CzZ@c;k- literal 0 HcmV?d00001 diff --git a/simonet/__pycache__/state.cpython-36.pyc b/simonet/__pycache__/state.cpython-36.pyc new file mode 100644 index 0000000000000000000000000000000000000000..6c3a68290b1224a4e3cbafa579afe7a639cbc0b5 GIT binary patch literal 436 zcmYjNF-yZh6u!GO8iUm$1shztX0S^)5fM6wAQ=>w5(sJUQ3Gi%++At|=~VxUgZPgQ zoSZtkI{6Yy^}+Yud*A!sz2k=Mw)^$|I{qMpd?I$iFuO*mLnKZ(eIaAQ*#q&dDMhJ{ z7Q#l15Gp{@MAHhr9y-s+ny%@JZZ*pz*lBsBx9f5Hl&qMp^*s;Wd>?D8q7|#GnT4C2 z!1OX$>L^cghhx(FW?NEP116PZ974pd%pkmq?h3 Xmax: + # Xmax = s[0] + #if s[1] > Ymax: + # Ymax = s[1] + #if s[2] > Vmax: + # Vmax = s[2] + + while not p.game_over(): + + # Action + reward = p.act(get_action(action)) + + # Calcul de la reward d'entrainement + if reward == -5 : + training_reward = -100 + else: + training_reward = 1 + + # Nouvel état + state_ = game.getGameState() + s_ = new_state(state_) + action_ = epsilon_greedy(Q, s_, epsilon, state) + + # calcul de Q avec l'algorythme SARSA + delta = (training_reward + gamma * Q[s_[0],s_[1],s_[2]][action_] - Q[s[0],s[1],s[2]][action]) + Q[s[0],s[1],s[2]][action] = Q[s[0],s[1],s[2]][action] + alpha * delta + + # Update de l'état + s = s_ + action = action_ + + # Calcul des résultats en cours de compilation + if reward+5: + last_100 += reward + last_1000 += reward + + # contrôle des résultats en cours de compilation et diminution de alpha + if g %100 == 0 : + print('Moyenne des 100 derniers essais : %.2f' %(last_100/100)) + last_100 = 0 + if g %1000 == 0 : + while alpha > 0.1 : + alpha /= 1.01 + print('Moyenne des 1000 derniers essais : %2f' % (last_1000/1000)) + if last_1000 / 1000 > 50: + break + last_1000 = 0 + + +#Résultat de la taille de l'espace des états +#print(Xmax,Ymax,Vmax) + +#Sauvegarde des données avec pickle, marshal ne marchant pas +with open('Qtrained', 'wb') as f: + pickle.dump(Q,f) \ No newline at end of file