Created
November 27, 2019 06:00
-
-
Save galleon/1f025b1dcc37e4f14a828e0b7af77f4c to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
{ | |
"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 | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment