qcode
  • 创作工场专业版,一问多答!更智能、更完整、更原创
  • 这是一个超强内容创作平台,它会写文章、做设计、绘图、敲代码,有问必答!
🔥点击使用-免登录深度版🔥

给我一份基于强化学习算法的实现智能体在迷宫里自动寻路的python代码

时间2023-03-19 19:09:52 提问来自 北京市北京市 的网友 分类创作 浏览473
import numpy as np # 定义环境 class Maze(object): def __init__(self, maze_map): self.maze_map = maze_map # 迷宫地图,1代表可以走,0代表障碍物 self.start_point = (0, 0) # 起始位置坐标 self.end_point = (len(maze_map)-1, len(maze_map[0])-1) # 终止位置坐标 def getStartPoint(self): # 获取起始位置坐标 return self.start_point def getEndPoint(self): # 获取终止位置坐标 return self.end_point def isValidStep(self, currPos, nextPos): # 判断下一步是否有效,即是否越界或者有障碍物 if nextPos[0] < 0 or nextPos[1] < 0 or \ nextPos[0] >= len(self.mazeMap) or \ nextPos[1] >= len(self.mazeMap[0]) or \ self.mazeMap[nextPos[0],nextPos[1]] == 0: # 如果下一步越界或者有障碍物,则返回False return False else: return True def getNextStateAndRewardByActionIndex(self, currStateIndex, actionIndex): """ 根据当前state的index以及action的index来获得下一个state的index以及奖励 """ reward = -1 currStateXy = np.unravel_index([currStateIndex], (len(self.mazeMap), len(self.mazeMap))) if actionIndex == 0: nextStateXy = [currStateXy[0]-1 , currStateXy[1]] if not self._isValidStep((currStateXy), (nextStateXy)): reward -= 10 return None , reward else: return np.ravel((nextStateXy)), reward elif actionIndex == 1: nextStateXy = [currStateXy[0]+1 , curr

不满意?免费深度重写!

免责声明:
以上内容除特别注明外均来源于网友提问,创作工场回答,未经许可,严谨转载。

上一篇 给我一份基于强化学习算法的实现智能体在迷宫里自动寻路的python代码(1张) 下一篇 建设教育强国的青年力 量