scheme. Given that the relay nodes are equipped with buffers and thus can store the data received from the source, the $\max-\max$ policy splits the relay selection decision in two parts and selects the relay with the best source-relay link for reception and the relay with the best relay-destination link for transmission. The $\max-\max$ selection policy respects the conventional two-slot cooperative transmission where the first slot is dedicated for the source transmission and the second slot for the relaying transmission, but the relay node may not be the same for both phases of the protocol. The $\max-\max$ relay selection policy can be written as $$\begin{aligned}
&R_r^*=\arg\max_{R_k\in \mathcal{C}}\{ g_{S,R_k} \}, \\
&R_t^*=\arg\max_{R_k\in \mathcal{C}}\{ g_{R_k,D} \},\end{aligned}$$ where $R_r^*$ and $R_t^*$ denote the relay selected for the first phase and the second phase of the cooperative protocol, respectively. It has been proven that the $\max-\max$ relay selection policy also ensures full diversity equal to the number of the relays and it provides a significant coding gain in comparison to the conventional $\max-\min$ selection scheme. However, it is worth noting the the above selection strategy assumes that no relay’s buffer can be empty or full at any time and thus all relays have always 