## 2 Related Work
### The Design of Simulation Approaches for Railway Network Disturbance Events
Within the railway network, malicious attackers might target highly connected nodes (such as major transportation hubs or dispatch centers) for assault as the paralysis of these nodes would inflict the most substantial damage to the entire network. Natural disasters tend to occur randomly and can be regarded as random attacks on the network, influencing randomly selected nodes or edges. For instance, floods might render certain sections of the railway unusable, which is analogous to the effect of randomly selecting nodes or edges for attack. Facility and equipment failures typically impact individual edges, such as railway lines, within the network. This situation parallels the edge-based attack strategy in complex networks, where the removal of edges leads to a decline in connectivity. Fluctuations in passenger and freight traffic could potentially cause overloading of certain critical channels within the railway network. This bears resemblance to the betweenness-based attack strategy in complex networks, which targets nodes or edges that function as \"bridges\" within the network, that is, those critical connection points that control the majority of the path traffic within the network. Consequently, employing complex network attack strategies to simulate railway network disruption events is a viable approach. During the investigation of the resilience of the Chinese railway network, the following assumptions were made regarding the simulation method of railway disruption events to simplify the research:  
1. After attacking any station or line within the railway network, the station/line and all the stations/lines connected to it will immediately become dysfunctional. 2. When implementing deliberate attack strategies, it is assumed that the entire topological structure of the Chinese railway network is fully known. 3. When conducting attacks on stations or lines within the railway network, no consideration is given to associated costs, and continuous attacks can be performed without limitations. The simulation method of railway network disruption events is depicted in Figure 4. To provide more procedural clarity of the simulation methods, we present the detailed algorithms for disturbance simulation and network recovery in Algorithms 1 and 2. ```
Function SIMULATE_DISTURBANCE(G, disturbance_type, n): G' \(\leftarrow\) G.copy() // Create a copy of the network if disturbance_type == \"external_attack_initial_degree\": Calculate degree for all nodes Sort nodes in descending order of degree Remove top n high-degree nodes and their associated edges else if disturbance_type == \"external_attack_recalculated_degree\": for i from 1 to n: Recalculate degree for all nodes in current network Remove the highest degree node and its associated edges else if disturbance_type == \"technical_failure_edge_random\": Randomly select n edges and remove them else if disturbance_type == \"flow_fluctuation_betweenness\": Calculate betweenness centrality for all nodes Sort nodes in descending order of betweenness Remove top n high-betweenness nodes and their associated edges else if disturbance_type == \"natural_disaster_node_random\": Randomly select n nodes and remove them and their associated edges // Cascade failure simulation Initialize load for each node Vi(t) = B(i) // Using betweenness centrality as initial load Initialize capacity for each node Ci = (1 + \(\sigma\)) * Vi(t) // \(\sigma\) is capacity enhancement coefficient, set to 0.1 changes \(\leftarrow\) True while changes == True:
```  
**Algorithm 1** Disturbance Simulation Algorithm Pseudocode. Figure 4: Simulation methods for railway network disturbance events. ```
\(\text{changes}\leftarrow\text{False}\) for each node u in G': if current_load(u) > capacity(u): \(\text{Redistribute excess load to neighboring nodes}\) \(\text{changes}\leftarrow\text{True}\) return G'
```  
**Algorithm 2** Network Recovery Strategy Algorithm Pseudocode.