Skip to content

path finding algorithms implemented in C++: Breadth First Search、Dijkstra、Greedy Search、A-star

Notifications You must be signed in to change notification settings

ku-zhen/path-finding

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

图搜索算法

注:本仓库仅用于学习目的,代码并未进行性能考量

基于栅格的图搜索算法实现,仅使用标准库(C++11),并通过控制台显示。已实现如下算法:

代码结构

  • 图搜索算法实现于 graph_search 目录。
  • headerssources 目录,提供了用于图搜索的简单数据结构。
  • main 函数的调用示例如下:
    Position2D start=Position2D{10,12};
    Position2D goal=Position2D{40,12};
    
    std::cout<<"\n宽度优先搜索、普通图(#为障碍,@为路径):"<<std::endl;
    {
        // 创建栅格地图,并添加障碍
        SquareGridMap map(50,20);
        map.setObstacles(5,5,5,5);
        map.setObstacles(30,8,8,5);
        map.setObstacles(20,5,3,12);
        map.setObstacles(14,12,6,3);

        // 应用图搜索算法
        auto came_from= breadth_first_search(map,start,goal);
        auto path = map.reconstructPath(start,goal,came_from);

        // 绘制结果
        map.drawWith(&start,&goal, nullptr,&path); // 第三个参数设置为&came_from,则输出会显示算法的搜索方向
    }

效果图

About

path finding algorithms implemented in C++: Breadth First Search、Dijkstra、Greedy Search、A-star

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published