diff --git a/src/testCase/bStar.erl b/src/bStar/bStar.erl similarity index 100% rename from src/testCase/bStar.erl rename to src/bStar/bStar.erl diff --git a/src/bStar/算法原理.md b/src/bStar/算法原理.md new file mode 100644 index 0000000..9fedb4d --- /dev/null +++ b/src/bStar/算法原理.md @@ -0,0 +1,19 @@ +算法原理 +本算法启发于自然界中真实动物的寻路过程,并加以改善以解决各种阻挡问题。 +前置定义: +1、探索节点: +为了叙述方便,我们定义在寻路过程中向前探索的节点(地图格子)称为探索节点,起始探索节点即为原点。(探索节点可以对应为A*中的开放节点) + +2、自由的探索节点: +探索节点朝着目标前进,如果前方不是阻挡,探索节点可以继续向前进入下一个地图格子,这种探索节点我们称为自由探索节点; + +3、绕爬的探索节点: +探索节点朝着目标前进,如果前方是阻挡,探索节点将试图绕过阻挡,绕行中的探索节点我们成为绕爬的探索节点; +算法过程 +1、起始,探索节点为自由节点,从原点出发,向目标前进; +2、自由节点前进过程中判断前面是否为障碍, +a、不是障碍,向目标前进一步,仍为自由节点; +b、是障碍,以前方障碍为界,分出左右两个分支,分别试图绕过障碍,这两个分支节点即成为两个绕爬的探索节点; +3、绕爬的探索节点绕过障碍后,又成为自由节点,回到2); +4、探索节点前进后,判断当前地图格子是否为目标格子,如果是则寻路成功,根据寻路过程构造完整路径; +5、寻路过程中,如果探索节点没有了,则寻路结束,表明没有目标格子不可达; \ No newline at end of file