# A Light Signaling Approach to Node Grouping for Massive MIMO IoT Networks
## 5 Optimization
### System Model  
We have a set of nodes (IoT devices) \(\mathcal{K}\) served by a massive MIMO base station. Each node \(k\in\mathcal{K}\) has a dominant direction of its signal, as defined in the previous section, \begin{table}
\begin{tabular}{c l} \hline \hline
**Symbol** & **Explanation** \\ \hline \(\mathcal{K}\) & set of nodes \\ \(\theta(k)\) & dominant direction of node \(k\in\mathcal{K}\) \\ \(P\) & number of pilots in each coherence block \\ \(\mathcal{G}\) & set of scheduling groups \\ \(u_{kg}\) & whether or not node \(k\in\mathcal{K}\) is placed in group \(g\in\mathcal{G}\) \\ \(\mathcal{P}\) & the set \(\{1,...,p\}\), \(P\in\mathbb{N}\) \\ \(Y_{kg}^{p}\) & whether or not node \(k\in\mathcal{K}\) is the \(p\)th node in group \(g\in\mathcal{G}\), \(p\in\mathcal{P}\) \\ \(t_{g}^{p}\) & angle of the \(p\)th node in group \(g\in\mathcal{G}\), \(p\in\mathcal{P}\) \\ \(T_{g}\) & angle of the last node in group \(g\in\mathcal{G}\) \\ \(d_{g}^{p}\) & \(p\)-th angular difference of nodes in group \(g\in\mathcal{G}\), \(p\in\mathcal{P}\) \\ \(\mathcal{B}\) & min-max angular difference across groups \\ \(\sigma(k)\) & angular spectrum spread of node \(k\in\mathcal{K}\) \\ \(s_{g}^{p}\) & angular shift of the \(p\)th node in group \(g\in\mathcal{G}\), \(p\in\mathcal{P}\) \\ \(S_{g}\) & angular shift of the last node in group \(g\in\mathcal{G}\) \\ \(m_{g}^{p}\) & whether or not the \(p\)th node in group \(g\in\mathcal{G}\) is the last node in the group, \(p\in\mathcal{P}\) \\ \hline \hline \end{tabular}
\end{table} 
Table 1: Notation. Figure 2: Two example channels with a high and low angular spectrum spread. Here, signal power is normalized such that the total power of each channel across the entire angular spectrum is 1.  
denoted by \(\theta(k)\) and measured in radians clockwise from a designated reference direction (e.g., due north). In the following, if not otherwise specified, all other angles are also defined as clockwise from this reference direction. The dominant direction does not necessarily represent the direction to the physical location of the node; it could also be a signal component reflected one or more times from an object in the environment. For our purposes, however, the physical location of the node is less important than the arrival direction of its transmitted signals. Scheduling of nodes for both uplink and downlink transmission occurs in coherence blocks, such that a given group of nodes should be scheduled for an integer number of blocks. Herein we focus on partitioning the set of nodes \(\mathcal{K}\) into groups that can be scheduled together. In each coherence block, there are \(P\) available pilot signals, and this thus represents the maximum number of nodes that can be placed in each group. We define a set of scheduling groups \(\mathcal{G}\), where each group may contain at most \(P\) nodes. The groups do not necessarily need to contain the same number of nodes, and some groups may even be empty. The partitioning of nodes into groups is represented by binary decision variables \(u_{kg},k\in\mathcal{K}\), \(g\in\mathcal{G}\), equal to 1 if and only if node \(k\) is placed in group \(g\). Within each group, the nodes are ordered by their dominant directions. We therefore define binary variables \(Y^{p}_{kg},k\in\mathcal{K}\), \(g\in\mathcal{G}\), \(p\in\mathcal{P}=\{1,\ldots,P\}\), where \(Y^{p}_{kg}=1\) indicates that \(k\) is the \(p\)th node in \(g\). If a given group \(g\) contains fewer than \(P\) nodes, some \(Y^{p}_{kg}\) will be zero for all \(k\in\mathcal{K}\). The angle of the \(p\)th node in group \(g\) is given by the continuous variable \(t^{p}_{g}\), with \(t^{p}_{g}=0\) if group \(g\) contains fewer than \(p\) nodes. We next introduce continuous variables \(d^{p}_{g},g\in\mathcal{G}\), \(p\in\mathcal{P}\) to represent the differences in angle between adjacent nodes in each group. For \(p\) less than the number of nodes in group \(g\), we thus have \(d^{p}_{g}=t^{p+1}_{g}-t^{p}_{g}\) for \(p<P\).