## 3 System Model Design  
### Community Division Strategy  
In opportunistic networks, within a certain time frame, the distribution of nodes is very similar to that of nodes in social networks, which means that the nodes in the opportunistic networks can be divided into different communities within a certain time frame. The community is a small network structure based on social relationships. The community has a close connection with the nodes inside, and the nodes outside the community are sparse. The accurate division of community structure can help improve the transmission speed and packet delivery ratio of information transmission and data forwarding. In this paper, we record the connection status of nodes in the network periodically by analyzing the social characteristics, connection attributes, and context information of nodes, to divide the structure of the networks in certain time intervals. In fact, there are no independent community structures in the real world. This means that networks cannot be divided into several separate communities but are instead made up of a lot of overlapping areas of associations. A community can be seen as a collection of interconnected \"small fully coupled networks\" which can be called factions. We use the factional filtering algorithm to divide the communities. If we find the largest full-coupling subgraph of each part of the network, it can be used to find the connected subgraph of the faction, and accordingly divides the networks into many communities according to the factional divisions. **Definition 1**. : _The size of the fully coupled network. When we are dividing communities by the factional filtering algorithm, N is the probable size of the largest fully coupled network. The result of the final community division will be impressed by the value of N._  
**Definition 2**. : _Fully coupled network. If there is a path for each node in a network to any other node, the network is called a fully coupled network._  
**Definition 3**. : _Overlap matrix. Analogous to the adjacency matrix. Each column of the matrix corresponds to a faction. The value on the diagonal corresponds to the corresponding faction size, and the element on the non-diagonal represents the number of common nodes of the two factions._  
Given network \(G=(V,E)\), \(V=\{V_{1},...,V_{n}\}\) is a node-set including n nodes. Set N as the size of a possible fully coupled network. Starting from a set \(V_{i}\), find all the N-size communities which contain node \(V_{i}\), then delete node \(V_{i}\) and the edges that connect the node \(V_{i}\). After we find all the N-size fractions, set \(N=N-1\) until N equals 2. So far, we have found the community structure of all the different factions in the network. In this paper, we use a 12-node diagram as an example to illustrate the community partition based on the factional filtering algorithm, with a value of N of 4. When we use the factional filtering algorithm, an iteration regression method is usually adopted to find the factions in the network structure. If a vertex \(v\) is adjacent to all vertices of faction \(K\), vertex \(v\) is an adjacent vertex of faction \(K\). If the adjacent vertex of the faction is no longer contiguous to the other adjacency point of the faction, the adjacent node is referred to as the first type of adjacency node. If the adjacent vertex of the faction is connected to the other adjacent vertices of the faction, it is called the adjacent vertex of the second type. For an initial node \(V_{i}\), define two sets of nodes \(A\) and \(B\), where set \(A\) is a set of nodes that contain node \(V_{i}\) and all nodes are connected to each other; Nodes in \(B\) connect to all nodes in \(A\), and set \(B\) contains the first class adjacency node and the second type adjacency node. First, start iterating from node \(V_{i}\), and initialize the set \(A=\{V_{i}\}\), \(B=\mathit{neighbor}\left[V_{i}\right]\).