# Determining the Optimal Positions of Infill Balise Groups for ERTMS/ETCS Level 1 Applications
## 2 Materials and Methods  
### Algorithm  
This section covers the fundamentals of our algorithm. Information on the implementation in Python is given in Section 2.2. The aim is to develop a fast, easy-to-use algorithm to calculate the optimal positions of infill balise groups in ETCS level 1 on a microscopic level. Track and train characteristics are to be factored in and shall be easily customizable by the user. The calculation is based on the additional runtime a train endures when the following block section is not free and available, and it therefore needs to apply its brakes. We do not consider scenarios where the train comes to a complete standstill. As updating the MA is only possible at the discrete locations of infill balise groups, their positions highly influence the knock-on effects of such a scenario. The driving dynamics of the train(s) involved play an important role; therefore, braking and acceleration performance must be appropriately modelled to obtain robust results. Each calculation focuses on a single train and optimizes the infill balise groups for only this specific train. Additional calculations necessary to find a global optimum of the infill balise group locations when dealing with different kinds of trains with differing driving dynamics and therefore differing optima must--for now--be performed outside the algorithm presented here. A high-level flowchart of the fundamental algorithm is presented in Figure 1.  
The KPI the algorithm optimizes for is the weighted additional runtime \(t_{run,add,weighted}\) of a single train. The method of weighting the runtimes is described in Section 2.1.4. The additional runtime \(t_{run,add}\) is defined as the difference in runtime between a train passing unhindered at the maximum allowed speed without any braking, leading to the shortest runtime possible on the segment in question \(t_{run,unhindered}\), and the runtime when applying the brakes and--after receiving an updated MA at one of the discrete locations of an infill balise group--accelerating to the maximum allowed speed \(t_{run,hindered}\):  
\[t_{run,add}=t_{run,hindered}-t_{run,unhindered}. \tag{1}\]  
By minimizing the additional runtime, we roughly approximate the effect this has on the headway time between two trains and therefore the practical capacity of a line. Infrastructure wise, we consider an ETCS system where the placement of infill balise groups is highly flexible. We therefore do not need to adhere to the positioning of fixed lineside signals. Also, we do not consider restrictions resulting from big metal masses, etc., which limit the positions where balises can be positioned. However, as the algorithm is designed in a way to respect certain restrictions, an iterative approach for most of the realistic scenarios can be used without alterations of its core needed. As the minimal working scenario, the infrastructure consists of a main signal balise group at the EOA and one balise group serving infill information. The latter must be placed farther from the  
Figure 1: High-level flowchart of the algorithm to determine the optimal positions of the infill balise groups. EOA than the IP of the train modelled. This complies with the principle of enabling the train to have an unhindered journey if the next block section is free and available. Up to two additional infill balise groups can be placed between the EOA and the farthest infill balise group. This leads to up to three infill balise groups ahead of the EOA in addition to the main signal balise group at the EOA. Both the line speed and the track gradient are constant over the area covered by the algorithm. The EOA is marked by a harmonized ETCS marker board [40]. An example of this setup is presented in Figure 2.  
As part of the initial plausibility checks, the algorithm examines whether the farthest infill balise group satisfies the requirement of being placed farther from the EOA than the IP and then optimizes the locations of the other, additional infill balise group(s).