## 2 Materials and Methods
### Function to Find Mutually Acceptable Lines  
Let us show how to find mutually acceptable line sets (function \(A()\)). There are three main limitations for other lines that can transmit together with the given line:  
1. Transceiver simplex (or half-duplex) operation mode. 2. Spatial orthogonality by means of beamforming with the help of multiple antennas and synchronized transceivers connected to each antenna. 3. Interference from other lines. Figure 3: Mutually acceptable interfering line sets search. In practice, one transceiver cannot transmit and receive simultaneously being connected to one antenna. Using different antennas for the receiver and transmitter requires spatial separation which is usually impractical for portable devices in ad hoc and sensor networks. As a result, transceivers in ad hoc and sensor networks operate in simplex mode. For the connection between two neighbor nodes it will mean half-duplex line. Simplex mode means that when a source node transmits to one of its neighbor nodes, it cannot receive data from other nodes, and vice versa. In terms of incoming and outgoing lines: if the node transmits, all incoming lines are forbidden; if the node receives, all outgoing lines are forbidden. Let us use the following definitions to express the sets of allowed lines based on simplex operating mode:  
* \(\alpha\)--source node. * \(N_{a}\)--neighbor nodes of node \(\alpha\), the nodes to which the lines exist. * \(n_{a}\in N_{a}\)--one of the neighbor nodes of the node \(\alpha\). * \((\alpha,n_{a})\)--line from the node \(\alpha\) to one of its neighbors \(n_{\alpha}\). * \(A_{(\alpha,n_{a})}^{simplex}\)--sets of allowed lines based on the simplex operating mode for line \((alpha,n_{a})\). \[A_{(\alpha,n_{a})}^{simplex}=L\setminus\{\{(\alpha,n_{a})\}\cup\{(n,\alpha):n \in N_{a}\}\cup\{(n_{a},n):n\in N_{n_{a}}\}\}. \tag{1}\]  
Digital beamforming gives us spatial orthogonality (Figure 4). It allows us to transmit simultaneously to multiple nodes or to receive simultaneously from multiple nodes. There are three main cases of spatial orthogonality (Figure 4):  
1. No spatial separation. Transmission and reception utilize omnidirectional antennas. We can send data only to one neighbor node. The receiving node can only receive data from the source node. 2. Beamforming for transmission and omnidirectional antenna for reception. We can send data simultaneously to multiple neighbor nodes as long as they are far enough to be outside one transmission beam, i.e., we can activate multiple outgoing lines. However, receiving neighbor nodes can only receive data from one sending node. 3. Beamforming for transmission and reception. This case extends the previous one: receiving neighbor nodes can receive data from other nodes too. Figure 4: Spatial orthogonality. Allowed line sets based on spatial orthogonality for omnidirectional antennas for transmission and reception:  
\[A^{spatial}_{(\alpha,n_{\alpha})}=L\setminus\{\{(\alpha,n):n\in N_{\alpha}\} \cup\{(n,n_{\alpha}):n\in N_{n_{\alpha}}\}\}. \tag{2}\]  
Allowed line sets based on spatial orthogonality for the transmission beamforming only:  
\[A^{spatial}_{(\alpha,n_{\alpha})}=L\setminus\{(n,n_{\alpha}):n\in N_{n_{ \alpha}}\}. \tag{3}\]  
Allowed line sets based on spatial orthogonality for the transmission and reception beamforming:  
\[A^{spatial}_{(\alpha,n_{\alpha})}=L\setminus\{\emptyset\}. \tag{4}\]  
Interference limitation is the key one: lines cannot \"coexist\" if their mutual interference does not allow the required bit error rate for each line. To obtain the set of allowed lines \(A^{interference}\) based on interference, we need to test the given line under the interference of each other line separately and estimate the bit error rate. If the bit error rate is less than the target one for the line, then the interfering line belongs to the set \(A^{interference}\).