首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

在迷宫中寻找跳过2个单元的最大路径

是一个算法问题,可以通过深度优先搜索(DFS)来解决。

深度优先搜索是一种用于遍历或搜索树或图的算法,它从根节点开始,沿着一条路径直到无法继续为止,然后回溯到前一个节点,继续探索其他路径。在迷宫中,我们可以将每个单元格看作是图中的一个节点,相邻的单元格之间有边相连。

为了寻找跳过2个单元的最大路径,我们可以使用深度优先搜索来遍历迷宫。在搜索过程中,我们需要记录当前路径的长度以及已经跳过的单元格数量。当路径长度达到最大值时,我们更新最大路径长度,并记录最大路径的起始和结束位置。

以下是一个可能的实现:

  1. 定义一个全局变量maxPathLength,用于记录最大路径的长度。
  2. 定义一个全局变量maxPathStart和maxPathEnd,用于记录最大路径的起始和结束位置。
  3. 定义一个全局变量visited,用于记录已经访问过的单元格。
  4. 定义一个全局变量jumpCount,用于记录已经跳过的单元格数量。
  5. 定义一个全局变量currentPath,用于记录当前路径的长度。
  6. 定义一个全局变量currentStart和currentEnd,用于记录当前路径的起始和结束位置。

接下来,我们可以编写一个递归函数来实现深度优先搜索:

  1. 如果当前路径长度大于maxPathLength,则更新maxPathLength、maxPathStart和maxPathEnd。
  2. 如果当前路径长度等于maxPathLength,并且当前路径的起始位置在迷宫中位于maxPathStart之前,则更新maxPathStart和maxPathEnd。
  3. 如果当前路径长度等于maxPathLength,并且当前路径的起始位置在迷宫中位于maxPathStart之后,则不进行任何操作。
  4. 对于当前位置的每个相邻单元格,进行以下操作:
    • 如果相邻单元格未被访问过,并且跳过的单元格数量小于2,则将其标记为已访问,并增加当前路径长度和跳过的单元格数量。
    • 递归调用深度优先搜索函数,以相邻单元格为起始位置。
    • 将相邻单元格标记为未访问,并恢复当前路径长度和跳过的单元格数量。

最后,我们可以调用深度优先搜索函数,以迷宫中的每个单元格为起始位置,找到最大路径:

代码语言:txt
复制
def findMaxPath(maze):
    global maxPathLength, maxPathStart, maxPathEnd, visited, jumpCount, currentPath, currentStart, currentEnd
    maxPathLength = 0
    maxPathStart = None
    maxPathEnd = None
    visited = [[False] * len(maze[0]) for _ in range(len(maze))]
    jumpCount = 0

    for i in range(len(maze)):
        for j in range(len(maze[0])):
            currentPath = 0
            currentStart = (i, j)
            currentEnd = None
            dfs(maze, i, j)

    return maxPathStart, maxPathEnd

def dfs(maze, i, j):
    global maxPathLength, maxPathStart, maxPathEnd, visited, jumpCount, currentPath, currentStart, currentEnd
    if currentPath > maxPathLength:
        maxPathLength = currentPath
        maxPathStart = currentStart
        maxPathEnd = currentEnd
    elif currentPath == maxPathLength and currentStart < maxPathStart:
        maxPathStart = currentStart
        maxPathEnd = currentEnd

    visited[i][j] = True
    currentPath += 1

    for dx, dy in [(0, 1), (0, -1), (1, 0), (-1, 0)]:
        x = i + dx
        y = j + dy

        if 0 <= x < len(maze) and 0 <= y < len(maze[0]) and not visited[x][y] and jumpCount < 2:
            visited[x][y] = True
            jumpCount += 1
            currentEnd = (x, y)
            dfs(maze, x, y)
            visited[x][y] = False
            jumpCount -= 1

    visited[i][j] = False
    currentPath -= 1

这样,我们就可以调用findMaxPath函数来寻找迷宫中跳过2个单元的最大路径。函数返回最大路径的起始和结束位置。

请注意,以上代码只是一个示例实现,具体的实现方式可能因编程语言和具体需求而有所不同。此外,对于迷宫的表示方式、坐标系、边界条件等也需要根据实际情况进行调整。

希望以上回答能够满足您的需求,如果还有其他问题,请随时提问。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

​LeetCode刷题实战79:单词搜索

单词必须按照字母顺序,通过相邻的单元格内的字母构成,其中“相邻”单元格是那些水平相邻或垂直相邻的单元格。同一个单元格内的字母不允许被重复使用。...我们拿到的这个二维的字符型数组就是一个迷宫, 我们是要在这个迷宫当中找一条“出路”。不过我们的目的不是找到终点,而是找到一条符合题意的路径。...在走迷宫问题当中,迷宫中不是每一个点都可以走的,同样在当前问题当中,也不是每一个点都符合字符串的要求的。这两个问题虽然题面看起来大相径庭,但是核心的本质是一样的。...我们需要搜索解可能存在的空间去寻找存在的解,也就是说我们面临的是一个解是否存在的问题,要么找到解,要么遍历完所有的可能性发现解不存在。...好了,今天的文章就到这里,如果觉得有所收获,请顺手点个在看或者转发吧,你们的支持是我最大的动力。 上期推文: LeetCode40-60题汇总,速度收藏!

54110

戛纳XR最佳影片出炉,又有很多新电影看了

免费的一定看。 文 |Arachne (VRPinea 5月23日讯)上个月,2022戛纳电影节公布XR沉浸影像单元的评委团阵容,我国著名演员章子怡也在其中。...据悉,入围本届XR沉浸影像单元的VR影片共有18部,且作品类型多元化。...观众将扮演一名能够帮助幸存者的无害机器人,并通过这个机器人的视角来体验世界,同时具备扫描环境并自动识别物体的能力。之后会遇到一个名叫Luna的小女孩,为了寻找她的父母,陪她穿过城市的废墟。...迷墙怪谈 Lavrynthos 导演:Amir Admoni&Fabito Rychter 类型:喜剧 剧情 片长:20分钟 语言:英语 故事典出希腊神话,名为弥诺陶洛斯(Minotaur)的牛头人是受到海神波塞冬诅咒的怪物...,从出生起就被永久地困于克里特岛的迷宫中,喜食雅典人进献的童男童女。

69520
  • 一学就会:A*算法详细介绍(Python)

    A*算法示例:迷宫 以下是使用A*算法在一个示例迷宫中寻找路径的详细步骤说明: 假设有以下10x10的迷宫: S 0 0 0 0 0 0 0 0 0 0 1 1 0 1 1 0 1 1 0 0 1 0...最终结果 经过反复的节点扩展和评估,A* 算法最终找到从起点 (0,0) 到终点 (9,9) 的最短路径。路径将避免迷宫中的所有障碍物,确保每一步都是经过成本最低的选择。...__lt__(self, other): return self.f < other.f def astar(maze, start, end): """A*算法实现,用于在迷宫中找到从起点到终点的最短路径...算法优点 寻找最短路径:无论是二维平面还是三维空间,A*算法都能够有效地在复杂的环境图中找到从起点到终点的最短路径,尤其是在具有障碍物和多重路径选择的情况下。...优化效率:相比传统的广度优先搜索和深度优先搜索,A*算法通过结合启发式估计和实际路径成本,能够更高效地探索可能的路径,减少不必要的计算,大大提升了路径寻找的效率。

    19410

    乐高小车竟被装上「生物大脑」,无需算法走出蜂巢迷宫!

    实验中,小鼠在迷宫中不断行走,Q-Learning算法也生成了奖励地图。根据小鼠的位置和奖励地图,算法生成了实时的MFB刺激参数,指导着小鼠在迷宫中行走。...尽管如此,这种基于软件的机器智能方法仍有其缺点,尤其是需要消耗大量的能源。 为了找到一个解决方案,研究人员开始在大脑中寻找灵感。...具有机神经形态电路的路径规划机器人 机器人对目标任务的处理和学习是通过一个有机神经形态电路在本地实现的,经过不断地学习,最终走出迷宫。...机器人系统的详细示意图 机器人感知运动系统的静态、低级控制是由数字领域的中央单元进行的。...感知运动系统和有机神经形态电路在模拟域运行,控制单元(数字)和感知运动系统/神经形态电路(模拟)之间建立了一个实时的感知运动回路。

    55730

    笛卡尔心形函数表达式_笛卡尔心形曲线

    生性清高的笛卡尔从来不开口请求路人施舍,他只是默默地低头在纸上写写画画,潜心于他的数学世界。 一个宁静的午后,笛卡尔照例坐在街头,沐浴在阳光中研究数学问题。...通过它,代数与几何可以结合起来,也就是日后笛卡尔创立的解析几何学的雏形。 在笛卡尔的带领下,克里斯汀走进了奇妙的坐标世界,她对曲线着了迷。每天的形影不离也使他们彼此产生了爱慕之心。...在瑞典这个浪漫的国度里,一段纯粹、美好的爱情悄然萌发。 然而,没过多久,他们的恋情传到了国王的耳朵里。国王大怒,下令马上将笛卡尔处死。在克里斯汀的苦苦哀求下,国王将他放逐回国,公主被软禁在宫中。...然而,这些信都被国王拦截下来,公主一直没有收到他的任何消息。 在笛卡尔给克里斯汀寄出第十三封信后,他永远地离开了这个世界。此时,被软禁在宫中的小公主依然徘徊在皇宫的走廊里,思念着远方的情人。...国王去世后,克里斯汀继承王位,登基后,她便立刻派人去法国寻找心上人的下落,收到的却是笛卡尔去世的消息,留下了一个永远的遗憾…… 这封享誉世界的另类情书,至今,还保存在欧洲笛卡尔的纪念馆里。

    1K120

    面试蔚来汽车,跪了。。。

    注意:寻找单词时 必须 按照字母顺序,通过水平或垂直方向相邻的单元格内的字母构成,同时,同一个单元格内的字母 不允许被重复使用 。...在返回之前,将当前位置的字符还原,以免影响其他路径的搜索。 返回四个方向搜索的结果的逻辑或(||),即如果任一方向搜索成功,则整体搜索成功。...简而言之,这段代码通过从矩阵的每个点出发,尝试所有可能的路径来查找目标单词。它巧妙地利用了递归和回溯,逐步深入,一旦发现当前路径不可行,就回退,尝试其他可能,直到找到一条正确的路径或确定无解。...关于 DFS ,我都会给算法训练营的同学举一个例子: 想象一下,你在一个迷宫里寻找一条路,这条路上的指示牌顺序排列能告诉你如何从起点到达终点。你需要走遍每一个岔口,尝试每条路,直到找到正确的路径。...这段代码,就是在用程序的方式,帮你在字符组成的迷宫中,找到拼出目标单词的那条路。

    36810

    Deepmind重大突破:训练AI学习人类大脑导航技巧

    但是对于更高层次的活动,比如在复杂的环境下导航,还有很长的路要走。 我们的大脑在没有意识努力下表现出导航的一个方面是路径集成。...与这些“认知地图”相关的神经元包括:定位细胞,当它们的主人处于环境中的某个特定位置时点亮;头部方向细胞,告诉他们面对的方向;网格单元,这似乎是在周围地形上对一个假想六边形网格的响应。...谷歌的DeepMind和伦敦大学学院的科学家们想开发一个可以执行路径集成的程序。所以他们通过模拟啮齿动物寻找食物的路径来训练网络。...网格细胞似乎对路径集成非常实用,以至于这个人造啮齿动物想出的解决方案与真正的啮齿动物能想出的非常相似。研究者进一步的疑问是:网格细胞能否在哺乳动物导航的另一个关键方面发挥作用?...他们在给定的迷宫中训练网络,然后开放捷径观察会发生什么。 带有网格细胞的模拟啮齿动物很快找到并使用了捷径,尽管这些路径是全新且未知的。

    46930

    使用Python语言实现走迷宫小游戏

    其实迷宫游戏也是一种令人着迷的智力游戏,通过解决迷宫中的难题来寻找出口,那么在本文这个课题中,将继续使用Python编程语言实现一个简单而有趣的走迷宫小游戏。...关于走迷宫游戏 先来介绍关于走迷宫游戏的介绍,迷宫游戏是一种引人入胜的智力游戏,通过在迷宫中寻找路径并避开障碍物,玩家需要运用逻辑推理和空间感知来找到通往出口的道路,直到走出出口,到达了终点算胜利。...2、初始化游戏环境 在Python开发中,可以使用列表或其他数据结构来表示迷宫地图,还需要初始化游戏环境,将迷宫地图加载到程序中,并确定起点和终点的位置。...3、实现玩家移动 玩家将根据输入的指令在迷宫中移动,可以使用输入函数获取玩家的移动指令,并根据指令来更新玩家的位置,还需要确保玩家在移动时不越过墙壁或迷宫边界,并且能够判断玩家是否到达了终点。...4、游戏交互和提示 为了增加游戏的趣味性,还可以在游戏中提供一些提示信息,帮助玩家找到正确的路径,比如可以通过打印迷宫地图,并在玩家位置周围显示可行的移动方向,还可以计算玩家到终点的距离,并根据距离给出一些提示

    48723

    ​LeetCode刷题实战499:迷宫III

    由空地和墙组成的迷宫中有一个球。球可以向上(u)下(d)左(l)右(r)四个方向滚动,但在遇到墙壁前不会停止滚动。当球停下时,可以选择下一个方向。迷宫中还有一个洞,当球运动经过洞时,就会掉进洞里。...由于可能有多条最短路径, 请输出字典序最小的路径。如果球无法进入洞,输出"impossible"。 迷宫由一个0和1的二维数组表示。1表示墙壁,0表示空地。你可以假定迷宫的边缘都是墙壁。...示例 解题 https://www.cnblogs.com/grandyang/p/6746528.html 这道题在之前的两道The Maze II和The Maze的基础上又做了些改变,在路径中间放了个陷阱...,让球在最小步数内滚到陷阱之中,此时返回的并不是最小步数,而是滚动的方向,用u, r, d, l 这四个字母来分别表示上右下左,而且在步数相等的情况下,让我们返回按字母排序小的答案。...,在后在遍历的过程中不断用较小值来更新每个位置的步数值。

    42720

    一个强化学习案例:Q-learning!!

    Hi,我是Johngo~ 聊一个强化学习的案例。 强化学习是一种机器学习范式,其中智能体学习通过与环境互动来选择行动以最大化累积奖励。...智能体将学习如何在迷宫中移动,以找到最短路径到达目标。 算法原理 Q-learning是一个值迭代算法。 通过学习Q值来选择在每个状态下采取的最佳动作。...Q值表示在特定状态下执行特定动作的长期回报的估计。...使用Q-learning算法进行训练,迭代多个周期,每个周期中智能体在迷宫中选择动作,并根据奖励和下一个状态来更新Q值。 最后,我们打印训练后的Q表格和最优策略。...案例演示了如何使用Q-learning算法解决迷宫问题,以找到最佳路径。通常,Q-learning可以应用于许多强化学习问题,如机器人导航、游戏策略等。

    49620

    一天一大 leet(寻宝)难度:困难-Day20200729

    题目: 我们得到了一副藏宝图,藏宝图显示,在一个迷宫中存在着未被世人发现的宝藏。 迷宫是一个二维矩阵,用一个字符串数组表示。...在地图上有若干个机关点(用 'M' 表示),只有所有机关均被触发,才可以拿到宝藏。 要保持机关的触发,需要把一个重石放在上面。...迷宫中有若干个石堆(用 'O' 表示),每个石堆都有无限个足够触发机关的重石。 但是由于石头太重,我们一次只能搬一个石头到指定地点。 迷宫中同样有一些墙壁(用 '#' 表示),我们不能走入墙壁。...<= 16 0 的数量 宫中存在 M 时,一定存在至少一个 O 抛砖引玉 ?...M-T M 和 O 的选不固定,任意切换是都会产生新的路径,所以在动态规划记录 M-O-M 的组合是就比较复杂 昨天又刚好赶上加班,所以花了两天时间才把逻辑弄清楚

    55620

    迷宫逃离的问题-CoCube

    ROS1云课→20迷宫不惑之A*大法(一种虽古老但实用全局路径规划算法) ---- 将CoCube分别放入如下地图中的左侧,如何从右侧逃离: ---- 需要算法:求解起点到终点的路径。...其中包括带有车载摄像头的简单差速车轮教育平台,甚至是智能手机驱动的机器人。 图:一个由纸板、木头或乐高积木制成的简单迷宫,带有一个或多个充电站。迷宫中的位置用简单的机器人可以识别的独特标记标记。...图显示了一个简单的示例环境,该环境可由工艺材料构建,并可用于教授比赛中移动机器人的实用方面。在RatsLife中,两个微型机器人在寻找隐藏在迷宫中的四个“喂食器”。...利用这些能力,一个潜在的获胜策略将是探索环境,使用视觉识别环境中的标记,并使用它们创建所有馈线位置的地图,计算从馈线到馈线的最短路径,并在它们之间来回移动。...从策略上讲,在喂食器前面等待,并在机器人没电之前接近喂食器可能是有意义的。

    1.2K30

    【重磅】Nature子刊 | 增强学习强化,混合脑生化鼠“走迷宫”能力大幅提升

    V2 鼠和 V1 鼠的硬件配置一样,不过在头上多加了一台微型摄像头。这台微型摄像头会将视频信息无线传输到计算机,然后由计算机识别路标。 迷宫一共有 100 个单元,每个单元的长宽高都为 15 cm。...实验中,经过 V1 鼠在迷宫中的不断行走,计算机系统的 Q-Learning 算法生成了数字奖励地图。根据小鼠的位置和奖励地图,算法生成了实时的 MFB 刺激参数,用于指导生化鼠在迷宫中行走。...为了验证生化鼠是否学会了将学到的规则用于探索迷宫,研究人员进行了第二次试验。实验中,研究人员使用 V2 鼠,并且在迷宫中放置了 6 个路标,每个路标都指明了正确的行进方向。...为了验证生化鼠能否利用学会的信息在新的迷宫中导航,研究人员进行了第三次试验。计算机利用前两次试验的结果,生成了新的规则算法——也就是说,第三次试验时,计算机的算法已经“走过了”迷宫。...算法分析了 3 台 V1 小鼠机器人走迷宫的地图,生成了一个增量奖励规则:从起始单元开始,沿着正确路径目标单位 MFB 刺激的水平逐步递增。此外,其他的奖励地图也被用来验证提取的规则是否正确。

    1.2K80

    Python用栈(stack)解决迷宫问题

    2 方法 从起始位置开始向四个方向搜索,有路可走的点入栈; 遇到走不通的点,则进行标记,表示已经搜索过,并且返回上一个顶点再次搜索 3、不符合的则出栈,最后在栈里的则是路径 代码清单 1 ##栈解决迷宫问题...l[next_node[0]][ next_node[1]] =2 break##找到一个就可以走 else:##四个方向都不可以走 出栈 寻找上一个顶点...,提出从起点开始按照顺序寻找路径,通过栈记录已经走过的路径。...如果最后发现不通就返回上一步,换个方向继续寻找的方法,证明该方法是有效的。...解决此问题方法了解之后还需注意一些细节问题,就如迷宫中 0 表示可以通过,1表示无法通过,-1 表示已经走过的路,左上角坐标为(0, 0),横轴为x 轴,纵轴为y 轴。迷宫四周必须用1围起来。

    13810

    LeetCode 79,明明是走迷宫问题,为什么不能用宽搜呢?

    题意 废话不多说,我们来看题意: 这题的题面挺有意思,给定一个二维的字符型数组,以及一个字符串,要求我们来判断能否在二维数组当中找到一条路径,使得这条路径上的字符连成的字符串和给定的字符串相等?...我们拿到的这个二维的字符型数组就是一个迷宫, 我们是要在这个迷宫当中找一条“出路”。不过我们的目的不是找到终点,而是找到一条符合题意的路径。...在走迷宫问题当中,迷宫中不是每一个点都可以走的,同样在当前问题当中,也不是每一个点都符合字符串的要求的。这两个问题虽然题面看起来大相径庭,但是核心的本质是一样的。...我们需要搜索解可能存在的空间去寻找存在的解,也就是说我们面临的是一个解是否存在的问题,要么找到解,要么遍历完所有的可能性发现解不存在。...,跳过 if nx < 0 or nx == n or ny < 0 or ny == m or visited[nx][ny]:

    91920

    回溯法浅析:逆向思维领略算法之美

    而回溯的过程正是当某一种可能的试探结果否定了该可能路径的正确性后返回先前的某个状态继续进行其他可能性的试探的过程。可以说回溯策略并非按照某种固定的计算方法来设计算法,而是通过尝试和纠正错误来寻找答案。...下面简单举几个例子来阐释回溯法 ---- 迷 宫 问 题 ---- 迷宫问题是应用回溯法解决的典型问题。迷宫早出现在古希腊神话中。...传说在远古时代,麦诺安帝国国王弥诺斯在克里特岛建造了一座有无数宫殿的迷宫,迷宫中道路曲折纵横,谁进去都别想出来,而且在迷宫的纵深处还有一个牛头怪。...迷宫的路径由一系列标识路口的序号组成。为了求解迷宫问题,需要用到回溯的方法,当沿着某一路径一步步走向出口却发现进入死胡同之时,就回溯一步或多步,寻找其他可走的路径。 如下图所示为一个迷宫。...算法的回溯部分将尝试移动第 7 个皇后到第 7 列的另外一点来为第 8 个皇后在第 8 列寻找一个合适的位置。

    71830

    【小白学游戏常用算法】一、随机迷宫算法

    现在的很多游戏中的地图一般采用格子的方式,虽然在表面地图上无法看到实际的格子,但是在地图的结构中专门有一个逻辑层,这个层和地图大小相等,划出很多小的格子,然后在可以通过的地方使用0表示,在有障碍的且不能通过的地方用...有了这个逻辑层之后,实际上自动寻路就转换成了如何在一个二维数组中找出一条从逻辑值为0的地点移动到目标的路径。在寻路之前,我们首先要随机生成这些地图。 ?...当然,最简单的办法就是循环这个二维数组,然后在每一个位置随机地产生0或者1,但是这种算法产生的图形比较难看,并且不一定保证图中的任意两点可以相连通。   ...在随机生成的迷宫中要求任意两点,都可以找到一条路径相通,所以在图论中可以认为迷宫就是一个连通图。...(1)如上图所示为一个6x6的迷宫,先假设迷宫中所有的通路都是完全封闭的,黄色的格子表示可以通过,黑色的格子表示墙壁或者障碍不能通过。

    1.3K20

    哈利·波特的咒语已破译(机器学习控必点)

    当无数哈迷还在重温经典时,这位来自英国赫尔大学的数据侠Jacob已经创造了一个“写手”程序,教大家如何模仿《哈利·波特》的口吻写文章。...(DT君注:这里看不懂可以直接跳过,反正就是通过训练让机器更懂大师的语言风格,比如最爱用什么句式和词组。) 许多程序尝试通过分析文本来预测特征出现的概率,然而并不准确。而我的这种方法总是能有好的结果。...DT君小课堂:支持向量机(SVM)通俗来讲是一种二类分类模型,其学习策略便是间隔最大化,通过寻求结构化风险最小来提高学习机泛化能力,实现经验风险和置信范围的最小化,从而达到在统计样本量较少的情况下,亦能获得良好统计规律的目的...想要深入了解,请看《理解SVM的三层境界》(文末参考资料中附网址。 我目前使用的算法能有精准的结果,这使得句式结构化非常成功。这个阶段中最大的障碍就是将训练数据归一化(normals)。...(DT君翻白眼地注:作者迷之微笑了……) 词汇以词序矩阵的形式包含在训练用的 BLOB 文件中。每个词分解成了词性标注接着进行归一化。

    48300

    轻轻松松学递归

    迷宫回溯问题说的是: ? 在这样的一个迷宫中,红色代表墙壁,现在有一个红色的小球,要求从开始位置出发,解出到出口位置的最短路径。...有细心的人可能就发现了,在这个程序中并没有回溯啊,确实,因为这个迷宫相对简单,在寻找的过程中并没有出现回溯,而是能很顺利地依次执行。 我们来看一个极端的情况: ?...3,这说明在这次的路径寻找过程中是出现了回溯的。...此时程序会返回,返回到上一次的位置(即起点),也就是回溯了,然后继续摸索,发现仍然走不通,所以将该位置也置为3。 上面只是简单实现了迷宫的路径寻找问题,接下来我们来看看如何寻找迷宫中的最短路径。...寻找迷宫中的最短路径思想非常简单,即改变摸索策略,例如我们将摸索策略由下→右→上→左改为上→右→下→左,此时代码修改为: public static boolean findWay(int[][] map

    47330

    从强化学习基本概念到Q学习的实现,打造自己的迷宫智能体

    即选择不同的动作进入不同的状态后,当前可选的动作又不一样。 总的来说,强化学习的目标就是要寻找一个能使得我们获得最大累积奖赏的策略。...每个动作都将使得训练实体进入不同的单元格(即不同的状态)。现在在某个单元格有一个宝箱(即目标状态)。此外,迷宫的某些位置/状态有蛇。...因此训练实体的目标就是通过寻找一条没有蛇的路径从起始状态走到目标状态。 ? 现在当我们在网格中(即环境中)放置一个训练实体,它首先会开始探索。它最开始不知道蛇是什么,也不知道什么是宝箱或宝箱在哪。...现在我们希望训练实体尽快完成任务(采取最短路径),因此我们给予其他状态-1 的奖励。最后我们给定训练实体的目标就是最大化最后累积得分。...所以上例有 16×5 种可能的状态-行动对,其中每种状态都是迷宫中的一个单元格。 首先我们初始化矩阵(上文所述的 16×5 表格)为零矩阵,然后根据不同动作所获得的奖励更新矩阵的元素。

    52870
    领券