package
0.0.3
Repository: https://github.com/oldbai555/lbtool.git
Documentation: pkg.go.dev

# README

A* 算法 demo

# Functions

Astar 实现了 A* 搜索算法,它接受一个起始节点、一个目标节点和一个二维网格数组,并返回一条从起始节点到目标节点的最短路径。 A* 算法的主要思路如下: 1.将起点放入开放列表,并将其 f 值设置为起点的启发式估价函数值。同时将其 g 值(起点到该点的实际代价)设置为 0 , h 值(该点到终点的启发式估价函数值)。 2.从开放列表中选取 f 值最小的节点,将其从开放列表中移除并加入到封闭列表(Closed List)中。将该节点的相邻节点添加到开放列表中,如果该相邻节点尚未被探索过,则计算其 g 值和 h 值,并设置其父节点为当前节点。如果该相邻节点已经在开放列表中,则检查更新其 g 值和父节点,如果当前路径比原路径更短,则更新。 3.重复步骤 2,直到找到终点或开放列表为空。 4.如果找到终点,则从终点开始追踪父节点,直到回溯到起点,即可得到最短路径。.

# Structs

Node 节点 使用 g 值和 h 值可以计算出从起点到目标节点的最短路径,这是 A* 算法的核心思想。 通过使用 g 值,可以确保扩展的节点是当前已知的最短路径上的节点。 通过使用 h 值,可以估计扩展节点到目标节点的最短距离,并向着目标节点前进。 使用 f 值可以将这两个因素结合起来,并选择当前最佳的节点进行扩展。.

# Type aliases

CheckNodeLogic 检查该节点.
PriorityQueue 优先队列.