From 31a4f82dad86c9a5155612c082e35992114d81ba Mon Sep 17 00:00:00 2001 From: Jin Wenyao <wen-yao.jin@student.ecp.fr> Date: Tue, 21 Mar 2017 12:12:58 +0100 Subject: [PATCH] go --- __pycache__/agent_afterstate.cpython-35.pyc | Bin 8395 -> 8946 bytes agent_afterstate.py | 16 ++++++++++++---- puzzle.py | 3 ++- 3 files changed, 14 insertions(+), 5 deletions(-) diff --git a/__pycache__/agent_afterstate.cpython-35.pyc b/__pycache__/agent_afterstate.cpython-35.pyc index 76885ca5ecc92570533a76bddbf7a6eb8628c6ea..868c7462c3ecc9b239e39999006428952923ed71 100644 GIT binary patch delta 2059 zcmX@@_{o(^jF*=yo9kkPh0I2-BaGaf3=9ko3=9m#Y>bm{GOE?5a4@v6Gej{nq;N8% za51znFhsF1q;NB&@POH@3@N+}DSTiy8$${|Ly7>H&CZY_$dDogW^*v42s5OJfZ3c3 zDWVK1Vqi8GLy9;<iUdQ7Btr`$LliediWEbNG+2s<Aw`BEMV6tZo`E5Xmmx)tAw?c6 z!N-uIz>uN{X7hvfD>0-fGo+|6v@kJ52{5FnGNh=1Wd#{h)EQDVz-%Fg6itQ{EihY{ zAw`=ZMF-3l0hti2se6k*F|8!EsJJAtB-JrJHLoO{0SYF+W0H|6VrO7rNCt%rNEAeK zFfcGMgF-25vLbV4eGLag3KK&%6GKr8Lk9yxmH<OD1BekX$dISY0Fq?}%Ps;5W(gt5 z@`FW$5h68g3`M6HN<<h+M8Q&m49$!n#0WB145m&TEC=J7$4fAP^zku*^hq+LurQ>s zf;<S)BhKIgF`=1}fw4rAp`C#tjgcXRjUk0~vOJ5ZhZNW-X@(kzH6U|>LFRz;N`Y;z zVFM|NmjRJkvLGigrZ6xBYqI;j<Y8c7C}IQ=Y?F&vN*R?WzhK$Ks{#rcCI$uuP6kc6 z$;(;ujM?H#N(*vQZ?QrsJ_t8HF{LaqFFEy=Fe*R3Ag8o=vN2mABj@B+HbrhDkOgWW zLSyn8Hf1RTP&6=dGU_sNGI26-GV(Bjun;2;<L0Mqvl$t+CpU6vvZ^yMFlbL+&k+&i z!@vLv5RjkQ8B#bH(pjLX8Iq1cTyP?WBwt9vO=p9qT1a|@q||gakltWT$;qjl9+Qu9 z8caUQsWLf~OLKA*SB#J*0|SFS$m^ig!NADR$Upf6m%-+L96K1rwHO!}ToH1jj38L0 zJozk_94o}TuethJjTsmiyeHRluVS@fU|<NEtjBYo+Y#h%3lL#GS%O!W(}{tB;TB^` zk=0~BUI|tm1_p+R$=ST;8J#9u^C>VUPmbYpRrUla7i3^y&}1r-0kOdXLLi-N@tJuk zsTE0^kMMCbPCh6o!YawYz>qQd1%E4u=K$hmgB%KtKlWQpc?CuKAg!#4MMa5~x0tIk z3yO5X0$`(xypS!Ld{97wF?I4SfxXV&AT=yG`RPVQ8XzTXNNxf9f+aaWH|Z8*QIQqM zjUe|HfeDa9i#!+@7;-n?5>#ente*T&$W<6@99v>hdTwGx5hzNF%qNElJF|u`FfdeZ zo+s?YXbvj4ia=p?i#4+(HMjT{b3uMV5hyH+d_h+Dfn3C#o?4>G0db2vNYrYwxTrZ} z{bqkrK}OzCkV~10#6c2alXJyX8K+I2EM_GDvb`uABnq|qu9&2oKS(hv#Hb{YTqMW> zE<|Bc6buptc}kP12&@7e9Uu?hVvjFLEJ{x;nX=hNyblo-izYvou&D>7qf7yH28Nga z|NsB5$yWr9!DNtWV3&X$0rnFpCcsfp1kNVfAQ!L|CFZ5%=iXug(M8H2T_6L&(FpT8 z$f*!hK>=8l0@BBllAo6v#aWOsd7dN(C^@i#f@9X?{gN}}5b8nRL5e7lqt<OMm0HMH zZwRs}5kx3~h*S`Pa3nZ(^gv=_AOhr%TP($eMI}fsXD%)&DiQ@r+k(QD6A`wz*osoi z6N^$HE@gv+U6BMxX*|g7jCn<qr^=`>Zrr>}rkzpW4kQ6`T2Tau1r9!N5n>Kf%vn;D zm{(koUz}P5c60vZ0y$YFP`cM-M_5^u15(Ra42i`&1_p-72LwepZ?TmYq$HN49-Mqe zu1z0oGAIiafl?PrhC>S|kWDuxH_B_JixzQ#9K{VHz(uGThy^OJia>=(5va5%0u=_3 zv<u4QkSGQvIB?D=0!JD+sKKEOil-v5ck@9;m4FDt$-D}RJfOmuhfz_MM}&uMvW0@R YAUNDPGfPs7O7in_ii=z(w<x#+07S~CLjV8( delta 1838 zcmez5dfJgojF*?Io#|qPr1VCvBaGY}3=9ko3=9m#-x(&~WK^qfVPlA5W=P>+Na18? zVPJ@2VMyU(NZ|&vSs7Az7*cq_Y&M1zK86&2Fq@qrMSvki5X|OaND*R45eBn48B#<T zQbZY2#28u_8KSrtQp6cjB*0SK3@MTfDN<lI4?~JHLy8QT9mdO$BFm5>2j=jB^~*D) zC@`cbGPE!;MDa7EC^4icgJlI6QdAgHRKaXPh7>i16m>9Lh#^ITAw?6+76zFRtf@8m zF_W2iGRUtC3=9k)8ibia{`Q<~%A8r>!N8Ek&rsCJ0AdI*G&6u0@q!F_{2)e_5JIGe zjiG2ILy0g$i3nIqkfE6ogcw0OMPcg1z;bY|I0H!ATd+0>h7=}-6lRe7Kw88YT$&j( zK_)aaGBB1%Ftjr;q%kt2uz=LGf!&cM2vP%5(!szGF9|kUilGK#Ey!Ra#u8z$s3b@c zV+|XK6E6)Svt&R{VoYIR2-alvd&x6-BTFfx(qwhkO}xq=?=vwlFmN(x%1(a9nkUB> zUs76-lNz6xQkIyPoO+8D%)P}15uV)67Rbmk`6inpn;`=OLy_8KR(54E9Z-leax&^N zax!r;aWe8Sax!u<ZFXXx&B&-V`5uQRt0n^jgVtmo&WO!Q-0K;I)EO8UY(Z9oqJV)> zlu>l@OD==S61+{UMhpxL&Xec!u41)jU|{f??8kSX8<aSU%t7{<O}60I<#c3VV7SGY zQe-(fk6(gSn}LBLU~)JAc}B;{(E<vL(UWTgT$MdQ$^{u17&MuRWI$}NfDlM0TYP3- zN@_*a<|hK&jEokOKM0C5CQRlKYK5>TR|{|(YO>#A$}1?+1F2_CEGkN@yv1CVSx^M> z>Md5V{vuCg(<eU^l3<LT{7Y!BvlmDcOHO{eQIQ5n2^*3Fz)ojL&d*J{#aL8i333?7 zkwstv<hmkv1_p-I&A)_|85xTw%Za)QgN<WLEK1K!tSIsZ=`fpIChE)@%)r1<xOtzb z6Qj93NE8%6w^%bvQge%MF&E?)6oCS;$Ok0l3vv;2dTNO#2gEIIAW_T7=Hljz<(u=x z1sQomKrUq}5(i0yPVSXZW$c^0S;9&HWP4E<NEB-IUkOP!KagTph*60kxd@O2T#0EV zsYS&li6yB;K_F3(r!<+0z$(CT0P^51_V|*-qV&{~p3O0meX#JKHJMr3rrwT$fgw{s zoq^%y|NsC0Yw{I=BP|JJ7T6tNCxCqfiU)866oJ#B7RY|KqQtzE{M=hCAi4;Yw2MFn zf+G>;agakHrh<a6C>f-WB_%&EHHxz!WAZ*}4oM4;Z6KE;#R({ICQZICJwpzmA596! zk;^tum08GGZvZkO0YoT)h!hZka5OlsbU|WbAOhsCTP($eMI}f+VJ<EyDiQ@r+kirv z6A{w4*osoi6N^$HE@y*;WRV0&X&lHejCn<qx5}w7uH1Y}uANaIl*x)fPAdurDFFwk z8i-{EQp{OWl$cjskYAiy1a@=Y<OvG0Dp?>a*%4M2WrNf*7DM7R7o^)_@<jzH#+{Sj zD75K=%>-qIB2X$r$!%ys1hV78<b{e_^&&-FAY-^e1P_QX1reY^q6kzp6oCo>Nb&_` zZb&?X(i}K*6oF$79KPV71w{_Tk9i<dia`X(DoFgHxj~qLfq|C~RP=!2hKEs3hDUgE byppvbI374NOHzwU^7C_wi<~E~R&oabY`%6Q diff --git a/agent_afterstate.py b/agent_afterstate.py index 11ab05f..0717424 100644 --- a/agent_afterstate.py +++ b/agent_afterstate.py @@ -11,7 +11,7 @@ class Action(IntEnum): RIGHT = 4 class afterstateAgent: - def __init__(self, mat, TD_lambda = 0.0, alpha = 0.0025, gamma = 0.95, epsilon = 0.01, verbose= True, symmetric=True): + def __init__(self, mat, TD_lambda = 0.0, alpha = 0.0025, gamma = 0.95, epsilon = 0.01, verbose= True, symmetric=True, tuple = 2): self.state_per_tile = 12 self.commands = { Action.UP: up, Action.DOWN: down, Action.LEFT: left, Action.RIGHT: right} self.alpha = alpha @@ -21,11 +21,12 @@ class afterstateAgent: self.TD_lambda = TD_lambda self.forget = self.TD_lambda self.symmetric = symmetric - if self.symmetric: - # self.tuple = self._tuple_advance() + if tuple==0: + self.tuple = self._tuple() + elif tuple == 1: self.tuple = self._tuple_advance() else: - self.tuple = self._tuple() + self.tuple = self._tuple_advance_plus() if verbose: print(len(self.tuple)) self.W = self._generate_dict() @@ -58,7 +59,14 @@ class afterstateAgent: print(list) return list + def _tuple_advance(self): + return [[(0,0),(1,0),(2,0),(3,0)],\ + [(0,1),(1,1),(2,1),(3,1)],\ + [(0,1),(1,1),(2,1),(0,2),(1,2),(2,2)],\ + [(0,2),(1,2),(2,2),(0,3),(1,3),(2,3)]] + + def _tuple_advance_plus(self): return [[(0,0),(1,0),(2,0),(3,0),(3,1),(2,1)],\ [(0,1),(1,1),(2,1),(3,1),(3,2),(2,2)],\ [(0,1),(1,1),(2,1),(0,2),(1,2),(2,2)],\ diff --git a/puzzle.py b/puzzle.py index bd2f615..c32e3f8 100755 --- a/puzzle.py +++ b/puzzle.py @@ -176,7 +176,8 @@ if __name__ == '__main__': parser.add_option("-a", "--alpha", dest="alpha", help ="alpha the learning rate") parser.add_option("-t", "--train", dest="train", help ="training episodes") parser.add_option("-s", "--symmetric", dest="symmetric", help ="symmetric sampling") - parser.add_option("-e", "--epsilon", dest="epsilon", help ="epsilon the exploration") + parser.add_option("-e", "--epsilon", dest="epsilon", help ="epsilon the exploration") + parser.add_option("-u", "--tuple", dest="tuple", help ="the tuple to use") (options,args)= parser.parse_args() print(vars(options)) start_time = time.time() -- GitLab