## 2 Related Works and Technology
The suggested protocol saves the control messages of devices during the route-finding process by having a minimal overhead compared to the standard DSR in terms of the number of control messages in the D2D communication. This study regards the D2D routing problem as the shortest (with the least delay and the maximal throughput) path problem and tackles it with a Bidirectional, InCremental A* algorithm for responsiveness. Social awareness is another discussion-provoking issue. Certain incentives are presumed such that an individual UE will be willing to forward packets to others at the cost of increased power consumption. [PERSON] et al. [22] have an in-depth discussion on this matter. This study assumes a social incentives framework. That is, UEs in the same group have a strong social bond and are willing to help each other. Typical examples include field trips to schools, social engagement events of organizations, and so forth. There are two well-known routing algorithms for network routing: namely, the link-state algorithm and the distance-vector algorithm [23]. With link-state routing, every router exchanges its link status information with all other routers in the autonomous system. The Dijkstra algorithm is then employed to find out the shortest paths. In distance-vector routing, each router exchanges link status information with its direct neighbors. The topology information will gradually be propagated to all routers in an autonomous system. This study adopts an approach enlightened by link-state routing. As we shall see in the later discussion, the route planning for D2D group communication can be formulated as an NP-hard problem. Instead of utilizing the Dijkstra algorithm directly, we render the algorithm in the routing plan by comprising two modified A* algorithms, namely Bidirectional Search A* algorithm (BSA*) [24] and Lifelong Planning A* algorithm (LPA*) [25]. The A* algorithm incorporates the idea of the Best-First Search and Dijkstra algorithm. During the search, the A* search expands an intermediate node, \(n\), with a minimal cost, as follows:  
\[f(n)=g(n)+h(n) \tag{1}\]where \(g(n)\) is the actual cost from the start node to node \(n\); \(h(n)\) is a heuristically estimated cost from node \(n\) to the goal node. The A* algorithm was pioneered by [PERSON], [PERSON], and [PERSON] in 1968 [26], which ensures an optimal path if \(h(n)\) is less or equal to the real cost from node n to the goal node. After that, a long list of variants with different appeals had been proposed, including Beam Search A* [27], Iterative Deeping A* [28], Dynamic Weighting A* [29], and Jump Point Search A* [30]. Among all variants, Bidirectional Search A* (BSA*) and Lifelong Planning A* (LPA*) draw our attention to their potential in our framework. As its name implied, BSA* constructs search trees from both the start and the goal nodes in opposite directions. The search terminates when the search trees intersect in reverse directions. It is evident that BSA* is capable of speeding up the search process. LPA* is an incremental version of the A* algorithm, which would adapt to changes in the search tree without recalculating the entire search tree. Upon the detection of topological change, it merely updates the \(g(n)\) from the previous search without reconstructing the entire search tree. This feature endows LPA* with the ability to quick reaction in response to topological change. A review of these works leads to the architectural design of our routing scheme for D2D group communication. The path selection problem can be formulated as an optimization problem with delay and throughput as its cost function. The optimization problem is then resolved by an advanced BICA* algorithm consolidating the concept of bidirectional search and lifelong planning.