## 3 System Model Design
### Community Division Strategy
Move a node from set \(B\) to set \(A\), then check that all the elements in B are still connected to all nodes in \(A\), and delete nodes that are no longer connected to all nodes in \(A\). Continuously move the node and delete some nodes which are not meeting the requirements. In the continuous process, if \(B\) is already empty before the size of \(A\) increase to \(N\), or \(A\) or \(B\) are a set or subset that already exists, then stop counting and return to the first step--find another initial node \(V_{i}\) and start a new iteration. If \(B\) is not empty before the size of \(A\) reaches \(N\) and \(A\) is not a subset of existing factions, we get a new faction. Record the faction and then return to the first step to continue the search for new factions. We take this 12-node network as an example as shown in Figure 1.  
In this 12-node network structure, we set the faction size to 4. Suppose the initial node is \(V_{1}\), and the set \(B=\mathit{neighbor}\left[V_{1}\right]=\{V_{2},V_{3},V_{8},V_{10},V_{11},V_{12}\}\). If we move node \(V_{3}\) into set \(A\), now \(B=\{V_{2},V_{8},V_{10},V_{11},V_{12}\}\). At this point, \(V_{1},V_{2}\) are connected. Then, we move the node \(V_{8}\) into the set \(A\), and the nodes in the set \(B\) are still connected to the nodes in A, with only nodes \(V_{10}\) and \(V_{12}\) left. Because \(B\) is not empty when the size of the set \(A\) is less than N, this process can still go on. However, when we prepare to move \(V_{3}\) to set \(A\), we can find that there already exist a set or subset, so we do not save this group as a faction. After finding all fully coupled network factions of size 4 and faction size \(N\) minus one, we continue to find all the appropriate factions until \(N\) is 2. In this way, we have all the fully-coupled networks within the network so far. With the idea of iterative regression, all nodes in the network are traversed and the seven factions of this 12-node network are obtained as follows. In the Figure 2 below (top to bottom, left to right):  
Figure 1: A 12-node network as an example, to show the division of nodes based on faction. \(G_{1}=\{V_{1},V_{2},V_{3},V_{12}\}\); \(G_{2}=\{V_{1},V_{3},V_{8},V_{10},V_{12}\}\); \(G_{3}=\{V_{3},V_{10},V_{11},V_{12}\}\); \(G_{4}=\{V_{4},V_{5},V_{6},V_{7}\}\); \(G_{5}=\{V_{4},V_{5},V_{8},V_{9}\}\); \(G_{6}=\{V_{3},V_{4},V_{8}\}\); \(G_{7}=\{V_{8},V_{9},V_{10}\}\). After we find all the factions in the network, we can find the overlapping matrix of these factions as shown in (1). Each column of the matrix corresponds to a faction, the value on the diagonal line corresponds to the size of corresponding faction, and the elements on the non-diagonal line represent the number of common nodes of each two factions. \[M_{\mathrm{O}}=\left[ \begin{array}{cccccccc}4&3&2&0&0&1&0\\ 3&5&3&0&1&2&2\\ 2&3&4&0&0&1&1\\ 0&0&0&4&1&1&0\\ 0&1&0&1&4&2&2\\ 1&2&1&1&2&3&1\\ 0&2&1&0&2&1&3\end{array} \right] \tag{1}\]  
In this overlapping matrix, if the elements in the diagonal of the matrix are less than \(N\) or the elements not on the diagonal are less than \(N\) minus 1, set these elements equal to 0 and the rest of the elements to 1. The resulting matrix is the adjacency matrix of the \(N\) factional community structure as shown in (2). In this matrix, these remaining connected parts represent the community structure that meets the requirements. \[M_{A}=\left[ \begin{array}{cccccccc}1&1&0&0&0&0&0\\ 1&1&1&0&0&0&0\\ 0&1&1&0&0&0&0\\ 0&0&0&1&0&0&0\\ 0&0&0&0&1&0&0\\ 0&0&0&0&0&0&0\\ 0&0&0&0&0&0&0\end{array} \right] \tag{2}\]  
According to the connectivity analysis of (2), the structure of the three communities in the network is shown in the Figure 3:  
Figure 2: These seven graphs show the results of the division of factions after all nodes in the network have been traversed. We can use the above community partitioning strategy to divide the network into several community structures.