IDDFS has a bidirectional counterpart, which alternates two searches: one starting from the source node and moving along the directed arcs, and another one starting from the target node and proceeding along the directed arcs in opposite direction (from the arc's head node to the arc's tail node). The search process first checks that the source node and the target node are same, and if so, returns the trivial path consisting of a single source/target node. Otherwise, the forward search process expands the child nodes of the source node (set formula_41), the backward search process expands the parent nodes of the target node (set formula_42), and it is checked whether formula_41 and formula_42 intersect. If so, a shortest path is found. Otherwise, the search depth is incremented and the same computation takes place.