ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

回溯法:算法思路以及相关流程图的绘制

2022-08-03 23:04:45  阅读:161  来源: 互联网

标签:流程图 路径 算法 && 回溯 path MazeTrack mazeData


参考建模原文
2020国赛B题
参考文章1

回溯法介绍

深度优先搜索(缩写DFS):
对一个连通图进行遍历的算法。它的思想是从一个顶点V0开始,沿着一条路一直走到底,如果发现不能到达目标解,那就返回到上一个节点,然后从另一条路开始走到底,这种尽量往深处走的概念即是深度优先的概念。

回溯法:
把问题的解空间转化成了或者的结构表示,然后使用深度优先搜索策略进行遍历,遍历的过程中记录和寻找所有可行解或者最优解。

回溯法在编程中主要通过递归来实现。

回溯法解决迷宫问题

下图中,左上角为迷宫起点,右下角为迷宫终点。

编程思路

(以c#语言为例,其他语言相似)

初始化需要设置的相关参数:

public Stack<Point> path = new Stack<Point>(); //一条找到的路径
public Stack<Point> bestPath = new Stack<Point>(); //最优路径

其中 bestPath 为最优路径结果, 而 path 为递归过程中存储路径的堆栈,是一个不断在变化与更新的量。

主要递归函数如下(程序主要展现思路):

private void MazeTrack(int x, int y)
{
    Point p = new Point(x, y);
    path.Push(p);
    mazeData[x, y] = 3;  


    //如果该位置是出口,输出结果
    if (x == exitX && y == exitY)
    {

        //判断是否更优
        if (bFrist)
        {
            //如果是找到的第一条路径,直接复制到最优路径
        }
        else 
        {
            //不是第一条,则判断是否更短
            //更短,复制到最优路径
        }
    }

    //判断(x,y)位置的上、下、左、右是否可走
    if ((x - 1) >= 0 && mazeData[x - 1, y] == 0)//上(x-1,y);存在且可走
    {
        MazeTrack(x - 1, y);
    }
    if ((x + 1) < mazeHeight && mazeData[x + 1, y] == 0)//下(x+1,y);存在且可走
    {
        MazeTrack(x + 1, y);
    }
    if ((y - 1) >= 0 && mazeData[x, y - 1] == 0)//左(x,y-1);存在且可走
    {
        MazeTrack(x, y - 1);
    }
    if ((y + 1) < mazeWidth && mazeData[x, y + 1] == 0)//右(x,y+1);存在且可走
    {
        MazeTrack(x, y + 1);
    }

    //上下左右均无法移动,则结束本层递归,返回上一节点
    path.Pop();
    mazeData[x, y] = 0;         //设置为未走
}

标签:流程图,路径,算法,&&,回溯,path,MazeTrack,mazeData
来源: https://www.cnblogs.com/litecdows/p/16549010.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有