## 4 Solution Algorithm  
Numerous algorithms based on gradient descent are employed to address optimization problems [40; 41]. However, these methods can be computationally expensive for the complex formulation of the proposed GNL-based SUE model. Therefore, the disaggregate simplicial decomposition (DSD) algorithm is used to solve this model [16; 22]. This approach iteratively solves subproblems generated by objective function, with each new auxiliary solution obtained from the previous iteration. This section details the method to address the proposed problem. In the above discussion, at iteration \(n\) we have:  
\[f_{k}^{rs(n)}-q^{rs}\frac{\sum_{m}\Biggl{(}\left(\alpha_{mki}exp\Bigl{(}-c_{k} ^{rs(n)}\theta\Bigr{)}\right)^{1/\mu_{m}}\biggl{(}\sum_{k}\left(\alpha_{mki} exp\Bigl{(}-c_{k}^{rs(n)}\theta\Bigr{)}\right)^{1/\mu_{m}}\biggr{)}^{\mu_{m}-1} \Biggr{)}}{\sum_{m}\left(\sum_{k}\left(\alpha_{mki}exp\bigl{(}-c_{k}^{rs(n)} \theta\bigr{)}\right)^{1/\mu_{m}}\right)^{\mu_{m}}}=0. \tag{13}\]  
Let \(g_{k}^{rs(n)}\) denote the auxiliary solution obtained in the \(n\)th iteration:  
\[g_{k}^{rs(n)}=q^{rs}\frac{\sum_{m}\Biggl{(}\left(\alpha_{mki}exp\Bigl{(}-c_{k} ^{(n)}\theta\Bigr{)}\right)^{1/\mu_{m}}\biggl{(}\sum_{k}\left(\alpha_{mki}exp \Bigl{(}-c_{k}^{(n)}\theta\Bigr{)}\right)^{1/\mu_{m}}\biggr{)}^{\mu_{m}-1} \Biggr{)}}{\sum_{m}\left(\sum_{k}\left(\alpha_{mki}exp\bigl{(}-c_{k}^{(n)} \theta\bigr{)}\right)^{1/\mu_{m}}\right)^{\mu_{m}}}. \tag{14}\]  
\(g_{k}^{rs(n)}-f_{k}^{rs(n)}\) is a decent direction of \(Z\). In each iteration, \(f_{k}^{rs(n+1)}\) can be calculated as the following method:  
\[f_{k}^{rs(n+1)}=f_{k}^{rs(n)}+\eta^{(n)}\Bigl{(}g_{k}^{rs(n)}-f_{k}^{rs(n)} \Bigr{)} \tag{15}\]  
where \(\eta^{(n)}\) is step size in the \(n\)th iteration. Much research was conducted to find an appropriate \(\eta^{(n)}\) in a path-based UE solution procedure. [PERSON] uses predetermined step size to solve the SUE problem. This method keeps step size constant across a large number of successive iterations [32]. The method of successive averages (MSA) proposed by [PERSON] is widely used in SUE solving [42]. However, the slow convergence rate is a disadvantage of the predetermined method and MSA. In order to improve the convergence performance, [PERSON] developed a method of successive weighted averages (MSWA) in which later intermediate solution \(g_{k}^{rs(k+1)}\) has linearly increasing weight in each iteration, and further proposed a more efficient self-regulated averaging (SRA) method updating step size flexibly according to consecutive iterations [22]. Table 1 summarizes frequently adopted step size calculating methods.  
Step-by-step solution procedure can be described as follows:  
**Step 0:** Initialization  
Set n = 1. Determine feasible path set for each OD pair and distribute flow evenly over paths. Initial link flow according to path flow and revised incident matrix. Calculate link cost using Equation (11) and path cost by summing the costs of links on each path. Path choosing probability can be obtained through Equation (12).  
**Step 1:** Find decent direction  
Obtain auxiliary solution \(g_{k}^{rs(n)}\) using Equation (14), and calculate \(g_{k}^{rs(n)}-f_{k}^{rs(n)}\).  
**Step 2:** Determine step size  
Choose a step size calculating method and find \(\eta^{(n)}\) according to \(n\).  
**Step 3:** Update  
Set \(f_{k}^{rs(n+1)}=f_{k}^{rs(n)}+\eta^{(n)}\Big{(}g_{k}^{rs(n)}-f_{k}^{rs(n)} \Big{)}\), and update link flow, link cost, path cost, and path choosing probability, respectively.  
**Step 4:** Convergence check  
If MSE = \(\frac{1}{N_{k}}\sum_{rs}\sum_{k}\left(f_{k}^{rs(n)}-f_{k}^{rs(n-1)}\right)^{2}\leq r\), then stop. Otherwise, \(n=n+1\) and go to step 1. Where \(N_{k}\) is the number of feasible paths in network, \(r\) is a predetermined small positive value.