Skip to content

Instantly share code, notes, and snippets.

@galleon
Created November 27, 2019 06:00
Show Gist options
  • Save galleon/1f025b1dcc37e4f14a828e0b7af77f4c to your computer and use it in GitHub Desktop.
Save galleon/1f025b1dcc37e4f14a828e0b7af77f4c to your computer and use it in GitHub Desktop.
{
"cells": [
{
"cell_type": "code",
"execution_count": 1,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Requirement already satisfied: gym-jsbsim in /Users/alleon_g/.julia/conda/3/lib/python3.7/site-packages (0.5.0)\n",
"Requirement already satisfied: geographiclib in /Users/alleon_g/.julia/conda/3/lib/python3.7/site-packages (from gym-jsbsim) (1.50)\n",
"Requirement already satisfied: cython>=0.25 in /Users/alleon_g/.julia/conda/3/lib/python3.7/site-packages (from gym-jsbsim) (0.29.14)\n",
"Requirement already satisfied: shapely in /Users/alleon_g/.julia/conda/3/lib/python3.7/site-packages (from gym-jsbsim) (1.6.4.post2)\n",
"Requirement already satisfied: gym>=0.12.5 in /Users/alleon_g/.julia/conda/3/lib/python3.7/site-packages (from gym-jsbsim) (0.15.4)\n",
"Requirement already satisfied: cloudpickle~=1.2.0 in /Users/alleon_g/.julia/conda/3/lib/python3.7/site-packages (from gym>=0.12.5->gym-jsbsim) (1.2.2)\n",
"Requirement already satisfied: opencv-python in /Users/alleon_g/.julia/conda/3/lib/python3.7/site-packages (from gym>=0.12.5->gym-jsbsim) (4.1.2.30)\n",
"Requirement already satisfied: numpy>=1.10.4 in /Users/alleon_g/.julia/conda/3/lib/python3.7/site-packages (from gym>=0.12.5->gym-jsbsim) (1.17.4)\n",
"Requirement already satisfied: pyglet<=1.3.2,>=1.2.0 in /Users/alleon_g/.julia/conda/3/lib/python3.7/site-packages (from gym>=0.12.5->gym-jsbsim) (1.3.2)\n",
"Requirement already satisfied: scipy in /Users/alleon_g/.julia/conda/3/lib/python3.7/site-packages (from gym>=0.12.5->gym-jsbsim) (1.3.2)\n",
"Requirement already satisfied: six in /Users/alleon_g/.julia/conda/3/lib/python3.7/site-packages (from gym>=0.12.5->gym-jsbsim) (1.13.0)\n",
"Requirement already satisfied: future in /Users/alleon_g/.julia/conda/3/lib/python3.7/site-packages (from pyglet<=1.3.2,>=1.2.0->gym>=0.12.5->gym-jsbsim) (0.18.2)\n"
]
}
],
"source": [
"!pip install gym-jsbsim"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Requirement already satisfied: gym in /Users/alleon_g/.julia/conda/3/lib/python3.7/site-packages (0.15.4)\n",
"Requirement already satisfied: scipy in /Users/alleon_g/.julia/conda/3/lib/python3.7/site-packages (from gym) (1.3.2)\n",
"Requirement already satisfied: cloudpickle~=1.2.0 in /Users/alleon_g/.julia/conda/3/lib/python3.7/site-packages (from gym) (1.2.2)\n",
"Requirement already satisfied: six in /Users/alleon_g/.julia/conda/3/lib/python3.7/site-packages (from gym) (1.13.0)\n",
"Requirement already satisfied: pyglet<=1.3.2,>=1.2.0 in /Users/alleon_g/.julia/conda/3/lib/python3.7/site-packages (from gym) (1.3.2)\n",
"Requirement already satisfied: numpy>=1.10.4 in /Users/alleon_g/.julia/conda/3/lib/python3.7/site-packages (from gym) (1.17.4)\n",
"Requirement already satisfied: opencv-python in /Users/alleon_g/.julia/conda/3/lib/python3.7/site-packages (from gym) (4.1.2.30)\n",
"Requirement already satisfied: future in /Users/alleon_g/.julia/conda/3/lib/python3.7/site-packages (from pyglet<=1.3.2,>=1.2.0->gym) (0.18.2)\n",
"Requirement already satisfied: folium in /Users/alleon_g/.julia/conda/3/lib/python3.7/site-packages (0.10.0)\n",
"Requirement already satisfied: jinja2>=2.9 in /Users/alleon_g/.julia/conda/3/lib/python3.7/site-packages (from folium) (2.10.3)\n",
"Requirement already satisfied: numpy in /Users/alleon_g/.julia/conda/3/lib/python3.7/site-packages (from folium) (1.17.4)\n",
"Requirement already satisfied: requests in /Users/alleon_g/.julia/conda/3/lib/python3.7/site-packages (from folium) (2.22.0)\n",
"Requirement already satisfied: branca>=0.3.0 in /Users/alleon_g/.julia/conda/3/lib/python3.7/site-packages (from folium) (0.3.1)\n",
"Requirement already satisfied: MarkupSafe>=0.23 in /Users/alleon_g/.julia/conda/3/lib/python3.7/site-packages (from jinja2>=2.9->folium) (1.1.1)\n",
"Requirement already satisfied: chardet<3.1.0,>=3.0.2 in /Users/alleon_g/.julia/conda/3/lib/python3.7/site-packages (from requests->folium) (3.0.4)\n",
"Requirement already satisfied: urllib3!=1.25.0,!=1.25.1,<1.26,>=1.21.1 in /Users/alleon_g/.julia/conda/3/lib/python3.7/site-packages (from requests->folium) (1.24.2)\n",
"Requirement already satisfied: idna<2.9,>=2.5 in /Users/alleon_g/.julia/conda/3/lib/python3.7/site-packages (from requests->folium) (2.8)\n",
"Requirement already satisfied: certifi>=2017.4.17 in /Users/alleon_g/.julia/conda/3/lib/python3.7/site-packages (from requests->folium) (2019.9.11)\n",
"Requirement already satisfied: six in /Users/alleon_g/.julia/conda/3/lib/python3.7/site-packages (from branca>=0.3.0->folium) (1.13.0)\n"
]
}
],
"source": [
"!pip install gym\n",
"!pip install folium"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {},
"outputs": [],
"source": [
"import gym\n",
"import gym_jsbsim\n",
"import random\n",
"import numpy as np\n",
"import folium\n",
"\n",
"from numpy.linalg import norm\n",
"from numpy import array\n",
"\n",
"env1 = gym.make('GymJsbsim-TaxiapControlTask-v0')"
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"(array([11.81175935]),\n",
" array([0.]),\n",
" array([205.12336944]),\n",
" array([419.8125379]),\n",
" array([448.81140705]),\n",
" array([455.89975816]),\n",
" array([-0.08671113]),\n",
" array([-0.08582826]),\n",
" array([0.19471952]),\n",
" array([0.19164676]))"
]
},
"execution_count": 4,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"env1.reset()"
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"2.0422547485486975\n"
]
}
],
"source": [
"# big action number\n",
"ban = 10\n",
"action = []\n",
"for i in range(ban):\n",
" action.append(env1.action_space.sample()[0][0])\n",
"\n",
"# one action permutation\n",
"oap = action\n",
"\n",
"print(norm(oap))"
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"2.042254748548697\n",
"2.0422547485486975\n",
"2.0422547485486975\n",
"2.0422547485486975\n",
"2.0422547485486975\n",
"2.0422547485486975\n",
"2.0422547485486975\n",
"2.0422547485486975\n",
"2.042254748548697\n",
"2.042254748548697\n"
]
}
],
"source": [
"# step returns state, reward, done, info\n",
"\n",
"for i in range(10):\n",
" env1.reset()\n",
" # yet another action permutation \n",
" random.shuffle(action)\n",
" print(norm(action))\n",
" for i in action:\n",
" state = env1.step(np.asarray([i]))"
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"{0: (array([11.81175935]), array([0.]), array([205.12336944]), array([419.8125379]), array([448.81140705]), array([455.89975816]), array([-0.08671113]), array([-0.08582826]), array([0.19471952]), array([0.19164676])), 1: ((array([10.71654343]), array([5.27722585e-10]), array([204.82523774]), array([419.5144062]), array([448.51328099]), array([455.601632]), array([-0.08159672]), array([-0.08076182]), array([0.19996897]), array([0.19689063])), 0.9993041931749488, False, {}), 2: ((array([10.52965825]), array([0.00034802]), array([204.54738031]), array([419.23654877]), array([448.23543546]), array([455.3237863]), array([-0.0544678]), array([-0.05385778]), array([0.22703218]), array([0.22394615])), 0.9960566670446923, False, {}), 3: ((array([10.46426218]), array([0.00197556]), array([204.27131196]), array([418.96048041]), array([447.95937396]), array([455.04772468]), array([-0.01483134]), array([-0.01431006]), array([0.26674697]), array([0.26365514])), 0.9947880775170133, False, {}), 4: ((array([10.43222719]), array([0.00261278]), array([203.99708701]), array([418.68625546]), array([447.68514713]), array([454.77349784]), array([-0.00024346]), array([0.00042518]), array([0.28166353]), array([0.27856918])), 0.9969147140721665, False, {}), 5: ((array([10.37902524]), array([0.00154503]), array([203.7239662]), array([418.41313466]), array([447.41202301]), array([454.50037372]), array([-0.00853851]), array([-0.00768297]), array([0.27373876]), array([0.27064244])), 0.9996063688366484, False, {}), 6: ((array([10.33107988]), array([0.00019685]), array([203.45229089]), array([418.14145935]), array([447.14034332]), array([454.22869404]), array([-0.03542721]), array([-0.03435601]), array([0.24725024]), array([0.24415236])), 0.9972984079899717, False, {}), 7: ((array([10.28748051]), array([0.00135262]), array([203.18162833]), array([417.87079678]), array([446.86967938]), array([453.95803006]), array([-0.07163007]), array([-0.07042447]), array([0.21136061]), array([0.20826007])), 0.9953839810215173, False, {}), 8: ((array([10.2658249]), array([0.00231335]), array([202.9118205]), array([417.60098894]), array([446.59987069]), array([453.68822135]), array([-0.10132226]), array([-0.09999667]), array([0.18196598]), array([0.17886256])), 0.9936857300013433, False, {}), 9: ((array([10.229306]), array([0.00316714]), array([202.6427002]), array([417.33186863]), array([446.33074956]), array([453.41910018]), array([-0.13109027]), array([-0.129645]), array([0.15249496]), array([0.14938867])), 0.9920012329089208, False, {}), 10: ((array([10.19064239]), array([0.00401546]), array([202.37441084]), array([417.06357928]), array([446.06246241]), array([453.15081297]), array([-0.1479928]), array([-0.14651088]), array([0.13580074]), array([0.13269044])), 0.9914989232334661, False, {})}\n"
]
}
],
"source": [
"state1 = {}\n",
"\n",
"state = env1.reset()\n",
"state1[0] = state\n",
"\n",
"for i in range(len(oap)):\n",
" state1[i+1] = env1.step(np.asarray([oap[i]]))\n",
" \n",
"print(state1)"
]
},
{
"cell_type": "code",
"execution_count": 8,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"2.042254748548697\n",
"2.042254748548697\n",
"2.0422547485486975\n",
"2.0422547485486975\n",
"2.0422547485486975\n",
"2.042254748548697\n",
"2.0422547485486975\n",
"2.042254748548697\n",
"2.0422547485486975\n",
"2.0422547485486975\n"
]
}
],
"source": [
"for i in range(10):\n",
" env1.reset()\n",
" # yet another action permutation \n",
" random.shuffle(action)\n",
" print(norm(action))\n",
" for i in action:\n",
" state = env1.step(np.asarray([i]))"
]
},
{
"cell_type": "code",
"execution_count": 9,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"{0: (array([11.81175935]), array([0.]), array([205.12336944]), array([419.8125379]), array([448.81140705]), array([455.89975816]), array([-0.08671113]), array([-0.08582826]), array([0.19471952]), array([0.19164676])), 1: ((array([10.69513557]), array([5.27722585e-10]), array([204.82545155]), array([419.51462001]), array([448.51349505]), array([455.60184606]), array([-0.08131443]), array([-0.08048643]), array([0.20024378]), array([0.19716535])), 0.9992041685368482, False, {}), 2: ((array([10.54322195]), array([0.00039807]), array([204.54836103]), array([419.23752949]), array([448.23640774]), array([455.32475867]), array([-0.06489386]), array([-0.06405529]), array([0.2168488]), array([0.21376593])), 0.9993586398836887, False, {}), 3: ((array([10.51946331]), array([0.00032078]), array([204.27203168]), array([418.96120014]), array([447.96007459]), array([455.04842553]), array([-0.07094458]), array([-0.06990572]), array([0.21118421]), array([0.20809953])), 0.9977483059516237, False, {}), 4: ((array([10.45893423]), array([0.00112712]), array([203.99636516]), array([418.68553362]), array([447.68441018]), array([454.77276106]), array([-0.08340532]), array([-0.08232604]), array([0.19893921]), array([0.19585051])), 0.9971714056498021, False, {}), 5: ((array([10.40719524]), array([0.0014163]), array([203.72229097]), array([418.41145942]), array([447.41033745]), array([454.49868827]), array([-0.08648707]), array([-0.08535017]), array([0.19609072]), array([0.19299825])), 0.9963503313986308, False, {}), 6: ((array([10.36309434]), array([0.00182817]), array([203.44949484]), array([418.13866329]), array([447.13754226]), array([454.22589302]), array([-0.09912796]), array([-0.09791927]), array([0.18369757]), array([0.18060155])), 0.9953307263917186, False, {}), 7: ((array([10.33676786]), array([0.0023401]), array([203.1773392]), array([417.86650766]), array([446.86539254]), array([453.9537432]), array([-0.09713952]), array([-0.09599472]), array([0.18578915]), array([0.1826877])), 0.9962522981397568, False, {}), 8: ((array([10.29699108]), array([0.00187737]), array([202.9061536]), array([417.59532205]), array([446.59421025]), array([453.68256083]), array([-0.08731382]), array([-0.08616223]), array([0.19579281]), array([0.19268692])), 0.9961629506090299, False, {}), 9: ((array([10.25425636]), array([0.00192221]), array([202.63609679]), array([417.32526524]), array([446.32415633]), array([453.41250684]), array([-0.08239244]), array([-0.08122285]), array([0.20090359]), array([0.19779341])), 0.9959144260876046, False, {}), 10: ((array([10.21187118]), array([0.00204697]), array([202.36718443]), array([417.05635288]), array([446.05524648]), array([453.14359693]), array([-0.07280752]), array([-0.07160988]), array([0.21068807]), array([0.20757376])), 0.9955244544326767, False, {})}\n"
]
}
],
"source": [
"state2 = {}\n",
"\n",
"state = env1.reset()\n",
"state2[0] = state\n",
"\n",
"for i in range(len(oap)):\n",
" state2[i+1] = env1.step(np.asarray([oap[i]]))\n",
" \n",
"print(state2)"
]
},
{
"cell_type": "code",
"execution_count": 10,
"metadata": {},
"outputs": [],
"source": [
"ii = 10\n",
"\n",
"for i in range(10):\n",
" d = array([state2[ii][0][j] - state1[ii][0][j] for j in range(len(state1[ii][0]))])"
]
},
{
"cell_type": "code",
"execution_count": 11,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"0.1521240514580012"
]
},
"execution_count": 11,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"norm(d)"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.7.4"
}
},
"nbformat": 4,
"nbformat_minor": 2
}
Display the source blob
Display the rendered blob
Raw
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment