我是Open Ai Gym的新手,目前正在出租车环境中运行强化学习(RL),而我的研究要求我能够调用State元组(或在Taxi.py
中称为“ State Space” file)进行一些数据挖掘/状态-动作对操作。
有一个函数可以调用吗?
例如:State(123) = (taxi_row, taxi_col, passenger_location, destination)
在RL中,状态和动作以矩阵形式column = state, row = action
表示。
在源代码(taxi.py
中,其称为“状态空间由(taxi_row
,taxi_col
,passenger_location
,destination
)表示” >
答案 0 :(得分:1)
您可以这样做:
>>> import gym
>>> env = gym.make('Taxi-v2')
>>> from gym.envs.toy_text.taxi import *
>>>
>>>
>>> x = TaxiEnv()
>>> random_state = 123
>>> taxi_row, taxi_col, passenger_index, destination_index = x.decode(random_state)
>>> taxi_row
1
>>> taxi_col
1
>>> passenger_index
0
>>> destination_index
3
在您的问题中,您需要passenger_location
和destination
。但是我使用的代码是返回passenger_index
和destination_index
。因此,如果您了解了环境地图,就可以轻松获取位置。
以下是该环境中使用的简单映射:
MAP = [
"+---------+",
"|R: | : :G|",
"| : | : : |",
"| : : : : |",
"| | : | : |",
"|Y| : |B: |",
"+---------+",
]
在此地图中,我们有四个不同的位置(R,G,Y,B)。现在,您可以像这样轻松地知道索引,从而获得乘客的位置和目的地:
乘客位置:
目的地:
希望这能回答您的问题!