双向搜索算法是一种图的遍历算法，用于在中搜索从一个顶点到另一个顶点的最短路径。算法同时运行两个搜索：一个从初始状态正向搜索，另一个从目标状态反向搜索，当两者在中间汇合时搜索停止。在很多情况下该算法更快，假设搜索一棵分支因子"b"的树，初始节点到目标节点的距离为"d"，该算法的正向和反向搜索复杂度都是"O"("b") (大O符号)，两者相加后远远小于普通的单项搜索算法（复杂度为"O"("b")）。在A*搜寻演算法中，双向搜索的启发式函数可以定义为：正向搜索为到目标节点的距离，反向搜索为到初始节点的距离。