## 6 Decision Engine for Multi-User Systems  
This section addresses a system where a single server (or base station) uses a broadcast link to deliver content to multiple users. The channels from the base station (BS) to each user experience different and independent SNR, so when the BS broadcasts a bundle of codewords, each user is able to decode some of them but not others. If all users are interested in decoding all codewords the problem is similar to that of a single link: it makes sense to focus on the user with the most failures and broadcast the corresponding IR bits, that all other users are also able to hear and use in their own data recovery. However, we analyze the more interesting case in which each user is only interested in a subset of the codewords but can overhear and attempt to decode those meant for other users. Furthermore, we assume that users can report the specific codewords that they succeeded in decoding. In this case, the BS can leverage that information and use network coding schemes to optimize the IR [35; 36; 50; 51]. Since not all users are interested in all codewords, extension IR bits for any given codeword would only benefit a subset of the users, possibly a single one. Bundle parity bits obtained by taking the XOR of multiple codewords, however, have the potential to help multiple users decode their desired information. This section focuses on optimizing the choice of codewords in such combinations and the number of bundle parity bits to be sent for each of them. Consider a bundle of codewords being broadcast to multiple users, so that user \(i\) is only interested in codeword \(i\) but overhears all the others. If user \(i\) can successfully decode codeword \(i\), then it is done and does not require any IR. Our goal is to minimize the total number of IR bits sent while ensuring a minimal probability of success for all the users who failed to do so. Let \(b\) denote the number of users that fail to decode their corresponding codewords, and consider all the possible subsets of \(\{1,\ldots,b\}\), indexed with numbers between \(0\) and \(2^{b}-1\). A simple way of doing this would be to use the binary representation of the elements included in the subset. Let \(\Omega_{k}\subseteq\{1,\ldots,b\}\) represent the \(k\)-th such subset for \(k=0,\ldots,2^{b}-1\), so that \(j\in\Omega_{k}\) if and only if \(\lfloor k/2^{j-1}\rfloor\) is odd. Let \(\beta_{k}\) represent the number of IR bits to be sent obtained from the XOR of the codewords in \(\Omega_{k}\). Then the problem that we are trying to solve is  
\[\text{minimize} \sum_{k=0}^{2^{b}-1}\beta_{k}\] (28) subject to \[P_{e}^{(i)}\leq\gamma,\qquad i=1,\ldots,b \tag{29}\] \[\beta_{k}\geq 0,\qquad k=0,\ldots,2^{b}-1 \tag{30}\]where \(P_{e}^{(i)}\) represents the probability of user \(i\) failing to decode after receiving the IR, conditioned on having failed without it, and \(\gamma\) represents the highest such probability that we are willing to tolerate. The failure probability \(P_{e}^{(i)}\) depends on \(\mathsf{SNR}_{0}^{(i)}\), the SNR of the original codeword, and on \(\mathsf{SNR}_{\text{eff}}^{(i)}\), the effective SNR after IR defined in Equation (15). The latter is itself a function of \(\mathbf{\beta}\ =\ (\beta_{1},\beta_{2},\ldots,\beta_{2^{b}-1})\), as described below. Let \(\chi_{i}\in\{1,\ldots,b\}\) represent the indices of the codewords that user \(i\) failed to decode and assume that \(i\in\chi_{i}\) (otherwise the user has received its information and is out of the picture). Receiving \(\beta_{k}\) bits from the XOR of codewords in \(\Omega_{k}\) would help user \(i\) increase the SNR in \(\beta_{k}\) of the bits from codeword \(i\). Figure 3 provides the new SNR for those bits, denoted \(\mathsf{SNR}_{\text{new}}\), as a function of \(\mathsf{SNR}_{0}^{(i)}\) and the number of failed codewords in the XOR, denoted \(f_{k}^{(i)}=|\chi_{i}\cap\Omega_{k}|\).