summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCoprDistGit <infra@openeuler.org>2023-06-20 07:24:07 +0000
committerCoprDistGit <infra@openeuler.org>2023-06-20 07:24:07 +0000
commit605ed93b9d0722e3782d9e97f13b9244ea0024fb (patch)
treede9f5c6e9d64359b1d249a0b3d6d73829e4543a4
parented52173d57d7a59763b3cc16a28fbef5c89e60c0 (diff)
automatic import of python-Easy-QLearningopeneuler20.03
-rw-r--r--.gitignore1
-rw-r--r--python-easy-qlearning.spec350
-rw-r--r--sources1
3 files changed, 352 insertions, 0 deletions
diff --git a/.gitignore b/.gitignore
index e69de29..5fcfd62 100644
--- a/.gitignore
+++ b/.gitignore
@@ -0,0 +1 @@
+/Easy-QLearning-1.1.0.tar.gz
diff --git a/python-easy-qlearning.spec b/python-easy-qlearning.spec
new file mode 100644
index 0000000..16a695c
--- /dev/null
+++ b/python-easy-qlearning.spec
@@ -0,0 +1,350 @@
+%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 <Python_Bot@openeuler.org> - 1.1.0-1
+- Package Spec generated
diff --git a/sources b/sources
new file mode 100644
index 0000000..ba99e02
--- /dev/null
+++ b/sources
@@ -0,0 +1 @@
+278776fbeea9d81d03c51bf2f38475dc Easy-QLearning-1.1.0.tar.gz