# Post-Processing Partitions to Identify Domains of Modularity Optimization
## 2 The CHAMP Algorithm (Convex Hull of Admissible Modularity Partitions)
### MultiLayer Networks and Qhull  
As noted previously, modularity has also been extended to multilayer networks [16], for detecting communities across layers in a way that respects the disparate nature of intralayer v. interlayer edges. In order to keep our notation as simple as possible, here we let each node in a layer be indexed by a single subscript, \(i\) or \(j\). (See [19; 39] for broader discussion about different notations and their advantages.) The formulation developed in [16] is then written as follows for the case of a single intralayer coupling parameter with general intralayer null models and interlayer connectivity (again, ignoring multiplicative prefactors in the definition of modularity):  
\[Q(\gamma,\omega)=\sum_{i,j}\left(A_{ij}-\gamma P_{ij}+\omega C_{ij}\right) \delta(c_{i},c_{j}) \tag{5}\]  
where \(A_{ij}\), \(P_{ij}\), and \(C_{ij}\) represent the (possibly weighted) edges, null model, and interlayer connections, respectively, between the node-in-a-layer indexed by \(i\) and that indexed by \(j\); and \(c_{i}\) indicates the community assignment. For example, in the'supra-adjacency' representation of a simple multilayer network of multislice type where the same \(N\) nodes appear in each of \(L\) layers, one might order the indices so that \(i\in\{1,\dots,N\}\) corresponds to the first layer, \(i\in\{N+1,\dots,2N\}\) corresponds to the second layer, and so on. To emphasize that the formulation of CHAMP is independent of the details of the multilayer network under study, we note here that the only distinction used presently is that \(A_{ij}\) encodes all of the edges, \(P_{ij}\) specifies the within-layer null model contributions, and \(C_{ij}\) describes the known interlayer connections. The key fact here is that \(P_{ij}\) and \(C_{ij}\) make distinct contributions to multilayer modularity, as controlled by two different parameters, \(\gamma\) and \(\omega\). As such, we need to extend CHAMP to simultaneously address both parameters. We will not assume anything here about the values or the topology of the elements of \(C_{ij}\), only that the role of these interlayer connections in determining multilayer modularity is controlled by a single interlayer coupling parameter, \(\omega\). Larger values of \(\omega\) promote partitions with larger total within-community interlayer weight, encouraging the identification of partitions with greater spanning across layers (for a detailed analysis of behavior across \(\omega\), see [40]). We use the GenLouvain [41] generalized implementation of the Louvain [42] heuristic to identify partitions at selected \((\gamma,\omega)\) parameter values in the multilayer network example in Section 3.4. Coupling the communities across layers is conceptually intuitive. Unfortunately, introduction of the additional parameter, \(\omega\) makes the previous methods for parameter selection via visual inspection difficult to employ in practice and would seem to greatly complicate the challenge of selecting good values of the parameters. (See [34] for one approach to addressing this challenge.) However, because the multilayer modularity function is linear in the parameters \(\gamma\) and \(\omega\), we can again apply the general approach of CHAMP, albeit now in a larger dimensional parameter space.