Algorithm 找到完成路径的最小步数的算法

Algorithm 找到完成路径的最小步数的算法,algorithm,optimization,dynamic,Algorithm,Optimization,Dynamic,问题是沿着一条路径移动玩家 n个方块中,从方块1开始,每一步向前移动。无论如何 重点是,你可以做三件事中的一件 按白色按钮向前移动2个方块。如果 剩下不到2个方块,则此按钮终止 这场比赛你赢了 按红色按钮向前移动3个方块。如果 剩下的方块数少于3个,则此按钮终止 这场比赛你赢了 按绿色按钮向前移动5格。如果 如果剩下不到5个方块,则此按钮终止 这场比赛你赢了 规则:每个正方形都涂上蓝色和绿色。 如果玩家停在绿色广场上。他输了 如何设计算法来查找: 完成游戏所需的最小步骤 需要按下按钮才能获胜

问题是沿着一条路径移动玩家 n个方块中,从方块1开始,每一步向前移动。无论如何 重点是,你可以做三件事中的一件

  • 按白色按钮向前移动2个方块。如果 剩下不到2个方块,则此按钮终止 这场比赛你赢了

  • 按红色按钮向前移动3个方块。如果 剩下的方块数少于3个,则此按钮终止 这场比赛你赢了

  • 按绿色按钮向前移动5格。如果 如果剩下不到5个方块,则此按钮终止 这场比赛你赢了

规则:每个正方形都涂上蓝色和绿色。 如果玩家停在绿色广场上。他输了

如何设计算法来查找:

  • 完成游戏所需的最小步骤

  • 需要按下按钮才能获胜


  • 您可以从头到尾反向工作,并应用动态规划算法:

    从路径中的最后一个条目开始:

    • 如果是蓝色:
      • 如果在此之后少于5个位置:将绿色移动(5个步骤)链接到该条目
      • 否则,请检查路径(已处理)中前面2、3和5的每个点:选择链接有最佳解决方案(最少移动)的点。使用相应的移动(2=白色,3=等)扩展(预先结束)该解决方案,并将该信息存储在当前条目中
    对路径中前面的每个条目重复此操作,每次存储从那里到win的最短路径信息(如果为蓝色)


    解决方案是存储在路径的第一个条目中的内容。当然,有些情况下不可能获胜。

    您遇到的具体问题是什么?你能展示一下你的尝试吗?