## 3 Predict and Forward Scheme Based on Node Profile
### Predict Phase: Studying the State of the Network
#### 3.2.2 The Node in the Network Predicts the Future Meeting Probabilities with Others  
In the social application scene of opportunistic networks, the movement of nodes changes the topological structure of the network, and the meeting probability between nodes will also change over time. Consequently, the prediction of the probability of a future encounter between nodes may effectively evaluate the variational transmission relationships of users. Ordinarily, the traditional _SVD_ (snayperskaya vinyovka dragunov) method decomposes a matrix into three matrices, which will result in low computational efficiency and high cache consumption. Nevertheless, the \(FunkSVD\) algorithm creatively decomposes a matrix into only two matrices, so it can be applied to the mobile devices with limited memory spaces and low computing power in opportunistic networks. Firstly, we define a symmetric matrix \(W_{n\times n}\), which includes the statistics about the forwarding metrics between nodes.  
\[W_{n\times n}=\begin{bmatrix}w_{(1,1)}&w_{(1,2)}&w_{(1,3)}&\cdots&w_{(1,n)}\\ w_{(2,1)}&w_{(2,2)}&w_{(2,3)}&\cdots&w_{(2,n)}\\ w_{(3,1)}&w_{(3,2)}&w_{(3,3)}&\cdots&w_{(3,n)}\\ \vdots&\vdots&\vdots&\ddots&\vdots\\ w_{(n,1)}&w_{(n,2)}&w_{(n,3)}&\cdots&w_{(n,n)}\end{bmatrix} \tag{6}\]  
\[W_{n\times n}=\begin{bmatrix}0&P_{(node_{1},node_{2})}&P_{(node_{1},node_{ 3})}&\cdots&P_{(node_{1},node_{n})}\\ P_{(node_{1},node_{2})}&0&P_{(node_{2},node_{3})}&\cdots&P_{(node_{2},node _{n})}\\ P_{(node_{1},node_{3})}&P_{(node_{2},node_{3})}&0&\cdots&P_{(node_{3},node _{n})}\\ \vdots&\vdots&\vdots&\ddots&\vdots\\ P_{(node_{1},node_{n})}&P_{(node_{2},node_{n})}&P_{(node_{2},node_{n})}& \cdots&0\end{bmatrix} \tag{7}\]  
Based on the \(FunkSVD\) algorithm, the probability matrix \(W_{n\times n}\) can be decomposed into two different matrices \(G\)\({}_{n\times k}^{T}\) and \(Q\)\({}_{k\times n}\) by the following Equation (8).  
\[W_{n\times n}=G_{n\times k}^{T}Q_{k\times n} \tag{8}\]  
where each element \(w_{(i,j)}\) in the probability matrix \(W_{n\times n}\) will be decomposed into two vectors \(q_{j}^{T}\) and \(g_{i}\), and it corresponds to a forwarding metric value in Equation  
where \(\theta\) is an adjustable constant, and the predictive value of \(w_{(i,j)}\) is the product of the derivatives of \(g_{i}\) and \(q_{j}\). Consequently, the probability prediction matrix \(W_{n\times n}^{*}\), which is a predictive value of \(W_{n\times n}\), can be calculated by the iterative derivation and calculation of \(g_{i}\) and \(q_{j}\). Consistent with PRoPHET, the Prelearn message keeps a single copy in the Predict phase, which effectively avoids the flooding mode of message routing in the network. During the Predict phase, whenever a new node is routed by Prelearn messages, the Prelearn message collects and updates the carrying information through the attribute characteristics of the node. Meanwhile, the node uses the latest statistics shared from Prelearn messages to predict the probabilities of the future meeting with others and then returns the updated information to the Prelearn message. During the Forward phase, message carriers select the suitable relay nodes through the predictive meeting probability between nodes which is stored in the probability prediction matrix \(W_{n\times n}^{*}\).