前言:对于强化学习相关的几种环境介绍,主要包括Mini world、Gym maze、Grid world、gym-minigrid
Mini world
https://github.com/maximecb/gym-miniworld
MiniWorld本质上是一个非常简单的3D游戏引擎,用于模拟具有房间,门,走廊和各种对象(办公室、家庭环境、迷宫)。是基于python编写的
特点:
1.可以创建自己的关卡和修改现有的关卡。
2.有各种免费的3D模型和纹理。
3.提供俯视图。
4.能够在墙壁上展示数字和字符串。
局限性:
1.图形方面没有照片的真实感强。
在MiniWorld中,世界由静态的元素组成,包括房间还有墙壁,也能够由实体组成动态对象。可以创建,连接房间,组合房间形成走廊。Mini World给人的感觉就像是第一视角巡视。采用的坐标系是右手坐标系,地平面由x轴和z轴组成,Y轴指向上方。
默认的可用操作:
Turn_left
Turn_right
Move_forward
Move_back
Pickup(在agent面前捡起物体)
Drop(放下被携带的物品)
Toggle(切换项目)
Gym maze
https://github.com/MattChanTK/gym-maze
Gym-maze提供了一个简单的2D迷宫环境
Agent能够选择上、下、左、右的动作,由二维空间坐标组成,左上角单元格的坐标为(0,0),agent需要从左上角的蓝色方块到达右下角的红色方块。在这个过程当中需要寻找最短的路径。这个环境下包含着3*3、5*5、10*10、100*100的环境。
Grid world
https://github.com/addy1997/Gridworld
Grid word类环境是一个基础类的小环境,可以根据自己的需要进行编写,可以创造出利于自己算法发挥作用的环境。这类环境一般包含的状态信息主要是agent坐标,动作可以是四面八方。适用于离散型的动作
gym-minigrid
https://github.com/maximecb/gym-minigrid
Minigrid是Gym网格观景当中特别简单的一种网格环境,这个环境的依赖项相对较少。这个环境当中类似于一种磁贴,每个网格当中可以含有一个磁贴对象,每个对象含有一个表示的类型:墙壁、地板、门、钥匙、球。
Agent在环境当中的基本操作:
向左
向右
前进
拿起物体
放下物体
打开门(与对象交互)
可以通过代码调整环境的大小、复杂性。