算法-可视化工具

2020-06-26 22:35:10

Algo-Visualiser是一个内置在ReactJS中的Web应用程序,它展示了各种图形遍历算法的工作原理。它是由Bassel Al-Sayed和Tom Walker出于共同希望了解ReactJS和GPS系统以及这些算法的共同愿望而建造的。

然后可以重置栅格(保留栅栏和开始/结束节点),以允许比较算法。

用户可以查看算法每次运行的基准统计信息,以便与使用相同网格的其他算法进行比较。

使用Serve-s构建进行引导。您可以安装全球服务与纱线全球添加服务或NPM i-g服务,它是方便的周围有。

在撰写本文时,JEST可以在监视模式下的覆盖率中出现错误,因此要获得准确的覆盖率,请运行纱线测试:Coverage。

一种加权的算法,将始终找到最短路径。通过将遍历的权重相加,展开并确定到最终节点的最短距离。

Dijkstra的升级版本,它获取每个节点的距离值,并将其与启发式值相结合,不仅可以确定到完成节点的距离,还可以确定它应该走的方向。在我们的项目中使用了两种类型的启发式算法,曼哈顿距离和欧几里德距离。当使用正确的启发式算法时,它将始终找到最短路径。

又名“乌鸦飞翔”是大多数直线迷宫中使用的启发式方法。它对一个三角形使用毕达哥拉斯定理,该三角形由您希望到达点A(起点)和点B(目的地)的两个点创建。

然而,因为我们的网格只能在水平或垂直顶点上遍历,所以使用此启发式并不总是会给出最短路径,尽管它会比其他启发式快得多。

与欧几里得不同的是,出租车-出租车距离只适用于网格系统,这个启发式方法是通过取三角形上两个点的x&;y值减去绝对值,然后将结果加在一起来计算的。这允许更好的相对距离。

因为曼哈顿只在水平或垂直方向上移动,所以它总是会找到最短的路径。然而,它将比欧几里得慢得多,所以如果速度是一个问题(特别是在巨大的图中),而准确性不是问题,那么选择欧几里得。

是一个图遍历算法,它将在移动到下一层之前搜索主节点的所有相邻节点(在此项目中为北/东/西/南)。这将导致扩散效应,意味着BRS将沿着迷宫探索它遇到的所有消遣。它会找到最短的路径。

广度优先搜索的兄弟不会搜索所有的邻居节点,而是沿着一个分支搜索所有节点,然后再返回到其他未访问的节点。深度优先搜索是列出的唯一不会找到最短路径的算法。

这个项目的灵感来自Clément Mihailescu的一段视频,请访问他的YouTube频道