## 2 Methodology
### Determination of Weights  
#### 2.3.1 Customer Weights  
In the context of group decision-making, the method for adjusting the weights of each customer is provided in [38], which proposes an algorithm based on gray relational analysis theory for adjusting customer weights. The literature [39] uses entropy-based weighting coefficients for weight adjustment. This paper attempts to adopt a new approach, offering a reasonable and practical weight adjustment algorithm.  
Basic Idea of Customer Weight Adjustment Using the Projection Method: The individual decision results of customers and the group decision results are treated as vector sequences. The individual decision results are considered a comparison sequence, while the group decision results serve as a reference sequence. By analyzing the angle between the comparison sequence and the reference sequence, the similarity between the two vectors is determined. The smaller the angle between them, the higher the similarity, indicating that the deviation between the individual decision result of the customer and the group decision result is smaller. As a result, the weight of the customer is considered larger. The steps for this method are as follows:  
Step 1: Based on the normalized customer weights and attribute weights obtained from initialization, calculate the individual decision results of the customers and the group decision results as follows:In the \(t\)-th stage, the individual decision score for each plan based on the two reference points is given by  
\[x_{it}(i)\ =\ l\cdot V_{1}(k)+(1-l)\cdot V_{2}(k). \tag{31}\]  
In the \(t\)-th stage, the group decision score for each plan based on the two reference points is given by  
\[x_{0t}(k)\ =\ \sum\limits_{i\ =\ 1}^{I}x_{it}(k)\mu_{i}. \tag{32}\]  
Step 2: Treat the group decision result as the reference sequence \(x_{0t}\), and the individual decision result of the customer as the comparison sequence \(x_{it}\), where \(i\ =\ 1,2,\ldots,I\).  
\[x_{0t}\ =\ (x_{0t}(1),x_{0t}(2)\ldots,x_{0t}(K)) \tag{33}\]  
Step 3: Calculate the angle between the comparison sequence and the reference sequence. The specific calculation formula is as follows:  
\[cos\varphi\ =\ \cos\langle x_{it},x_{0t}\rangle\ =\ \frac{\sum\limits_{k\ =\ 1}^{K}x_{it}(k)x_{0t}(k)}{\sqrt{\sum\limits_{k\ =\ 1}^{K}(x_{it}(k))^{2}}\sqrt{\sum\limits_{k\ =\ 1}^{K}(x_{0t}(k))^{2}}}. \tag{34}\]  
Step 4: Adjust customer weights. In order to reflect both the wisdom of the group decision and take into account the opinions of each customer, the customer weights are adjusted. The specific adjustment direction is as follows:  
\[\mu^{\prime}_{i}\ =\ \frac{\cos\langle x_{i},x_{0}\rangle}{\sum\limits_{i\ =\ 1}^{I}\cos\langle x_{i},x_{0}\rangle}. \tag{35}\]  
Step 5: Calculate the distance between \(x_{0t}\) and \(x^{\prime}_{0t}\). After adjusting the customer weights using the steps mentioned above, and incorporating Equation (26) along with the updated \(\mu^{\prime}_{0t}\) value, the new group decision result is calculated as follows:  
\[x^{\prime}_{0t}\ =\ (x^{\prime}_{0t}(1),x^{\prime}_{0t}(2)\ldots,x^{\prime}_{0t} (K)). \tag{36}\]  
Let \(L(x_{0t},x^{\prime}_{0t})\) represent the distance between \(x_{0t}\) and \(x^{\prime}_{0t}\). It is defined as follows:  
\[L(x_{0t},x^{\prime}_{0t})\ =\ \sqrt{\sum\limits_{k\ =\ 1}^{K}(x_{0t}(k)-x^{ \prime}_{0t}(k))^{2}}. \tag{37}\]  
Step 6: Set a threshold \(r\), and compare \(L(x_{0t},x^{\prime}_{0t})\) with \(r\) as follows:  
If \(L(x_{0t},x^{\prime}_{0t})\leq r\), the group decision result is considered stable, and the process can stop.  
If \(L(x_{0t},x^{\prime}_{0t})>r\), further adjustments to the customer weights are needed, and the process returns to Step 4 for further iterations.