## 4 Non-Cooperative Game of Customers
### Iterative Distributed Scheme Based on Gossip Algorithm  
It should be noted that the customer has to know \(K(t)\) when s/he makes an optimal decision in the previous Section 4.2. There are two ways for customers to get the global information about \(K(t)\). The first way is to gather all the optimal decisions from customers and calculate \(K(t)\) by a centric node, after which the centric node broadcasts the information about \(K(t)\) to all the customers. This approach is efficient only if the communication channels between the centric node and customers are stable and reliable enough, and customers are willing to open their private information before their final decision. More importantly, it is difficult for the centric node to check whether the gathered information is illusive. Another way is to distributedly exchange information with a few customers, but not open it to the public, and then estimate the global information, i.e., estimation value of \(K(t)\) based on the Gossip algorithm. This approach does not rely on a centric node, which ensures our DR scheme is being totally distributed. The Gossip algorithm is a non-centric distributed algorithm that has been used in many engineering fields, including power systems. For example, references [49; 50] proposed a distributed architecture for managing power flows on distribution grids based on the Gossip algorithm. The basic ideal of the Gossip algorithm is to get global information, such as a sum and average value, based on exchanging one's own information with some neighbor nodes but not gathering the information in a centric node. This algorithm is suitable for the proposed game when customers estimate \(K(t)\), because customers are willing to exchange private information with some familiar DR participants based on social networks. The social network can be represented as a graph \(\mathcal{G}(\mathcal{V},\mathcal{E})\), where \(\mathcal{V}\) denotes the set of all nodes in the network and it equals \(\mathcal{I}\) as a result, that is, all of the DR program participants. \(\mathcal{E}\) denotes the set of logical links between nodes, that is, if the edge is \((i,j)\in\mathcal{E}\quad i,j\in\mathcal{I}\), it means that customers \(i\) and \(j\) are able to exchange information. The set \(\mathcal{N}_{i}\) denotes all the customer nodes who can exchange information with customer \(i\), i.e., \(\mathcal{N}_{i}=\{j|(i,j)\in\mathcal{E}\}\). Define two \(I\times I\) matrices, i.e., adjacent matrix \(\mathbf{A}\) and degree matrix \(\mathbf{D}\), and their entries \(a_{ij}\) and \(d_{ij}\) are:  
\[a_{ij}=\left\{ \begin{array}{ll}1&if\ (i,j)\in\mathcal{E},\,i\
eq j\\ 0&if\ (i,j)\
otin\mathcal{E}\end{array} \right.\quad\forall i,j\in\mathcal{I} \tag{22}\]  
\[d_{ij}=\left\{ \begin{array}{ll}\sum_{j\in\mathcal{I}}a_{ij}&if\ i=j\\ 0&if\ i\
eq j\end{array} \right.\quad\quad\quad\forall i,j\in\mathcal{I} \tag{23}\]  
To estimate \(K(t)\), customers can estimate the average of \(K(t)\) indirectly, that is, \(k_{\text{ave}}(t)=K(t)/I\), and multiply by the total number of DR participants \(I\), which will be broadcasted by LSE in advance. In the proposed scheme, the customer who signs in to the DR should be counted as a DR participant, but s/he can choose \(k_{i}=0\) and need not respond to the DR signal. Thus, the total number is a constant for LSE and is easy to get. To distinguish the actual value of \(K(t)\) and the customer's estimation value, we use \(\hat{K}_{i}(t)\) to represent customer \(i\)'s estimation value. To estimate the average value, the customer needs to update the estimating value using (24) [51]:  
\[k_{\text{ave}.i}^{(r+1)}=\omega_{ii}k_{\text{ave}.i}^{(r)}+\sum_{j\in\mathcal{N }_{i}}\omega_{ij}k_{\text{ave}.j}^{(r)} \tag{24}\]  
where \(\omega_{ii}\) and \(\omega_{ij}\) are weights. \(k_{\text{ave}.i}^{(r)}\) represents the average value of \(\hat{K}_{i}(t)\) in the \(r\)th round for customer \(i\).