%global _empty_manifest_terminate_build 0 Name: python-Easy-QLearning Version: 1.1.0 Release: 1 Summary: Simplify the creation of QLearning License: MIT License URL: https://github.com/ProfesseurIssou/Easy-QLearning Source0: https://mirrors.aliyun.com/pypi/web/packages/34/38/b5321d647a5e20327b58e9da1fb353f3df455f49f0682004863b57a42c82/Easy-QLearning-1.1.0.tar.gz BuildArch: noarch Requires: python3-numpy Requires: python3-pytest %description # EQL Simplify the creation of QLearning ## Installation Run the following to install: ```python pip install Easy-QLearning ``` ## Usage ```python import EQL ####Initialise QTable#### #Mission: go to the house without run over the human #Game grid Grid = [#1 = House, -1 = Human [0,0,1], [0,-1,0], [0,0,0] ] #First car position coordinates x = 0 y = 2 #Current state state = 7 #Action list and travel coordinate actions = [ [-1, 0], # Up [1, 0], #Down [0, -1], # Left [0, 1] # Right ] #Make QTable Qtable = EQL.QLearning(nbAction=4,nbState=10) ####Train the QTable#### #100 games for _ in range(100): #Reset the car position x = 0 y = 2 #Default state state = 7 #While the car are not in the house while x != 2 or y != 0: #Display the grid print("---------------------") yTemp = 0 for line in Grid: xTemp = 0 for pt in line: print("%s\t" % (pt if yTemp != y or xTemp != x else "X"), end="") xTemp += 1 yTemp += 1 print("") #Choose an action action = Qtable.takeAction(state,epsilon=0.4) #Move the car y = max(0, min(y + actions[action][0],2)) x = max(0, min(x + actions[action][1],2)) #Calcul the position in the grid (state) newState = (y*3+x+1) #Get the reward of the position reward = Grid[y][x] print("state : ", newState) print("reward : ", reward) #Update Q function Qtable.updateQFunction(newState,state,reward) #Next state state = newState #Display the QTable for s in range(0, 9): print(s, Qtable.QTable[s]) #Save my QTable in myTable.npz Qtable.saveQTable("myTable") #Load my QTable from myTable.npz Qtable.loadQTable("myTable") ``` ```bash $ pip install -e .[dev] ``` %package -n python3-Easy-QLearning Summary: Simplify the creation of QLearning Provides: python-Easy-QLearning BuildRequires: python3-devel BuildRequires: python3-setuptools BuildRequires: python3-pip %description -n python3-Easy-QLearning # EQL Simplify the creation of QLearning ## Installation Run the following to install: ```python pip install Easy-QLearning ``` ## Usage ```python import EQL ####Initialise QTable#### #Mission: go to the house without run over the human #Game grid Grid = [#1 = House, -1 = Human [0,0,1], [0,-1,0], [0,0,0] ] #First car position coordinates x = 0 y = 2 #Current state state = 7 #Action list and travel coordinate actions = [ [-1, 0], # Up [1, 0], #Down [0, -1], # Left [0, 1] # Right ] #Make QTable Qtable = EQL.QLearning(nbAction=4,nbState=10) ####Train the QTable#### #100 games for _ in range(100): #Reset the car position x = 0 y = 2 #Default state state = 7 #While the car are not in the house while x != 2 or y != 0: #Display the grid print("---------------------") yTemp = 0 for line in Grid: xTemp = 0 for pt in line: print("%s\t" % (pt if yTemp != y or xTemp != x else "X"), end="") xTemp += 1 yTemp += 1 print("") #Choose an action action = Qtable.takeAction(state,epsilon=0.4) #Move the car y = max(0, min(y + actions[action][0],2)) x = max(0, min(x + actions[action][1],2)) #Calcul the position in the grid (state) newState = (y*3+x+1) #Get the reward of the position reward = Grid[y][x] print("state : ", newState) print("reward : ", reward) #Update Q function Qtable.updateQFunction(newState,state,reward) #Next state state = newState #Display the QTable for s in range(0, 9): print(s, Qtable.QTable[s]) #Save my QTable in myTable.npz Qtable.saveQTable("myTable") #Load my QTable from myTable.npz Qtable.loadQTable("myTable") ``` ```bash $ pip install -e .[dev] ``` %package help Summary: Development documents and examples for Easy-QLearning Provides: python3-Easy-QLearning-doc %description help # EQL Simplify the creation of QLearning ## Installation Run the following to install: ```python pip install Easy-QLearning ``` ## Usage ```python import EQL ####Initialise QTable#### #Mission: go to the house without run over the human #Game grid Grid = [#1 = House, -1 = Human [0,0,1], [0,-1,0], [0,0,0] ] #First car position coordinates x = 0 y = 2 #Current state state = 7 #Action list and travel coordinate actions = [ [-1, 0], # Up [1, 0], #Down [0, -1], # Left [0, 1] # Right ] #Make QTable Qtable = EQL.QLearning(nbAction=4,nbState=10) ####Train the QTable#### #100 games for _ in range(100): #Reset the car position x = 0 y = 2 #Default state state = 7 #While the car are not in the house while x != 2 or y != 0: #Display the grid print("---------------------") yTemp = 0 for line in Grid: xTemp = 0 for pt in line: print("%s\t" % (pt if yTemp != y or xTemp != x else "X"), end="") xTemp += 1 yTemp += 1 print("") #Choose an action action = Qtable.takeAction(state,epsilon=0.4) #Move the car y = max(0, min(y + actions[action][0],2)) x = max(0, min(x + actions[action][1],2)) #Calcul the position in the grid (state) newState = (y*3+x+1) #Get the reward of the position reward = Grid[y][x] print("state : ", newState) print("reward : ", reward) #Update Q function Qtable.updateQFunction(newState,state,reward) #Next state state = newState #Display the QTable for s in range(0, 9): print(s, Qtable.QTable[s]) #Save my QTable in myTable.npz Qtable.saveQTable("myTable") #Load my QTable from myTable.npz Qtable.loadQTable("myTable") ``` ```bash $ pip install -e .[dev] ``` %prep %autosetup -n Easy-QLearning-1.1.0 %build %py3_build %install %py3_install install -d -m755 %{buildroot}/%{_pkgdocdir} if [ -d doc ]; then cp -arf doc %{buildroot}/%{_pkgdocdir}; fi if [ -d docs ]; then cp -arf docs %{buildroot}/%{_pkgdocdir}; fi if [ -d example ]; then cp -arf example %{buildroot}/%{_pkgdocdir}; fi if [ -d examples ]; then cp -arf examples %{buildroot}/%{_pkgdocdir}; fi pushd %{buildroot} if [ -d usr/lib ]; then find usr/lib -type f -printf "\"/%h/%f\"\n" >> filelist.lst fi if [ -d usr/lib64 ]; then find usr/lib64 -type f -printf "\"/%h/%f\"\n" >> filelist.lst fi if [ -d usr/bin ]; then find usr/bin -type f -printf "\"/%h/%f\"\n" >> filelist.lst fi if [ -d usr/sbin ]; then find usr/sbin -type f -printf "\"/%h/%f\"\n" >> filelist.lst fi touch doclist.lst if [ -d usr/share/man ]; then find usr/share/man -type f -printf "\"/%h/%f.gz\"\n" >> doclist.lst fi popd mv %{buildroot}/filelist.lst . mv %{buildroot}/doclist.lst . %files -n python3-Easy-QLearning -f filelist.lst %dir %{python3_sitelib}/* %files help -f doclist.lst %{_docdir}/* %changelog * Tue Jun 20 2023 Python_Bot - 1.1.0-1 - Package Spec generated