我在网上搜索关于Fringe Search的空间和时间复杂度,但没有找到相关信息。能否有人告诉我这些信息,并提供几点理由说明为什么在人工智能中我们应该选择使用Fringe Search而不是A*算法。
回答:
在看到这个帖子之前,我还没有探索过Fringe Search算法,所以请谨慎对待我的回答。根据维基百科,Fringe Search是基于IDA*的,而IDA*又是基于A*的。
IDA*相对于A*的优缺点:
- IDA*旨在减少内存使用,但牺牲了一些性能。
- IDA*会多次检查同一块区域,而A*不会这样做。
- A*会跟踪所有区域,而不仅仅是像IDA*那样跟踪一个小部分区域。
因此,如果你更关心内存消耗而不是路径返回的原始速度,你会选择IDA*而不是A*。
Fringe Search与IDA*/A*的比较:
- Fringe Search旨在解决IDA*的一些最严重的问题,使其在性能与内存使用之间处于两者之间。
- 应该比IDA*执行得更快,但比A*慢。
- 内存使用量比IDA*多,但比A*少。
因此,如果你在有限的内存下工作,但仍希望获得比IDA*更好的性能,Fringe Search似乎是一个不错的选择。一般来说,我建议先使用A*,如果发现有具体问题,再寻找替代算法。