A Mathematical Model for Creating Temperature-Optimal ATP Tour Calendar

Abstract

This paper presents an integer linear programming (ILP) model designed to optimize the calendar of the ATP Tour, one of the world’s premier professional sports circuits. The traditional annual tennis calendar routinely forces elite athletes to compete under increasingly hostile and volatile climate conditions due to fixed historical scheduling. To address this, we develop a data-driven optimization framework that systematically realigns tournament weeks and locations with optimal localized weather conditions, thereby maximizing player safety and preserving peak athletic performance. The proposed ILP model features 59 functional constraints that utilize advanced mathematical programming techniques to capture the complex operational rules, surface continuity requirements, and geographical constraints of the actual tour. The objective function minimizes the average temperature deviation from an ideal 75˚F baseline for outdoor play. Computational results demonstrate that the mathematically optimal schedule reduces the average seasonal temperature deviation from 5.81˚F to just 3.61˚F, while restricting the number of tournaments played in extreme environments (outside the 65˚F - 85˚F comfort range) from nine down to three. Furthermore, the model successfully resolves historic climate vulnerabilities for prominent legs of the tour, establishing highly favorable conditions for the Australian Open, the North American summer swing, and the Asian swing.

Share and Cite:

Melkonian, V. (2026) A Mathematical Model for Creating Temperature-Optimal ATP Tour Calendar. <i>American Journal of Operations Research</i>, <b>16</b>, 171-220. doi: <a href='https://doi.org/10.4236/ajor.2026.165009' target='_blank' onclick='SetNum(154263)'>10.4236/ajor.2026.165009</a>.

1. Introduction

1.1. Research Context and Problem Motivation

The Association of Tennis Professionals (ATP) Tour [1] is one of the most prominent and widely followed global sports properties, attracting a linear and streaming broadcast audience of nearly one billion viewers annually. The economic impact of the tour is equally significant; many ATP tournaments draw hundreds of thousands of spectators and generate hundreds of millions of dollars in localized infrastructure investments and broadcast revenue. Despite this massive commercial and cultural success, the structural design of the traditional annual calendar forces elite athletes to compete under increasingly hostile and volatile climate conditions. Because tournament locations and weeks are locked into fixed historical blocks, the tour routinely intersects with peak summer heatwaves across multiple continents.

This rigid scheduling poses severe risks to player health, performance, and the overall spectator experience. Extreme heat and stifling humidity frequently lead to acute cramping, heat exhaustion, and mid-match retirements [2]. For instance, during the 2025 North American summer swing, players faced grueling conditions; the Washington D.C. Open saw ambient temperatures soar to 37˚C (98˚F) with a heat index feeling like 43˚C (109˚F), forcing top players to take extensive medical timeouts. Weeks later, the blistering heat at the Cincinnati Masters led to an unusual spike in acute fatigue and player withdrawals [3]. Afterward, during the fall tournaments in Shanghai and Wuhan, thick nighttime humidity created sauna-like conditions that made it incredibly difficult for players to perform at their best [4]. Even the sport’s premier events are not immune: the Australian Open in Melbourne regularly triggers its Extreme Heat Policy, forcing organizers to suspend outdoor play or close stadium roofs when ambient temperatures breach 42˚C (108˚F).

Beyond the immediate hazards to athletes, these extreme conditions fundamentally detract from the live fan experience. Spectators sitting in uncovered stands for hours face significant risk of heat-related illness, with incidents of fainting and medical interventions becoming a regular occurrence during peak summer sessions. This paper addresses these systematic scheduling flaws by introducing a data-driven optimization framework.

1.2. Modeling Framework and Methodology

Our primary objective is to propose a restructured ATP Tour calendar that systematically aligns tournament locations with optimal localized weather conditions, thereby maximizing player safety and preserving peak athletic performance. To achieve this, we employ an integer linear programming (ILP) approach. ILP is a highly suitable framework for this problem, as the intricate operational rules of a professional sports tour can be effectively translated into logical linear constraints, while the objective function can directly optimize for climatic conditions.

The model incorporates a wide array of scheduling parameters from the actual ATP Tour to ensure the generated calendars are both realistic and operationally viable. These features include weekly tournament capacity limits, surface and regional continuity to minimize player travel fatigue, the strict placement of Grand Slams and their associated lead-up events, and the scheduling of specific tournament pairs in consecutive weeks (such as back-to-back Masters 1000 events). Using advanced mathematical programming techniques, these real-world requirements are formulated into a comprehensive model consisting of 59 linear constraints. Ultimately, the objective function minimizes the average temperature deviation from a predefined “perfect” playing baseline, ensuring that outdoor tournaments are consistently played under the best possible weather conditions.

1.3. Computational Performance and Key Findings

The optimization model was implemented using the AMPL modeling language [5] and executed on the NEOS Server utilizing the Gurobi ILP solver [6]. To assess the schedule’s sensitivity to timing, we evaluated the model across a range of potential season start dates, testing variations from January 1 to January 28. While the actual ATP Tour historically begins on the Monday closest to January 1, our mathematically optimal solution delays the season start to January 23.

This optimized configuration yields substantial climatic advantages over the actual ATP Tour calendar. Our schedule achieves an average temperature deviation of just 3.61˚F from the ideal 75˚F baseline, compared to a much higher 5.81˚F deviation in the status quo calendar. Furthermore, the optimized schedule restricts the number of tournaments played outside the comfortable range (65˚F - 85˚F) to just three events, down from nine in the actual tour. Similarly, it reduces the number of outlying tournaments in the close-to-ideal range (70˚F - 80˚F) from 26 down to 14.

On an individual tournament level, these structural adjustments resolve several persistent climate challenges. Our schedule shifts the Australian Open to March, securing a near-perfect playing climate of 70˚F - 75˚F, completely avoiding the peak summer heatwaves of January. The Asian swing tournaments are scheduled in the spring immediately following the Australian Open, capitalizing on geographic proximity and shared time zones while lowering playing temperatures to a comfortable 66˚F - 74˚F. The North American summer hardcourt swing is delayed deeper into the fall, minimizing player and spectator exposure to severe mid-summer heat and humidity.

For all tested datasets, the model converged to an optimal solution within a few minutes. Given the scope and complexity of designing a global, year-long sports calendar, this rapid execution time demonstrates that our approach is highly time-efficient and computationally viable for practical scheduling applications.

1.4. Related Work

The application of mathematical programming and optimization techniques to the scheduling of sporting events has been studied extensively over the last several decades. Comprehensive overviews and surveys tracking the evolution of these methodology-driven frameworks are provided by Dinitz et al. [7], Easton et al. [8], Ribeiro [9], and Wright [10]. For a deep dive into the foundational formulations, Kendall et al. [11] and Knust [12] provide exhaustive, annotated bibliographies classifying the vast literature on sports timetabling problems.

Typically, the existing body of sports scheduling literature focuses on league-based formats, such as round-robin or multi-stage tournaments, where the primary objectives center around minimizing total travel distance, maximizing broadcasting revenues, balancing home-and-away patterns, or managing venue availability constraints. In the specific domain of tennis, operations research applications have historically been confined to localized contexts. These include optimizing player pairings for recreational doubles leagues [13], scheduling round robin tennis tournaments under courts and players availability constraints [14], and scheduling umpire crews for professional tennis tournaments [15].

Traditional sports scheduling models normally assume a geographically stable or climate-controlled environment, omitting meteorological factors from their constraint matrices. To the best of our knowledge, this paper represents the first integer linear programming (ILP) framework designed to structure a global, multi-continent professional sports calendar by actively treating localized weather conditions and player thermal comfort as primary optimization constraints.

The remainder of this paper is organized as follows. Section 2 presents our integer linear programming model for constructing a temperature-optimized ATP Tour calendar. Section 3 discusses the computational experiments and details our empirical results. Section 4 explores potential avenues for future research and model extensions. Finally, the AMPL implementation scripts and the complete optimized schedules are provided in Appendix.

2. Model for Constructing a Temperature-Optimized ATP Tour Calendar

In this section, we present an optimization model to design a tournament calendar for the ATP Tour. The objective function minimizes the average deviation of tournament temperatures from an ideal playing climate, while the constraints incorporate all essential ATP scheduling considerations.

The remainder of this section is organized as follows. Subsection 2.1 specifies the model’s input data in the form of sets and parameters. Subsection 2.2 defines the decision variables, and Subsection 2.3 gives the objective function. Finally, Subsection 2.4 presents the mathematical constraints. Because the model contains 59 constraints—many of which require extensive formulation and arguments to prove their validity—this final subsection constitutes the most theoretical and substantial portion of both this section and the paper as a whole.

2.1. Input Data

The model input data are specified in the form of sets and parameters. Because of the large amount of input data, we group them into three categories based on their specific operational objectives: Tournament data, Calendar data, and Temperature data, which are presented in Sections 2.1.1-2.1.3, respectively.

2.1.1. Tournament Data

We define different types of tournaments as separate sets.

Let GS, M, F, T500, T250, and DC be the sets of Grand Slam, Masters 1000, ATP Finals, ATP 500, ATP 250, and Davis Cup tournaments correspondingly.

Let T be the set of all tournaments: T = GS ∪ M ∪ F ∪ T500 ∪ T250 ∪ DC.

For each t ∈ T, let surface[t] be a parameter indicating the surface on which tournament t is played. It is a symbolic parameter (not numerical) that takes the following values: ‘Hard’, ‘Indoor_Hard’, ‘Clay’, ‘Grass’, ‘Various’. Surface ‘Various’ is assigned to Davis Cup tournaments since the surface is determined by host countries and thus could be any of the other surfaces.

For each t ∈ T, let region[t] be a parameter indicating the geographic region in which tournament t is played. It is a symbolic parameter that takes the following values: ‘Europe’, ‘Americas’, ‘Asia’, ‘Australia’, ‘Multi_city’.

ATP tournaments are played in one or two weeks. To indicate that, we define the following parameter.

For each t ∈ T, let 2weeks[t] be a binary parameter that equals 1 if tournament t is played in two weeks, and 0 if it is played in one week.

For our objective function, we need a parameter n_tw that counts the number of tournament-week combinations that are played in outdoors and therefore are affected by outdoor temperatures. It is computed by the following formula:

n_tw =

sum{t in T: surface[t] ≠ ‘Indoor_Hard’ and surface[t] ≠ ‘Various’ and 2weeks[t] = 0} 1

+

sum{t in T: surface[t] ≠ ‘Indoor_Hard’ and surface[t] ≠ ‘Various’ and 2weeks[t] = 1} 2

Note that we do not count the tournaments with surfaces ‘Indoor_Hard’ and ‘Various’. Also, if a tournament is played in two weeks, then it has two tournament-week combinations and thus contributes 2 to n_tw.

2.1.2. Calendar Data

Let D := 1..365 be the set of 365 (or 366 in leap years) days of a year.

For each d ∈ D, let date[d] be a symbolic parameter indicating the actual date corresponding to day d. For example, date[1]=‘1-Jan’.

Let last_w be the number of weeks that ATP tournaments are played in a calendar year. In the current ATP format, last_w = 47.

Let W: = 1..last_w be the set of weeks in ATP calendar.

Let fds be the first day of a season of ATP Tour. Note that, although the ATP Tour calendar typically begins on the Monday closest to January 1, we conduct our experiments using different starting dates in January in order to identify schedules that are as favorable as possible in terms of temperature.

For each w ∈ W, let fdw[w] be the first day of week w. If fds is the first day of a season, then fdw[w] can be computed as follows: fdw[w] = fds + 7 * (w − 1).

2.1.3. Temperature Data

Let perfect_temp be a perfect temperature for playing tennis.

Let min_temp and max_temp be lower and upper bounds on the temperatures allowed to play any ATP tournament.

Let GS_min_temp and GS_max_temp be lower and upper bounds on the temperatures allowed to play Grand Slam tournaments. It is recommended that GS_min_temp > min_temp and GS_max_temp < max_temp, thus requiring that the most important tournaments, Grand Slam, are played in closer to optimal conditions when compared to other tournaments.

For each day d ∈ D and tournament t ∈ T, let avg_daily_high_temp[d, t] be the average daily high temperature of tournament t in day d.

For each t ∈ T and w ∈ W, let avg_temp[t, w] be the average high temperature of tournament t in week w. It can be computed by the following formula:

avg_temp[ t,w ]= ∑ d∈{ 0,⋯,6 } avg_daily_high_temp[ fdw[ w ]+d,t ]/7

2.2. Decision Variables

We have the following set of binary decision variables.

For each t ∈ T and w ∈ W, let assign[t, w] be a binary variable that equals 1 if tournament t is scheduled to be played in week w, and 0 otherwise.

2.3. Objective Function

Our objective function minimizes the average deviation from perfect_temp for the tournaments played in outdoor conditions.

minimize

sum{t in tournaments, w in weeks: surface[t]! = ‘Indoor_Hard’ and surface[t]! = ‘Various’}

| avg_temp[t, w]-perfect_temp | * assign[t, w] / n_tw

The summation is taken over all tournament-week combinations that are not played on the ‘Indoor_Hard’ or ‘Various’ surfaces. The deviation from perfect_temp is determined by the absolute value of the difference between perfect_temp and avg_temp[t, w], where avg_temp[t, w] denotes the average high temperature at the tournament location during week w. This deviation is multiplied by the variable assign[t, w], ensuring that it is included in the summation only if the model schedules tournament t in week w. Finally, the summation is divided by n_tw to obtain the average temperature deviation across all outdoor tournament-week combinations.

2.4. Mathematical Constraints

The primary objective of our constraint framework is to ensure that the optimization model generates an ATP calendar that strictly conforms to the operational realities, logistical boundaries, and traditional features of the real-world professional tennis tour. While formal ATP regulations explicitly protect Grand Slam windows and restrict ATP 250/500 events from competing with ATP Masters 1000 tournaments, the majority of constraints in this paper—such as maximum weekly tournament counts, surface transition continuity, and geographical swing boundaries—represent operational and historical conventions of recent ATP seasons rather than rigid statutory rules. Additionally, we incorporate specialized climate constraints to guarantee that all tournaments are scheduled during safe and reasonable regional weather conditions.

In total, the scheduling model utilizes 59 distinct constraints. To present these conditions in a highly structured manner, we categorize them by their specific operational objectives, detailing each thematic group within its own designated subsection to optimize readability.

We begin by introducing the temperature-related constraints in subsection 2.4.1. The remaining constraints define the mathematical architecture of the ATP Tour structure. Subsections 2.4.2 through 2.4.5 present the general structural constraints, covering variable tournament durations (1-week, 2-week, and overlapping 1.5-week events), weekly tournament density bounds, and seasonal boundary regulations.

Subsections 2.4.6 through 2.4.10 formulate the constraints governing the four Grand Slams and their respective lead-up swings (Grass, US Open Hardcourt, European Clay, and Australian Hardcourt).

From there, subsections 2.4.11 through 2.4.13 address three smaller yet logistically significant regional swings: the South American Clay Tour, the East Asia Hardcourt Tour, and the year-end European Indoor Hardcourt Tour. Finally, subsection 2.4.14 defines the constraints for traditional back-to-back tournament pairings, and subsection 2.4.15 establishes overarching regulations regarding regional and surface continuity.

Each subsection initiates with a conceptual overview of its respective constraint group, followed by the formal mathematical constraints. While self-evident constraints are presented without commentary, we provide rigorous mathematical proofs and validity arguments for the complex, non-trivial logical constraints.

2.4.1. Temperature-Related Constraints

Constraints (C1) and (C2) enforce that outdoor tournaments are not played in excessively cold or excessively hot conditions.

(C1) Minimum and maximum temperatures for all outdoor tournaments.

For any t ∈ T and w ∈ W such that

surface[t] != ‘Indoor_Hard’ and surface[t] != ‘Various’

and (avg_temp[t, w] < min_temp or avg_temp[t, w] > max_temp),

assign[t, w] = 0

This constraint ensures that an outdoor tournament t cannot be scheduled in week w if the average high temperature falls below min_temp or exceeds max_temp. In our dataset, we set min_temp = 58 and max_temp = 95, reflecting the historical temperature extremes of the ATP Tour.

(C2) Minimum and maximum temperatures for Grand Slam tournaments.

For any t ∈ GS and w ∈ W such that

(avg_temp[t, w] < GS_min_temp or avg_temp[t, w] > GS_max_temp),

assign[t, w] = 0

This constraint ensures that a Grand Slam tournament t cannot be scheduled in week w if the average high temperature falls below GS_min_temp or exceeds GS_max_temp. While the standard temperature range of 58 to 95 degrees allows for relatively chilly or hot conditions, Grand Slams demand closer to ideal playing weather. Consequently, our input data tightens these bounds to GS_min_temp = 65 and GS_max_temp = 85.

2.4.2. Tournament Duration Related Constraints

Constraints (C3) - (C5) ensure that one-week tournaments are scheduled for exactly one week, while two-week tournaments are scheduled for two consecutive weeks.

(C3) Exactly one week assigned to one-week tournaments.

For any t ∈ T such that 2weeks[t] = 0,

∑ w∈W  assign[ t,w ]=1

This constraint enforces that, for each one-week tournament t, the variable assign[t, w] takes the value 1 for exactly one week, thereby uniquely determining the tournament’s scheduled week.

(C4) Exactly two weeks assigned to two-week tournaments.

For any t ∈ T such that 2weeks[t] = 1,

∑ w∈W  assign[ t,w ]=2

This constraint enforces that, for each two-week tournament t, the variable assign[t, w] takes the value 1 for exactly two weeks, thereby determining the tournament’s two-week schedule.

(C5) Two consecutive weeks assigned to two-week tournaments.

For any t ∈ T such that 2weeks[t] = 1 and for any w1, w2 ∈ W such that w2 > w1 + 1,

assign[ t, w 1 ]+assign[ t, w 2 ]≤1

This constraint enforces that any two-week tournament t is not assigned to nonconsecutive weeks w1 and w2. Combined with constraint (C4), it follows that the two weeks assigned to tournament t must be consecutive.

2.4.3. Constraints on the Number of Tournaments in Any Given Week

Several provisions regulate the number of tournaments scheduled in any given week. We begin with a summary of these provisions and their corresponding constraint numbers, followed by detailed mathematical formulations and explanations of their implementation.

Constraints (C6) - (C7). No more than three tournaments may be held in any given week. In addition, no more than two ATP 500 tournaments may be scheduled in the same week, as these events are larger in scale than ATP 250 tournaments.

Constraints (C8) - (C9). No other tournaments may be scheduled during the weeks of the major events—Grand Slams, ATP Finals, Davis Cup Finals, and ATP Masters tournaments. The only exceptions are the Canada and Cincinnati Masters, each of which spans 1.5 weeks; their half-weeks are scheduled within the same calendar week.

Constraints (C10) - (C11). During the weeks of Davis Cup Rounds 1 and 2, at most one ATP 250 tournament may be held, and no ATP 500 tournaments are allowed, reflecting the significance of these events.

Constraints (C12) - (C13). At least one ATP 250 or ATP 500 tournament must be scheduled in weeks without Grand Slams, ATP Masters, ATP Finals, or Davis Cup events. Moreover, at least two such tournaments must be scheduled in weeks that are neither occupied by major events nor immediately preceding a Grand Slam. While it is generally desirable to have at least two smaller tournaments in any non-major week, only one tournament may be scheduled in the week before a Grand Slam, as many players use this time for rest and preparation.

(C6) No more than three tournaments per week.

For any week w ∈ W,

∑ t∈T  assign[ t,w ]≤3

(C7) No more than two ATP 500 tournaments per week.

For any week w ∈ W,

∑ t∈T500  assign[ t,w ]≤2

(C8) No other tournaments in the weeks of Grand Slams, ATP Masters (except Canada and Cincinnati), ATP Finals, Davis Cup Finals.

For any w ∈ W,

t1 ∈ GS ∪ M ∪ F ∪ {‘DCfin’} such that t1 ≠ ‘M_Canada’ and t1 ≠ ‘M_Cinci’,

t2 ∈ T such that t2 ≠ t1,

assign[ t 2 ,w ]≤1−assign[ t 1 ,w ]

This constraint operates as follows. If tournament t1 is scheduled for week w, then assign[t1, w] = 1, making the right-hand side 1-assign[t1, w] = 0. The inequality then forces the left-hand side to 0 (assign[t2, w] = 0), preventing tournament t2 from being scheduled in week w.

Note that because the Canada and Cincinnati Masters are each 1.5 weeks long, their overlapping half-weeks are scheduled within the same calendar week. Consequently, constraint (C8) does not apply to them; instead, they are governed by a separate constraint, (C9), detailed below.

(C9) Only Canada (Cincinnati) Masters in the same week with Cincinnati (Canada) Masters.

For any w ∈ W,

t1 ∈ T such that t1 = ‘M_Canada’ or t1 = ‘M_Cinci’,

t2 ∈ T such that t2 ≠ ‘M_Canada’ and t2 ≠ ‘M_Cinci’,

assign[ t 2 ,w ]≤1−assign[ t 1 ,w ]

This constraint works the same way as constraint (C8) above.

(C10) At most one ATP 250 tournament in the weeks of Davis Cup Round 1 and Round 2.

For any w ∈ W,

∑ t∈T250  assign[ t,w ]≤3−2∗( assign[ 'DCround1' ]+assign[ 'DCround2' ] )

This constraint operates as follows. In a week w when either Davis Cup Round 1 or Round 2 is scheduled, the right-hand side reduces to 3 − 2 * 1=1. This forces the left-hand side to be at most 1, ensuring that no more than one ATP 250 tournament can be scheduled during that week.

(C11) No ATP 500 tournaments in the weeks of Davis Cup Round 1 and Round 2.

For any w ∈ W,

∑ t∈T500 assign[ t,w ]≤2−2∗( assign[ 'DCround1' ]+assign[ 'DCround2' ] )

This constraint operates as follows. In a week w when either Davis Cup Round 1 or Round 2 is scheduled, the right-hand side evaluates to 2 – 2 * 1=0. This forces the left-hand side to be at most 0, thereby ensuring that no ATP 500 tournaments are scheduled for that week.

(C12) At least one ATP 250 or ATP 500 tournament in the weeks with no Grand Slams, ATP Masters, ATP Finals, or Davis Cup.

For any w ∈ W,

∑ t∈T250∪T500  assign[ t,w ]≥1− ∑ t∈GS∪M∪F∪DC  assign[ t,w ]

The constraint operates as follows. During a week with no scheduled Grand Slams, ATP Masters, ATP Finals, or Davis Cup events, the sum on the right-hand side equals 0, making the total right-hand side 1 − 0 = 1. Consequently, the inequality requires the sum on the left-hand side to be at least 1, meaning at least one ATP 250 or ATP 500 tournament must be scheduled for that week.

(C13) At least two ATP 250 or ATP 500 tournaments in the weeks that no Grand Slams, ATP Masters, ATP Finals, or Davis Cup are scheduled and that are not just before the Grand Slams.

For any w ∈ W such that w is not the last week of the ATP calendar (w ≠ last_w),

∑ t∈T250∪T500 assign[ t,w ]≥2−2∗( ∑ t∈GS∪M∪F∪DC  assign[ t,w ]+ ∑ t∈GS  assign[ t,w+1 ] )

The constraint operates as follows. During a week with no scheduled Grand Slams, ATP Masters, ATP Finals, or Davis Cup events (making the first summation on the right-hand side 0), and no Grand Slam scheduled for the following week (making the second summation 0), the right-hand side simplifies to 2 − 2 * 0 = 2. Consequently, the left-hand side summation is forced to be at least 2, requiring that at least two ATP 250 or ATP 500 tournaments be scheduled for that week. Note that if either summation on the right-hand side is at least 1, the right-hand side becomes 0 or less, leaving the left-hand side unconstrained.

2.4.4. Constraints on the Tournaments at the Start and End of the Season

We begin with a general discussion of the regulations and provisions governing tournaments at the start and end of the season. The corresponding mathematical constraints are presented immediately following.

Constraint (C14): No major tournaments are scheduled during the first two weeks of the season. Because players are still regaining form at the start of a new season, smaller tournaments are held initially to provide warm-up opportunities ahead of larger events.

Constraints (C15) - (C17): Three major tournaments are traditionally played at the end of the season. The Davis Cup Finals are played in the final week of the season, and the ATP Finals are scheduled for the preceding week. The last Masters tournament of the season, the Paris Masters, is played two weeks before the ATP Finals.

Constraints (C18) - (C21): No major tournaments (Grand Slams, Masters, or the Davis Cup) are played in the week between the Paris Masters and the ATP Finals, as both of those events are themselves majors. Additionally, any tournaments scheduled during that week must take place in Europe, with a maximum of two tournaments overall and no more than one ATP 500 tournament.

(C14) No Grand Slams, Masters, Davis Cup in the first two weeks of the season.

For any t ∈ GS ∪ M ∪ DC,

assign[ t,1 ]+assign[ t,2 ]=0

(C15) Davis Cup Finals in the last week of season.

assign[ 'DCfin',last_w ]=1

(C16) ATP Finals in the week before Davis Cup Finals.

assign[ 'ATPfi n ′ ,last_w−1 ]=1

(C17) Paris Masters two weeks before the ATP Finals.

assign[ 'M_Paris',last_w−3 ]=1

(C18) No Grand Slams, Masters, Davis Cup in the week before the ATP Finals.

For any t ∈ GS ∪ M ∪ DC,

assign[ t,last_w−2 ]=0

(C19) No other region tournaments in the week before the ATP Finals.

∑ t∈T:region[ t ]≠'Europe'  assign[ t,last_w−2 ]=0

(C20) No more than two tournaments in the week before the ATP Finals.

∑ t∈ATP250∪ATP500  assign[ t,last_w−2 ]≤2

(C21) No more than one ATP 500 tournament in the week before the ATP Finals.

∑ t∈ATP500  assign[ t,last_w−2 ]≤1

2.4.5. Constraints on Davis Cup Rounds 1 and 2

We first provide a general discussion regarding the timing of Davis Cup Rounds 1 and 2, followed by the corresponding mathematical constraints and explanations of their mechanics.

Constraint (C22): Enforces that Davis Cup Rounds 1 and 2 cannot be scheduled in the same week.

Constraint (C23): Dictates that Davis Cup Rounds 1 and 2 are traditionally scheduled in the weeks immediately following Grand Slam tournaments.

Constraints (C24) - (C25): Specify that Davis Cup Round 1 is played immediately after the first Grand Slam of the season, while Davis Cup Round 2 is played immediately after the final Grand Slam of the season.

(C22) Davis Cup Rounds 1 and 2 not in the same week.

For any week w ∈ W,

assign[ 'DCround1',w ]+assign[ 'DCround2',w ]≤1

(C23) Davis Cup Rounds 1 and 2 in the weeks after Grand Slams.

For any w ∈ W such that w ≠ 1 and any t1 ∈ DC such that t1 ≠ ‘DCfin’,

assign[ t 1 ,w ]≤ ∑ t 2 ∈GS  assign[ t 2 ,w−1 ]

The constraint operates as follows. If no Grand Slams are scheduled for week w − 1, the summation on the right-hand side equals 0. This forces the decision variable on the left-hand side to also equal 0, ensuring that neither Davis Cup Round 1 nor Round 2 can be scheduled in week w. In other words, a Davis Cup round cannot take place in week w unless a Grand Slam occurred in the preceding week w − 1. Consequently, Davis Cup Rounds 1 and 2 can only be scheduled in the weeks immediately following a Grand Slam.

(C24) No Grand Slams after Davis Cup Round 2.

For any w ∈ W such that w1 ≠ last_w,

∑ t∈GS   ∑ w 2 ∈W: w 2 > w 1  assign[ t, w 2 ]≤8∗( 1−assign[ 'DCround2', w 1 ] )

The constraint operates as follows. If Davis Cup Round 2 is scheduled for week w1, that is assign[‘DCround2’, w1] = 1, the right-hand side of the constraint becomes 0. This forces the summation on the left-hand side to also equal 0, implying that no Grand Slam tournaments can be scheduled in any week w2 such that w2 > w1. Conversely, if Davis Cup Round 2 is not scheduled in week w1 (assign[‘DCround2’, w1] = 0), the summation on the left-hand side is bounded by 8. This restricts the total number of Grand Slam tournament weeks after week w1 to at most 8, which is naturally non-binding since four Grand Slams require no more than 8 tournament weeks in total.

(C25) One Grand Slam before Davis Cup Round 1.

For any w ∈ W such that w1 ≠ 1,

∑ t∈GS   ∑ w 2 ∈W: w 2 < w 1  assign[ t, w 2 ]≤8−6∗assign[ 'DCround1', w 1 ]

The constraint operates as follows: if Davis Cup Round 1 is scheduled for week w1 (i.e., assign[‘DCround1’, w1] = 1), the right-hand side of the constraint evaluates to 8 − 6 * 1 = 2. This forces the left-hand side summation to be at most 2, which permits at most one Grand Slam to be scheduled before Davis Cup Round 1. In conjunction with Constraint (C23), this implies that exactly one Grand Slam must occur in the tour calendar prior to Davis Cup Round 1. Conversely, if Davis Cup Round 1 is not scheduled in week w1 (assign[‘DCround1’, w1] = 0), the left-hand side summation is bounded above by 8. This restricts the total number of Grand Slam tournament weeks before week w1 to at most 8, which is naturally non-binding since the four Grand Slams require no more than 8 weeks in total.

2.4.6. Constraints on the Tournaments around the Grand Slams

We begin with a general discussion regarding the tournaments scheduled around Grand Slam events, followed by the corresponding mathematical constraints and explanations of their mechanics.

Constraints (C26) - (C28): Many players typically take the week preceding a Grand Slam off for rest and optimal preparation. Consequently, tournament density is restricted during these weeks. These constraints specify that in the week before a Grand Slam, there can be a maximum of two tournaments overall, at most one ATP 500 tournament, and no Masters, Davis Cup, ATP Finals, or other Grand Slam events.

Constraints (C29) - (C30): We additionally require that no Masters, Davis Cup, ATP Finals, or other Grand Slams be scheduled either two weeks before or in the week immediately following a Grand Slam.

Constraints (C31) - (C32): Traditionally, all tournaments scheduled one or two weeks prior to a Grand Slam must take place in the same region and on the same surface as that Grand Slam to facilitate better preparation for the major event.

(C26) No Masters, Davis Cup, ATP Finals, other Grand Slams in a week before a Grand Slam.

For any w ∈ W such that w ≠ last_w,

t1 ∈ GS,

t2 ∈ M ∪ F ∪ DC ∪ GS such that t2 ≠ t1,

assign[ t 2 ,w ]≤1−assign[ t 1 ,w+1 ]

(C27) No more than two tournaments in a week before a Grand Slam.

For any w ∈ W such that w ≠ last_w,

t1 ∈ GS,

∑ t 2 ∈ATP250∪ATP500  assign[ t 2 ,w ]≤3−assign[ t 1 ,w+1 ]

The constraint operates as follows. If Grand Slam t1 is scheduled for week w + 1 (i.e., assign[t1, w + 1] = 1), the right-hand side of the constraint evaluates to 2. This forces the left-hand side summation to be at most 2, restricting the schedule to a maximum of two ATP 250 or ATP 500 tournaments in the preceding week w. Conversely, if Grand Slam t1 is not scheduled for week w + 1 (assign[t1, w + 1] = 0), the right-hand side becomes 3, allowing a maximum of three tournaments in week w, which remains consistent with Constraint (C6).

(C28) No more than one ATP 500 tournament in a week before a Grand Slam.

For any w ∈ W such that w ≠ last_w,

t1 ∈ GS,

∑ t 2 ∈ATP500  assign[ t 2 ,w ]≤2−assign[ t 1 ,w+1 ]

The constraint operates as follows. If Grand Slam t1 is scheduled for week w + 1 (i.e., assign[t1, w + 1] = 1), the right-hand side of the constraint evaluates to 1. This forces the left-hand side summation to be at most 1, restricting the schedule to a maximum of one ATP 500 tournament in the preceding week w. Conversely, if Grand Slam t1 is not scheduled for week w + 1 (assign[t1, w + 1] = 0), the right-hand side becomes 2, allowing a maximum of two ATP 500 tournaments in week w, which remains consistent with Constraint (C7).

(C29) No Davis Cup, ATP Finals, other Grand Slams two weeks before a Grand Slam.

For any w ∈ W such that w > 2,

t1 ∈ GS,

t2 ∈ F ∪ DC ∪ GS such that t2 ≠ t1,

assign[ t 2 ,w−2 ]≤1−assign[ t 1 ,w ]

The constraint operates as follows. If Grand Slam t1 is scheduled for week w (i.e., assign[t1, w] = 1), the right-hand side of the constraint evaluates to 0. This forces the left-hand side summation to also equal 0, thereby prohibiting any Davis Cup, ATP Finals, or other Grand Slam events from being scheduled in week w − 2 (two weeks prior to t1).

(C30) No Masters, ATP 500, ATP Finals, other Grand Slams in a week after a Grand Slam.

For any w ∈ W such that w > 1,

t1 ∈ GS,

t2 ∈ M ∪ F ∪ ATP500 ∪ GS such that t2 ≠ t1,

assign[ t 2 ,w ]≤1−assign[ t 1 ,w−1 ]

The constraint operates as follows. If Grand Slam t1 is scheduled for week w − 1 (i.e., assign[t1, w − 1] = 1), the right-hand side of the constraint evaluates to 0. This forces the left-hand side summation to also equal 0, thereby prohibiting any Masters, ATP Finals, ATP 500, or other Grand Slam events from being scheduled in week w (the week immediately following t1).

(C31) Only same surface tournaments one and two weeks before a Grand Slam or ATP Finals.

For any w ∈ W such that w > 2,

r = 1 or 2

t1 ∈ GS ∪ F,

t2 ∈ T such that surface[t2] ≠ surface[t1],

assign[ t 2 ,max( w−r,1 ) ]≤1−assign[ t 1 ,w ]

The constraint operates as follows: if Grand Slam t1 is scheduled for week w (i.e., assign[t1, w] = 1), the right-hand side of the constraint evaluates to 0. This forces the left-hand side summation to also equal 0, thereby prohibiting any tournament t2 on a different surface from being scheduled in weeks w − 1 or w − 2 (one and two weeks prior to t1).

(C32) Only same region tournaments one and two weeks before a Grand Slam or ATP Finals.

For any w ∈ W such that w > 2,

r = 1 or 2

t1 ∈ GS ∪ F,

t2 ∈ T such that region[t2] ≠ region[t1],

assign[ t 2 ,max( w−r,1 ) ]≤1−assign[ t 1 ,w ]

The constraint operates as follows: if Grand Slam t1 is scheduled for week w (i.e., assign[t1, w] = 1), the right-hand side of the constraint evaluates to 0. This forces the left-hand side summation to also equal 0, thereby prohibiting any tournament t2 located in a different region from being scheduled in weeks w − 1 or w − 2 (one and two weeks prior to t1).

2.4.7. Constraints on European Grass Court Tour

Traditionally, four ATP 250 and two ATP 500 grass-court tournaments are played during the three weeks preceding Wimbledon, the major grass-court event. The grass season begins with two ATP 250 tournaments three weeks prior to Wimbledon, followed by two ATP 500 tournaments the next week, and concludes with two additional ATP 250 tournaments the week immediately before Wimbledon. These scheduling arrangements are enforced by Constraints (C33) - (C35) below.

(C33) ATP 500 tournaments Halle and London two weeks before Wimbledon.

For any w ∈ W such that w > 2 and w ≠ last_w,

assign[ 'Halle500',w−2 ]+assign[ 'London500',w−2 ] ≥2∗( assign[ 'Wimbledon',w ]+assign[ 'Wimbledon',w+1 ]−1 )

The constraint operates as follows. Recall that Wimbledon is a two-week tournament. If it is scheduled for weeks w and w + 1 (i.e., assign[‘Wimbledon’, w] = assign[‘Wimbledon’, w + 1] = 1), the right-hand side of the inequality evaluates to 2 * (1 + 1 − 1) = 2. This forces the left-hand side summation to be at least 2, which can only be satisfied if the binary decision variables assign[‘Halle500’, w − 2] and assign[‘London500’, w − 2] both equal 1. Consequently, both tournaments are forced to be scheduled in week w − 2. Conversely, if either assign[‘Wimbledon’, w] or assign[‘Wimbledon’, w + 1] equals 0, the right-hand side becomes 0 or less, leaving the left-hand side unconstrained.

(C34) Two of four ATP 250 grass tournaments one week before Wimbledon.

For any w ∈ W such that w ≠ 1 and w ≠ last_w,

assign[ 'S_Hert250',w−1 ]+assign[ 'Stuttgart250',w−1 ] + assign[ 'Mallorca250',w−1 ]+assign[ 'Eastbourne250',w−1 ] ≥2∗( assign[ 'Wimbledon',w ]+assign[ 'Wimbledon',w+1 ]−1 )

The constraint operates as follows. If Wimbledon is scheduled for weeks w and w + 1 (i.e., assign[‘Wimbledon’, w] = assign[‘Wimbledon’, w + 1] = 1), the right-hand side of the inequality evaluates to 2 * (1 + 1 − 1) = 2. This forces the left-hand side summation to be at least 2, which implies that at least two of the binary decision variables on the left-hand side must equal 1. Consequently, at least two of the four ATP 250 tournaments are forced to be scheduled in week w − 1. Conversely, if either assign[‘Wimbledon’, w] or assign[‘Wimbledon’, w + 1] equals 0, the right-hand side becomes 0 or less, leaving the left-hand side unconstrained.

(C35) Two of four ATP 250 grass tournaments three weeks before Wimbledon.

For any w ∈ W such that w > 3 and w ≠ last_w,

assign[ 'S_Hert250',w−3 ]+assign[ 'Stuttgart250',w−3 ] + assign[ 'Mallorca250',w−3 ]+assign[ 'Eastbourne250',w−3 ] ≥2∗( assign[ 'Wimbledon',w ]+assign[ 'Wimbledon',w+1 ]−1 )

The argument for this constraint is identical to that of constraint (C34), except that it applies to week w − 3.

2.4.8. Constraints on US Open Hardcourt Tour

The US Open hardcourt season traditionally includes four tournaments played over a five-week period leading up to the US Open. It begins with the DC Open (an ATP 500 tournament) five weeks before the US Open. Next, two Masters tournaments—Canada and Cincinnati—are played over the subsequent three weeks. Because each of these two tournaments spans 1.5 weeks, they overlap during the middle week, where the former ends and the latter begins. Finally, the Winston-Salem Open (an ATP 250 tournament) is the only event played one week before the US Open. These scheduling arrangements are enforced by constraints (C36) - (C38) below. Additional constraints governing the Canada and Cincinnati Masters are provided in Subsection 2.4.14.

(C36) Winston-Salem 250 one week before US Open.

For any w ∈ W such that w > 1 and w ≠ last_w,

assign[ 'WinstonSalem250',w−1 ] ≥assign[ 'USOpen',w ]+assign[ 'USOpen',w+1 ]−1

The constraint operates as follows. Recall that the US Open is a two-week tournament. If it is scheduled for weeks w and w + 1 (i.e., assign[‘USOpen’, w] = assign[‘USOpen’, w + 1] = 1), the right-hand side of the inequality evaluates to 1 + 1 − 1 = 1. This forces the left-hand side to be at least 1, which implies assign[‘WinstonSalem250’, w − 1]=1. Consequently, the Winston-Salem 250 tournament is forced to be scheduled in week w − 1. Conversely, if either assign[‘USOpen’, w] or assign[‘USOpen’, w + 1] equals 0, the right-hand side becomes 0 or less, leaving the left-hand side unconstrained.

(C37) Canada or Cincinnati Masters two weeks before US Open.

For any w ∈ W such that w > 2 and w ≠ last_w,

assign[ 'M_Canada',w−2 ]+assign[ 'M_Cinci',w−2 ] ≥assign[ 'USOpen',w ]+assign[ 'USOpen',w+1 ]−1

The constraint operates as follows. If the US Open is scheduled for weeks w and w + 1 (i.e., assign[‘USOpen’, w] = assign[‘USOpen’, w + 1] = 1), the right-hand side of the inequality evaluates to 1 + 1 − 1 = 1. This forces the left-hand side to be at least 1, which implies that at least one of the binary decision variables assign[‘M_Canada’, w − 2] = 1 or assign[‘M_Cinci’, w − 2] = 1 must equal 1. Consequently, at least one of the Canada and Cincinnati Masters tournaments is forced to be scheduled in week w − 2. Conversely, if either assign[‘USOpen’, w] or assign[‘USOpen’, w + 1] equals 0, the right-hand side becomes 0 or less, leaving the left-hand side unconstrained.

(C38) DC Open 500 one week before Canada or Cincinnati Masters.

For any w ∈ W such that w > 1 and w < last_w − 1,

assign[ 'DC500',w−1 ] ≥assign[ 'M_Canada',w ]+assign[ 'M_Cinci',w ]     +assign[ 'M_Canada',w+1 ]+assign[ 'M_Cinci',w+1 ]     +assign[ 'M_Canada',w+2 ]+assign[ 'M_Cinci',w+2 ]−3

The constraint operates as follows. Recall that the Canada and Cincinnati Masters are two-week tournaments scheduled back-to-back with a one-week overlap. Thus, if both tournaments are scheduled across weeks w, w + 1, w + 2, the first of these two tournaments will begin in week w, and the summation on the right-hand side will evaluate to 4. This forces assign[‘DC500’, w − 1] ≥ 4 − 3 = 1, meaning that the DC Open 500 is forced to be scheduled in week w − 1. Conversely, if any of the required weeks for these two Masters tournaments are not scheduled within weeks w, w + 1, w + 2, the right-hand side becomes 0 or less, leaving the left-hand side unconstrained.

2.4.9. Constraints on European Clay Court Season

All Masters and ATP 500 European clay tournaments are traditionally played within the seven-week period preceding the season’s premier clay-court major, the French Open (though some smaller ATP 250 European clay events may be scheduled after it). The European clay season begins with the Monte-Carlo Masters, which is a one-week tournament. The Barcelona Open (an ATP 500 tournament) is played the week immediately following Monte-Carlo. Next, two two-week Masters tournaments, Madrid and Rome, are played over the subsequent four weeks. Two additional ATP 500 European clay tournaments, Hamburg and Munich, feature more flexible scheduling but must also be completed before the French Open. These scheduling arrangements are enforced by constraints (C39) - (C42) below. Additional constraints governing the Madrid and Rome Masters are provided in Subsection 2.4.14.

(C39) Rome or Madrid Masters two weeks before French Open.

For any w ∈ W such that w > 2 and w ≠ last_w,

assign[ 'M_Rome',w−2 ]+assign[ 'M_Madrid',w−2 ] ≥assign[ 'FrenchOpen',w ]+assign[ 'FrenchOpen',w+1 ]−1

The constraint operates as follows. Recall that the French Open is a two-week tournament. If it is scheduled for weeks w and w + 1 (i.e., assign[‘FrenchOpen’, w] = assign[‘FrenchOpen’, w + 1] = 1), the right-hand side of the inequality evaluates to 1 + 1-1 = 1. This forces the left-hand side to be at least 1, which implies that at least one of the binary decision variables assign[‘M_Rome’, w − 2] or assign[‘M_Madrid’, w − 2] must equal 1. Consequently, at least one of the Rome and Madrid Masters tournaments is forced to be scheduled in week w − 2. Conversely, if either assign[‘FrenchOpen’, w] or assign[‘FrenchOpen’, w + 1] equals 0, the right-hand side becomes 0 or less, leaving the left-hand side unconstrained.

(C40) Monte Carlo Masters two weeks before Rome or Madrid Masters.

For any w ∈ W such that w > 2 and w < last_w − 2,

assign[ 'M_MonteCarlo',w−2 ] ≥assign[ 'M_Rome',w ]+assign[ 'M_Madrid',w ]     +assign[ 'M_Rome',w+1 ]+assign[ 'M_Madrid',w+1 ]     +assign[ 'M_Rome',w+2 ]+assign[ 'M_Madrid',w+2 ]     +assign[ 'M_Rome',w+3 ]+assign[ 'M_Madrid',w+3 ]−3

The constraint operates as follows. Recall that the Rome and Madrid Masters are two-week tournaments scheduled back-to-back. Thus, if these tournaments are scheduled across weeks w, w + 1, w + 2, w + 3, the first of these two tournaments will begin in week w, and the summation on the right-hand side will evaluate to 4. This forces assign[‘M_MonteCarlo’, w − 2] ≥ 4 − 3 = 1, meaning that the Monte-Carlo Masters is forced to be scheduled in week w − 2. Conversely, if any of the required weeks for the Rome and Madrid Masters are not scheduled within weeks w, w + 1, w + 2, and w + 3, the right-hand side becomes 0 or less, leaving the left-hand side unconstrained.

(C41) Barcelona 500 one week after Monte Carlo Masters.

For any w ∈ W such that w ≠ last_w,

assign[ 'Barcelona500',w+1 ]≥assign[ 'M_Montecarlo',w ]

The constraint operates as follows. If the Monte-Carlo Masters is scheduled for week w, the right-hand side of the inequality evaluates to 1. This forces the left-hand side also to be 1, which implies that the Barcelona 500 tournament is forced to be scheduled in week w + 1.

(C42) Other two ATP 500 European clay tournaments should be before French Open.

For any w1 ∈ W such that w1 ≠ last_w,

∑ w 2 ∈W: w 2 > w 1 ( assign[ 'Hamburg500', w 2 ]+assign[ 'Munich500', w 2 ] ) ≤2∗( 1−assign[ 'FrenchOpen', w 1 ] )

The constraint operates as follows. If the French Open is scheduled for week w − 1 (i.e., assign[‘FrenchOpen’, w1] = 1), the right-hand side of the inequality evaluates to 2 * (1 − 1) = 0. This forces the decision variables on the left-hand side, assign[‘Hamburg500’, w2] and assign[‘Munich500’, w2], to equal 0. Consequently, neither Hamburg 500 nor Munich 500 can be scheduled for any week w2 that occurs after week w1. Conversely, if assign[‘FrenchOpen’, w1] = 0, the right-hand side evaluates to 2 * (1 − 0) = 2, leaving the left-hand side variables unconstrained.

2.4.10. Constraints on Australian Hardcourt Tour

There are four ATP 250 tournaments that are traditionally played in the two-week period preceding the Australian Open, one of the hardcourt Grand Slams. Located in Australia, New Zealand, and East Asia, these events serve as crucial warm-up tournaments due to their identical court surface and geographic proximity to Melbourne. Specifically, Hong Kong SAR is scheduled exactly two weeks before the Australian Open because it is situated relatively further from Melbourne than the other three ATP 250 host cities. These scheduling arrangements are enforced by constraints (C43) - (C44) below.

(C43) Hong Kong 250 two weeks before Australian Open.

For any w ∈ W such that w > 2 and w ≠ last_w,

assign[ 'HongKong250',w−2 ] ≥assign[ 'AustralianOpen',w ]+assign[ 'AustralianOpen',w+1 ]−1

The constraint operates as follows. Recall that the Australian Open is a two-week tournament. If it is scheduled for weeks w and w + 1 (i.e., assign[‘AustralianOpen’, w] = 1 and assign[‘AustralianOpen’, w + 1] = 1), the right-hand side of the inequality evaluates to 1 + 1-1 = 1. This forces the left-hand side to be at least 1, which implies assign[‘HongKong250’, w − 2]=1. Consequently, the Hong Kong 250 tournament is forced to be scheduled in week w − 2. Conversely, if either assign[‘AustralianOpen’, w] or assign[‘AustralianOpen’, w + 1] equals 0, the right-hand side becomes 0 or less, leaving the left-hand side unconstrained.

(C44) Other three ATP 250 tournaments one or two weeks before Australian Open.

For any w ∈ W such that w > 2 and w ≠ last_w,

assign[ 'Brisbane250',w−2 ]+assign[ 'Brisbane250',w−1 ] + assign[ 'Auckland250',w−2 ]+assign[ 'Auckland250',w−1 ] + assign[ 'Adelaide250',w−2 ]+assign[ 'Adelaide250',w−1 ] ≥3∗( assign[ 'AustralianOpen',w ]+assign[ 'AustralianOpen',w+1 ]−1 )

The constraint operates as follows. If the Australian Open is scheduled for weeks w and w + 1 (i.e., assign[‘AustralianOpen’, w] = 1 and assign[‘AustralianOpen’, w + 1] = 1), the right-hand side of the inequality evaluates to 3 * (1 + 1 − 1) = 3. This forces the left-hand side summation to be at least 3, which implies that the remaining three warm-up tournaments—Brisbane 250, Adelaide 250, and Auckland 250—must be distributed across weeks w − 1 and w − 2. Conversely, if either assign[‘AustralianOpen’, w] or assign[‘AustralianOpen’, w + 1]equals 0, the right-hand side becomes 0 or less, leaving the left-hand side unconstrained.

2.4.11. Constraints on South American Clay Court Tour

There are three South American clay-court tournaments: Rio de Janeiro (an ATP 500 tournament), Buenos Aires (Argentina 250), and Santiago (Chile 250). These three tournaments must be scheduled across three consecutive weeks, with exactly one tournament allocated per week. Furthermore, Rio 500 cannot be scheduled before the other two events; traditionally, a higher-level ATP 500 tournament is preceded by ATP 250-level tournaments on the same surface within the same region. These scheduling arrangements are enforced by constraints (C45) - (C46) below.

(C45) Argentina 250 and Chile 250 within two weeks of Rio 500.

For any w ∈ W such that w > 2 and w ≠ last_w,

assign[ 'Argentina250',w−2 ]+assign[ 'Chile250',w−2 ] + assign[ 'Argentina250',w−1 ]+assign[ 'Chile250',w−1 ] + assign[ 'Argentina250',w+1 ]+assign[ 'Chile250',w+1 ] ≥2∗assign[ 'Rio500',w ]

The constraint operates as follows. If Rio 500 is scheduled for week w, the right-hand side of the inequality evaluates to 2, which forces the left-hand side summation to be at least 2. This summation can only equal 2 if Argentina 250 and Chile 250 are scheduled within weeks w − 2, w − 1, or w + 1. Because both tournaments cannot simultaneously occupy week w + 1, at least one of them must be scheduled before Rio 500 in either week w − 1 or w − 2. This condition ensures that Rio 500 is not scheduled prior to both of the other two tournaments.

Note that constraint (C45) alone does not guarantee that the three tournaments are scheduled in three consecutive weeks. For instance, if Rio 500 is scheduled for week w, Argentina 250 and Chile 250 could potentially be placed in weeks w − 2 and w + 1, spanning a three-week gap. Constraint (C46) is introduced to prevent this type of configuration.

(C46) Chile 250 within two weeks of Argentina 250.

For any w ∈ W such that w > 2 and w < last_w − 1,

assign[ 'Chile250',w−2 ]+assign[ 'Chile250',w−1 ] + assign[ 'Chile250',w+1 ]+assign[ 'Chile250',w+2 ] ≥assign[ 'Argentina250',w ]

This constraint ensures that Argentina 250 and Chile 250 cannot be scheduled more than two weeks apart. Consequently, constraints (C45) and (C46) work in tandem to guarantee that the three tournaments are ultimately scheduled across three consecutive weeks.

2.4.12. Constraints on East Asia Hardcourt Tour

There are five East Asian hardcourt tournaments scheduled over a consecutive three-week period (noting that Hong Kong 250 is distinct, as it is traditionally played as a warm-up tournament for the Australian Open). No other tournaments are scheduled during these weeks. The premier event, the Shanghai Masters, is played in the third week of this swing. It is preceded by two ATP 500 tournaments, Beijing and Tokyo, which are played in the second week. Meanwhile, two ATP 250 tournaments, Chengdu 250 and Hangzhou 250, are played in the first week. These scheduling arrangements are enforced by constraints (C47) - (C48) below.

(C47) No other region tournaments one and two weeks before Shanghai Masters.

For any w ∈ W such that w ≠ last_w,

∑ t∈T:region[ t ]≠'Asia' ( assign[ t,w−2 ]+assign[ t,w−1 ] ) ≤6∗( 1−assign[ 'M_Shanghai',w ] )

The constraint operates as follows. If the Shanghai Masters is scheduled for week w, the right-hand side of the inequality evaluates to 0. This forces the summation on the left-hand side to equal 0 as well, ensuring that no tournaments from any region other than “Asia” can be scheduled in weeks w − 2 and w − 1. Conversely, if assign[‘M_Shanghai’, w] = 0, the right-hand side scales to a maximum limit, meaning the left-hand side summation is bounded only by the general capacity of 6 tournaments across those two weeks. Since the global schedule already dictates that no more than 3 tournaments can be scheduled per week, this upper bound remains trivially satisfied and leaves the variables unconstrained.

(C48) Tokyo 500 and Beijing 500 in the week before Shanghai Masters.

For any w ∈ W such that w > 1 and w < last_w,

assign[ 'Tokyo500',w−1 ]+assign[ 'Beijing500',w−1 ] ≥2∗( assign[ 'M_Shanghai',w ]+assign[ 'M_Shanghai',w+1 ]−1 )

The constraint operates as follows. Recall that the Shanghai Masters is a two-week tournament. If it is scheduled for weeks w and w + 1 (i.e., assign[‘M_Shanghai’’, w] = assign[‘M_Shanghai’, w + 1] = 1), the right-hand side of the inequality evaluates to 2 * (1 + 1 − 1) = 2. This forces the left-hand side to be at least 2, requiring both binary variables on the left-hand side to equal 1. Consequently, both Tokyo 500 and Beijing 500 are forced to be scheduled in week w − 1. Conversely, if either assign[‘M_Shanghai’, w] or assign[‘M_Shanghai’, w + 1] equals 0, the right-hand side becomes 0 or less, leaving the left-hand side unconstrained.

Constraints (C13), (C47), and (C48) work in tandem to imply that Chengdu 250 and Hangzhou 250 must be scheduled exactly two weeks before the Shanghai Masters. Constraint (C13) dictates that there must be at least two tournaments scheduled two weeks prior to the Shanghai Masters. Because (C48) establishes that Tokyo 500 and Beijing 500 occupy the week immediately preceding Shanghai, and (C47) bars tournaments from any other region from being scheduled one or two weeks before it, constraint (C13) can only be satisfied if the remaining two East Asian tournaments—Chengdu 250 and Hangzhou 250—are placed two weeks before the Shanghai Masters.

2.4.13. Constraints on Year-End European Hardcourt Tour

Recall that the final Masters tournament of the season is the Paris Masters, which is scheduled for week last_w − 3 (enforced by constraint (C17)) and is held indoors to accommodate the late autumn schedule. Several other European indoor hardcourt tournaments are played prior to the Paris Masters, serving as warm-up events featuring the same surface and regional climate.

To structure this late-season swing, at least two indoor hardcourt European ATP 250 tournaments must be scheduled two weeks before the Paris Masters. In the week immediately preceding Paris, two specific ATP 500 tournaments—Basel and Vienna—are scheduled, and no other tournaments are permitted to be held during that week. Additionally, to avoid grueling travel times for players, the Almaty 250 tournament cannot be scheduled in the week immediately following the Paris Masters. These scheduling arrangements are enforced by constraints (C49) - (C52) below.

(C49) Basel 500 and Vienna 500 in the week before Paris Masters.

For any w ∈ W such that w > 1,

assign[ 'Basel500',w−1 ]+assign[ 'Vienna500',w−1 ] ≥2∗assign[ 'M_Paris',w ]

The constraint operates as follows. If the Paris Masters is scheduled for week w (i.e., assign[‘M_Paris’, w] = 1), the right-hand side of the inequality evaluates to 2 * 1 = 2. This forces the left-hand side to be at least 2, requiring both binary decision variables on the left-hand side to equal 1. Consequently, both Basel 500 and Vienna 500 are forced to be scheduled in week w − 1. Conversely, if assign[‘M_Paris’, w] = 0, the right-hand side evaluates to 0, leaving the left-hand side unconstrained.

(C50) No other tournaments in the week before Paris Masters.

For any w ∈ W such that w > 1,

∑ t∈T  assign[ t,w−1 ]≤3−assign[ 'M_Paris',w ]

The constraint operates as follows. If the Paris Masters is scheduled for week w (i.e., assign[‘M_Paris’, w] = 1), the right-hand side of the inequality evaluates to 3 − 1 = 2. This restricts the left-hand side summation to a maximum of 2, meaning that no more than two tournaments total can be held in week w − 1. Because constraint (C49) already mandates that both Basel 500 and Vienna 500 must occupy week w − 1, this restriction effectively blocks any other tournament from being scheduled during that same week.

Conversely, if assign[‘M_Paris’, w] = 0, the right-hand side evaluates to 3, dictating that no more than 3 tournaments can take place in week w − 1. Since the global capacity constraint (C6) already establishes a universal weekly limit of 3 tournaments, this bound is always satisfied and leaves the variables unconstrained.

(C51) At least two indoor hard European ATP 250 tournaments two weeks before Paris Masters.

For any w ∈ W such that w > 2,

∑ t∈T250:surface[ t ]='Indoor_hard' and region[ t ]='Europe'  assign[ t,w−2 ]≥2∗assign[ 'M_Paris',w ]

The constraint operates as follows. If the Paris Masters is scheduled for week w (i.e., assign[‘M_Paris’, w] = 1), the right-hand side of the inequality evaluates to 2 * 1 = 2. This forces the left-hand side to be at least 2, which mathematically mandates that at least two indoor hardcourt European ATP 250 tournaments must be scheduled in week w − 2.

(C52) Almaty 250 not in the week after Paris Masters.

assign[ 'Almaty250',last_w−2 ]=0

2.4.14. Constraints on Back-to-Back Tournaments

There are several prominent pairs of tournaments that are traditionally played back-to-back, though the exact sequence within each pair—which tournament takes place first—can vary depending on season adjustments. These pairs include the Indian Wells (California) and Miami Masters, the Madrid and Rome Masters, the Doha (Qatar) and Dubai ATP 500 tournaments, and the Canada and Cincinnati Masters. Because these pairs differ in tournament duration, their scheduling logic is handled by distinct sets of constraints:

  • Two-Week Tournaments (California/Miami and Madrid/Rome): The events in the first two pairs each span two weeks. Their back-to-back structures are symmetric and are governed by similar formulations in constraints (C53) - (C54).

  • One-Week Tournaments (Qatar/Dubai): The Doha and Dubai tournaments are standard one-week events. Their sequential scheduling is maintained by constraint (C55).

  • 1.5-Week Overlapping Tournaments (Canada/Cincinnati): The Canada and Cincinnati Masters uniquely operate as 1.5-week tournaments. They share an overlapping week during which the concluding half of the first tournament and the opening half of the second tournament are played concurrently. This specialized sequence is enforced by constraints (C56) and (C57).

(C53) California and Miami Masters should be back-to-back.

For any w ∈ W such that w > 2 and w < last_w − 1,

assign[ 'M_Miami',w−1 ]+assign[ 'M_Miami',w+2 ] ≥assign[ 'M_Cali',w ]+assign[ 'M_Cali',w+1 ]−1

The constraint operates as follows. Recall that both the California (Indian Wells) and Miami Masters are two-week tournaments. If the California Masters is scheduled for weeks w and w + 1, the right-hand side of the constraint evaluates to 1 + 1 − 1 = 1. This forces the left-hand side summation to be at least 1. The left-hand side can only meet or exceed this threshold if the Miami Masters is scheduled to begin in either week w − 2 or week w + 2.

  • If Miami begins in week w − 2, it occupies weeks w − 2 and w − 1, concluding just as California begins.

  • If Miami begins in week w + 2, it occupies weeks w + 2 and w + 3, commencing immediately after California concludes.

In either scenario, the two premier events are guaranteed to be scheduled back-to-back. Conversely, if the California Masters is scheduled in at most one of weeks w and w + 1, the right-hand side evaluates to 0 or less, leaving the variables on the left-hand side unconstrained.

(C54) Rome and Madrid Masters should be back-to-back.

For any w ∈ W such that w > 2 and w < last_w − 1,

assign[ 'M_Rome',w−1 ]+assign[ 'M_Rome',w+2 ] ≥assign[ 'M_Madrid',w ]+assign[ 'M_Madrid',w+1 ]−1

Recall that both Rome and Madrid Masters are two-week tournaments. Thus, this constraint operates exactly like constraint (C53) for the California and Miami Masters.

(C55) Dubai and Qatar tournaments should be back-to-back.

For any w ∈ W such that w > 1 and w < last_w,

assign[ 'Qatar500',w−1 ]+assign[ 'Qatar500',w+1 ]≥assign[ 'Dubai500',w ]

The constraint operates as follows. If Dubai 500 is scheduled for week w, the right-hand side of the inequality evaluates to 1. This forces the left-hand side summation to be at least 1, which dictates that Qatar 250 must be scheduled in either week w − 1 or week w + 1. This condition guarantees that the two Middle Eastern tournaments are played in consecutive, back-to-back weeks. Conversely, if Dubai 500 is not scheduled in week w, the right-hand side evaluates to 0. This imposes no restrictions on the left-hand side, leaving the scheduling variables unconstrained.

(C56) Cincinnati and Canada Masters must have exactly one week of overlap #1.

For any w ∈ W such that w < last_w,

assign[ 'M_Canada',w ]+assign[ 'M_Canada',w+1 ] ≥1−( 2−assign[ 'M_Cinci',w ]+assign[ 'M_Cinci',w+1 ] )

(C57) Cincinnati and Canada Masters must have exactly one week of overlap #2.

For any w ∈ W such that w < last_w,

assign[ 'M_Canada',w ]+assign[ 'M_Canada',w+1 ] ≤1+( 2−assign[ 'M_Cinci',w ]+assign[ 'M_Cinci',w+1 ] )

Constraints (C56) and (C57) together provide that Cincinnati and Canada Masters have exactly one week of overlap. Recall that both Cincinnati and Canada Masters are 1.5-week tournaments, meaning each event spans across two consecutive weeks on the calendar. If Cincinnati Masters is scheduled for weeks w and w + 1, then the right-hand side of constraint (C56) is 1 − (2 − 1 − 1) = 1 and the right-hand side of constraint (C56) is 1 + (2 − 1 − 1) = 1. Together they imply that the left-hand side, which is the same in both constraints, is exactly 1. Then Canada Masters is scheduled in exactly one of the weeks w and w + 1. If it is scheduled in week w, then the other week for 1.5-week Canada Masters will be w − 1; thus, week w serves as the overlapping period between the Canada and Cincinnati Masters. If Canada Masters is scheduled in week w + 1, then the other week for 1.5-week Canada Masters will be w + 2; thus, week w + 1 will serve as the overlapping period between the Canada and Cincinnati masters. Note also that if Cincinnati Masters is scheduled in at most one of weeks w and w + 1, then the right-hand side of constraint (C56) is 0 or less and the right-hand side of constraint (C57) is 2 or more; thus, in that case nothing is forced on the left-hand side of either constraint.

2.4.15. Constraints on Surface and Region Continuity

It is generally recommended that tournament surfaces not be changed too frequently from week to week, as players require time to adjust to different playing conditions. Similarly, tournament regions should remain relatively stable to minimize excessive travel. These considerations are largely addressed in Subsections 2.4.7 - 2.4.13, particularly in the scheduling of tournaments leading up to each Grand Slam, as well as during the South American clay, East Asian hardcourt, and year-end hardcourt tours.

However, we introduce additional constraints to further reinforce these principles. Constraint (C58) ensures that no tournament is isolated by surface: if a tournament is scheduled in a given week, at least one tournament on the same surface must be held either in the preceding or following week. In addition, Constraint (C59) requires that a tournament on the same surface and in the same region be scheduled prior to each Masters event. This provides players with better preparation and warm-up opportunities, as Masters tournaments are the next major events following the Grand Slams.

(C58) No surface isolated tournaments.

For any t ∈ T\DC (any tournament except Davis Cup),

any w ∈ W such that w > first_w and w < last_w,

∑ s∈T:surface[ s ]=surface[ t ] ( assign[ s,w−1 ]+assign[ s,w+1 ] )≥assign[ t,w ]

The constraint operates as follows. If tournament t is played in week w, then the left-hand side of the constraint is at least 1. Then at least one tournament s, which is played on the same surface as t, is played either in week w − 1 or week w + 1, that is just before or after tournament t.

(C59) At least one tournament on same surface and region before each Masters tournament.

For any t ∈ M, and any w ∈ W such that w > first_w,

∑ s∈T:surface[ s ]=surface[ t ] and region[ s ]=region[ t ]  assign[ s,w−1 ]≥assign[ t,w ]

The constraint operates as follows. If a Masters tournament t is played in week w, then the left-hand side of the constraint is at least 1. Then, at least one tournament s, which is played on the same surface and region as s, is scheduled in the immediately preceding week w − 1.

The AMPL script of the full model is given in Appendix 1.

3. Computational Results

In this section, we present the computational results for the model described in Section 2. First, Subsection 3.1 analyzes the solution process, including the software environment, data collection, running time, and sensitivity analysis across different season start dates. Subsection 3.2 then provides a comparative analysis between our optimal schedules and the actual 2025 ATP Tour calendar. This comparison features a detailed, week-by-week schedule breakdown with a specific emphasis on temperature variations, followed by a summary of the key structural divergences and temporal advantages offered by our proposed schedules.

3.1. Discussion and Analysis of the Solution Process

The model was implemented and tested using the AMPL optimization software, and executed on the NEOS Server using the Gurobi ILP solver.

Tournament data in our experiments

We ran the model for the tournaments played in 2025 calendar year. The full set of tournaments is given in Appendix 2. Note that the list of tournaments stays quite stable year to year, though some minor changes are possible.

Temperature data in our experiments

For our computational experiments, the ideal daily high temperature (perfect_temp) is set to 75˚F. Because ATP tournament sessions typically begin at 11:00 AM and extend into the evening, a daily high of 75˚F generally implies an optimal playing range of 70˚F to 75˚F.

The absolute lower and upper bounds for allowable tournament temperatures (min_temp and max_temp) are set to 58˚F and 95˚F, respectively. Based on our historical dataset, this matches the actual temperature extremes experienced during the 2025 ATP Tour.

The temperature bounds for Grand Slam tournaments (GS_min_temp and GS_max_temp) are restricted to a stricter range of 65˚F and 85˚F. As the premier events on the calendar, Grand Slams are prioritized to take place under conditions closer to the ideal temperature baseline.

Finally, the average daily high temperatures (avg_daily_high_temp[d, t]) for a given day d and tournament t were aggregated from various online meteorological databases (1991-2020 climatological normals). The sources for the major regional tournament swings are listed below:

  • North America: Sourced from the NOAA/NCEI Daily Climate Normals.

  • Europe: Compiled from national meteorological offices, including the UK Met Office, Météo-France, Deutscher Wetterdienst (Germany), KNMI (Netherlands), and AEMET (Spain).

  • Australia and New Zealand: Sourced from the Australian Bureau of Meteorology (BOM) and the National Institute of Water and Atmospheric Research (NIWA, New Zealand).

  • Asia: Compiled from official national repositories, including the China Meteorological Administration (CMA), the Japan Meteorological Agency (JMA), and NOAA international climate summaries.

Where daily observations were unavailable, daily values were interpolated from official monthly mean high temperatures.

Calendar data—running the model for different start dates for the season

We evaluated the model across a range of potential start dates for the season, testing first-day variations from January 1 to January 28. Historically, the actual ATP Tour begins on the Monday closest to January 1. Shifting the start date to January 28 pushes the final day of the season to December 22. We restricted our analysis to dates on or before January 28 to ensure the tournament calendar does not overlap with the year-end holiday season observed in many host countries.

Our best solution in terms of objective function value begins the season on January 23. This schedule yields an average temperature deviation of 3.61˚F from the ideal 75˚F, compared to a deviation of 5.81˚F for the actual ATP Tour. Moving forward, we refer to this optimal solution as Schedule23 and the baseline actual schedule as ActualATP. Several other start dates yield objective function values remarkably close to our optimal solution. While these alternatives are structurally similar to Schedule23, a key distinction emerged regarding the timing of the Asian swing. Unlike ActualATP, which places the Asian Tour in the fall, Schedule23 shifts it to the spring. However, some of our near-optimal solutions retain the Asian Tour in the fall. As a notable alternative to Schedule23, we also examine the solution beginning on January 20 (called Schedule20), which maintains a fall Asian swing, is generally more consistent with ActualATP and achieves a competitive objective function value of 3.68˚F.

Both optimized calendars Schedule23 and Schedule20 were explicitly verified post-solution to ensure complete compliance with all model constraints. Specifically, both schedules strictly satisfy all operational requirements, including exact event durations, weekly capacity limits, surface continuity and mandatory sequence conditions, and special multi-week structural constraints such as the Canada-Cincinnati overlap condition.

Running time

For all tested datasets, the model generated an optimal solution within a few minutes. Given the scope and complexity of designing an annual ATP Tour calendar, this execution time demonstrates that the model is highly time-efficient and computationally viable for practical scheduling applications.

3.2. Comparative Analysis of Our Best Two Solutions and the ActualATP

In this subsection, we present a comparative description and analysis of Schedule23, Schedule20, and ActualATP. The complete calendars for these three schedules are provided in Appendix 2.

First, Subsection 3.2.1 provides a comparative summary table of the three schedules. This table evaluates the schedules across general statistics, specific calendar dates, and temperature ranges for the Grand Slams, outdoor Masters 1000 events, and other key tournaments. Following the table, Subsection 3.2.2 delivers a detailed, week-by-week descriptive and comparative analysis of each schedule. Finally, Subsection 3.2.3 summarizes the primary structural divergences and advantages of our optimal schedules relative to ActualATP.

3.2.1. Comparative Summary Table

Table 1 summarizes the key structural divergences and comparative metrics across the three schedules. The primary temporal advantages of our optimized schedules over ActualATP are captured in the first three metrics.

Table 1. Comparative summary table.

Category/metric

Actual ATP

Schedule20

Schedule23

General Statistics

Average deviation from ideal temperature

5.81˚F

3.68˚F

3.61˚F

No. of tournament-weeks outside 65˚F - 85˚F

9

3

3

No. of tournament-weeks outside 70˚F - 80˚F

26

14

14

Season beginning and end dates

Jan. 1-Nov. 25

Jan. 20-Dec. 14

Jan. 23-Dec. 17

Grand Slams

Australian Open

late January, 80˚F

late March, 72˚F - 74˚F

late March, 72˚F - 74˚F

French Open

early June, 70˚F - 72˚F

late June, 73˚F - 75˚F

early July, 75˚F - 77˚F

Wimbledon

early July, 72˚F - 74˚F

late July, 73˚F - 74˚F

mid-August 72˚F - 74˚F

US Open

early Sept., 80˚F - 81˚F

late Sept., 73˚F - 76˚F

early Oct., 66˚F - 69˚F

Outdoor Masters 1000

Indian Wells (Calif.)

early March, 74˚F - 75˚F

late Feb., 71˚F - 72˚F

late Feb., 71˚F - 73˚F

Miami

late March, 80˚F

early Feb., 77˚F

early Feb., 77˚F

Monte Carlo

early April, 63˚F

late April, 67˚F

mid-May, 71˚F

Madrid

late April, 66˚F - 68˚F

early June, 77˚F - 80˚F

early June, 79˚F - 81˚F

Rome

mid-May, 73˚F - 75˚F

late May, 74˚F - 76˚F

late June, 82˚F - 83˚F

Canada

early Aug., 80˚F - 81˚F

early Sept., 76˚F - 77˚F

mid-Sept., 73˚F - 75˚F

Cincinnati

mid-Aug., 85˚F - 86˚F

late Aug., 84˚F - 85˚F

late Sept., 77˚F - 80˚F

Shanghai

early Oct., 74˚F - 76˚F

late Oct., 68˚F - 70˚F

late April, 72˚F - 74˚F

Other Important Swings

Asia Tour

Sept. 17-Oct. 14, upper 70s, low 80s

Oct. 6-Nov. 2, upper 60s, low 70s

April 10-May 7, upper 60s, low 70s

South American Tour

Feb. 12-March 4, 82, 87.5˚F, 83.5˚F

March 31-April 20, 74.7˚F, 75.3˚F, 82.7˚F

Oct. 16-Nov. 5, 75.6, 82.7˚F, 75.1˚F

Our central optimization metric, the average deviation from the ideal temperature, is reduced to 3.61˚F and 3.68˚F for our two schedules, respectively, compared to 5.81˚F for ActualATP—a significant improvement. Furthermore, our optimized schedules restrict the number of tournaments played outside the comfortable range (65˚F - 85˚F) to just three events each, whereas ActualATP features nine. Similarly, for the close-to-ideal range (70˚F - 80˚F), our schedules reduce the number of outlying tournaments to 14 each, down from 26 in the actual calendar.

3.2.2. Detailed Chronological and Comparative Analysis: Our Optimized Schedules vs. ActualATP

Our two optimized calendars shift the traditional competitive timeline: Schedule20 spans from January 20 to December 14, while Schedule23 runs from January 23 to December 17. In contrast, the baseline ActualATP calendar begins on the Monday closest to January 1 and concludes on November 25. Consequently, our proposed models position the off-season during late December and most of January. This shift aligns perfectly with periods of extreme seasonal weather, specifically the peak winter months in major Northern Hemisphere host nations and the peak summer heat in Southern Hemisphere countries. ActualATP only partially addresses these climate challenges by continuing to stage high-exposure tournaments during the first half of January.

Both our schedules open weeks 1 and 2 with hardcourt tournaments in locations such as Dubai, Qatar, Mexico, and Florida. Ambient temperatures in these regions average in the 70s˚F during this period (with the exception of the ATP 500 event in Acapulco). From a scheduling standpoint, it is highly rational to start the season in regions that offer comfortable playing conditions in January but experience oppressive, prohibitive heat later in the year.

During weeks 3 through 6, both our schedules feature the Miami and Indian Wells Masters 1000 events, in that order. Under this framework, the Miami Masters takes place in the first half of February, benefiting from mild temperatures of 76˚F - 77˚F, while the Indian Wells Masters occurs in late February amid optimal temperatures in the low 70s˚F. By comparison, ActualATP stages the Miami Masters in late March, where temperatures hover around 80˚F—a threshold compounded by Miami’s high humidity.

Structurally, the tournaments assigned to weeks 1 and 2 serve as excellent preparation for these two Masters events due to shared hardcourt conditions and geographic proximity. The obvious geographical exceptions are the ATP 500 events in Dubai and Doha (Qatar). However, these Middle Eastern events are also scheduled immediately prior to the North American hardcourt swing in the actual ATP Tour. The justification for this placement is that they offer identical playing surfaces and favorable winter conditions, filling a scheduling void given the lack of concurrent hardcourt tournaments closer to the Middle East.

During weeks 7 through 10, both our schedules introduce the season’s first Grand Slam, the Australian Open, preceded by traditional warm-up events in Australia, New Zealand, and East Asia. Our models transition this entire swing to March, whereas ActualATP stages it in January during the peak of the Australian summer. This temporal shift yields dramatic temperature improvements. Schedule20 and Schedule23 anchor the Australian Open in a near-perfect climate of 70˚F - 75˚F, contrasting sharply with the 80˚F baseline average—and frequent extreme heatwaves—observed in ActualATP. Furthermore, the lead-up tournaments benefit from much more temperate conditions in our framework, splitting evenly between the low 70s˚F and low 80s˚F. In comparison, the baseline calendar forces players into grueling conditions, with two warm-up events averaging 85˚F or above, while the ATP 250 event in Hong Kong registers at a chilly 67˚F.

Both optimized schedules allocate week 11 to the first round of the Davis Cup, which runs concurrently with select low-tier events. However, beginning in week 12, the two calendars exhibit a major structural divergence.

Schedule20 initiates the clay-court season in week 11, placing the South American clay swing in weeks 11 through 13. Concurrently, the model schedules the Americas’ other spring clay event, the ATP 250 in Houston, alongside Africa’s solitary tour stop, the ATP 250 in Morocco, during week 12. Under Schedule20, ambient temperatures across these events comfortably average in the mid-70s˚F, with the Rio Open (ATP 500) serving as the lone warmer exception in the low 80s˚F. By comparison, ActualATP subjects players to widespread mid-80s˚F heat across all three South American events, with Rio pushing into the oppressive upper 80s˚F. To conclude this block, Schedule20 integrates a pair of European indoor hardcourt tournaments during weeks 13 and 14.

Schedule23 positions the Asian swing in weeks 12 through 15. Scheduling these tournaments immediately following the Australian Open is highly logical from a logistical perspective, as China and Japan offer close geographic proximity and minimal time zone changes relative to Australia. Furthermore, Schedule23 yields substantial climate benefits: temperatures across the Asian swing are constrained to a comfortable range of 66˚F - 74˚F, whereas ActualATP stages these events under much warmer, frequently humid conditions ranging from 74˚F - 82˚F.

Schedule20 and Schedule23 initiate the European clay-court season in weeks 14 and 16, respectively. Both models preserve a tournament sequence highly similar to ActualATP. The swing begins with the Hamburg Open (ATP 500) alongside a concurrent ATP 250 event, followed by the Monte Carlo Masters, and then the Barcelona Open (ATP 500) paired with another ATP 250 tournament. At this point, the two models differ slightly in their sequencing: Schedule20 places the Rome Masters before the Madrid Masters, whereas Schedule23 reverses this order. Following the Masters block, both schedules feature the Munich Open (now an ATP 500 event) and a simultaneous ATP 250 event, culminating in the marquee clay tournament of the year, the French Open. Additionally, Schedule23 integrates a final ATP 250 clay tournament immediately after Roland Garros. Climatically, our schedules favor slightly warmer conditions; notably, the French Open averages in the mid-70s˚F in our models, compared to the cooler, low-70s˚F baseline observed in ActualATP.

Aligning with the structure of ActualATP, both Schedule20 and Schedule23 position the grass-court swing immediately following the European clay season. This block incorporates three weeks of preparatory warm-up tournaments leading up to the premier grass-court event, Wimbledon. The grass season occupies weeks 24 through 28 in Schedule20 and weeks 26 through 30 in Schedule23. Virtually all grass tournaments maintain optimal conditions under our models, averaging in the low 70s˚F in Schedule20 and the mid-70s˚F in Schedule23. The solitary warmer outlier is the Mallorca Open (ATP 250), which pushes into the 80s˚F. Ultimately, from a climate perspective, the temperature profiles of our optimized grass calendars mirror the baseline conditions observed in ActualATP.

For the two weeks following the grass-court swing, both Schedule20 and Schedule23 incorporate a brief sequence of European clay tournaments before transitioning the tour to North America, maintaining structural consistency with ActualATP. Crucially, both optimized calendars integrate a European ATP 250 indoor hardcourt event during the first week of this block, followed by the Dallas Open (ATP 500) the subsequent week.

Utilizing indoor hardcourt events as a transition to the North American outdoor swing is highly logical from a player-welfare perspective; it provides a necessary competitive warm-up while avoiding the extreme mid-summer outdoor heat of North America. In contrast, ActualATP schedules an outdoor hardcourt event in Los Cabos, Mexico, immediately following Wimbledon, exposing players to temperatures in the 90s˚F. Our models eliminate this severe temperature deviation by transposing Los Cabos to January, where it serves as an ideal early-season warm-up for the Indian Wells and Miami Masters amid comfortable temperatures in the upper 70s˚F.

Next, both Schedule20 and Schedule23 feature the North American outdoor hardcourt swing. The block includes the Washington Open (ATP 500), the Canada and Cincinnati Masters 1000 events, and the Winston-Salem Open (ATP 250), culminating in the season’s final Grand Slam, the US Open in New York. While the selection and sequence of these tournaments mirror ActualATP, their temporal placement is shifted significantly later in the year. The swing runs from weeks 30 to 36 (August 11 to September 28) in Schedule20, and weeks 32 to 38 (August 28 to October 12) in Schedule23, whereas ActualATP compresses this block between late July and early September.

Delaying the swing effectively shields players from peak North American summer heat. Under Schedule20, the Washington and Cincinnati events still experience mid-to-upper 80s˚F conditions—yielding only a modest improvement over ActualATP—but the remaining tournaments, including the US Open, drop into the comfortable 70s˚F. Schedule23 achieves an even more pronounced temperature reduction, locking in all preparatory warm-up tournaments (except the Washington Open) in the 70s˚F and positioning the US Open in crisp, late-autumn temperatures in the upper 60s˚F.

Mirroring the structure of ActualATP, both Schedule20 and Schedule23 allocate the week immediately following the US Open to the second round of the Davis Cup. Beyond this point, however, a major divergence occurs between the two optimized calendars.

Following the Davis Cup week, Schedule20 integrates the Asian swing during weeks 38 through 41, mirroring the seasonal progression of ActualATP. However, while the baseline tour subjects players to high humidity and temperatures in the upper 70s˚F and low 80s˚F, Schedule20 stabilizes the regional climate within a comfortable upper-60s˚F to low-70s˚F range.

Because Schedule23 allocates the Asian swing to the spring, its autumn trajectory shifts entirely. Immediately following the Davis Cup, Schedule23 initiates the year-end indoor hardcourt season while simultaneously accommodating the South American clay swing (weeks 39 - 41). This late-season clay alternative yields significant geographical and environmental benefits, while expanding playing opportunities for clay-court specialists. Under this configuration, the tournaments in Argentina and Chile operate in the mid-70s˚F (down from the low 80s˚F in ActualATP), while the Rio Open (ATP 500) drops to the more tolerable lower 80s˚F from its traditional upper-80s˚F threshold. Schedule23 also integrates two parallel clay events during this window: the Houston ATP 250 in week 41 (mid-70s˚F) and the Morocco ATP 250 in week 42 (low 70s˚F) as the tour transitions back to Europe.

The year-end indoor hardcourt season is structurally similar in all three calendars. Since these tournaments are played indoors under controlled environments, external weather conditions are negligible.

3.2.3. Summary of Key Divergences and Advantages of Our Optimized Schedules over ActualATP

  • Optimized Off-Season Alignment: Our schedules consolidate the off-season across late December and the majority of January. This structural shift avoids scheduling events during severe Northern Hemisphere winters or intense Southern Hemisphere summer peaks. In contrast, ActualATP only partially fulfills this climate isolation by running competitive tournaments throughout the first half of January.

  • Strategic January Scheduling: Both optimized models utilize weeks 1 and 2 for hardcourt events in mild winter regions—specifically Dubai, Qatar, Mexico, and Florida—where temperatures comfortably average in the 70s˚F (except the ATP 500 in Acapulco). This naturally prioritizes regions that offer excellent early-season climates but experience prohibitive heat later in the year.

  • Reordered Masters & Climate Mitigation: Our formulations position the Miami and Indian Wells Masters 1000 events in February as the season’s opening marquee tournaments, whereas ActualATP leads with a Grand Slam. This reallocation captures a cooler, low-to-mid 70s˚F window for the North American swing, bypassing the high heat and humidity that plague Miami’s traditional late-March slot.

  • Thermal Optimization of the Australian Open: Both models delay the Australian Open until March, securing a near-perfect climate of 70˚F - 75˚F. This resolves a major player-welfare issue in ActualATP, which stages the tournament in January during the height of the grueling Australian summer.

  • Logistical & Climatic Restructuring of the Asian Swing: Schedule23 groups the Asian swing in the spring immediately following the Australian Open, capitalizing on strict geographic proximity and shared time zones while lowering playing temperatures to a comfortable 66˚F - 74˚F. Alternatively, Schedule20 preserves a Fall timeline for Asia but shifts it later into the Fall than ActualATP, successfully capturing a cooler, less humid environmental envelope.

  • Fall Postponement of the North American Swing: Both optimized calendars delay the North American summer hardcourt swing deeper into the Fall block. This chronological shift minimizes player exposure to the severe mid-summer heatwaves typical of the status quo calendar.

  • Stabilization of the South American Clay Swing: Our schedules successfully cap temperatures across the South American clay events in the mid-70s˚F (Argentina and Chile) and low 80s˚F (Rio Open), yielding an appreciable improvement over ActualATP, where these events routinely push into the low 80s˚F and upper 80s˚F, respectively.

4. Summary and Future Directions

In this paper, we introduced an integer linear programming (ILP) formulation designed to restructure the annual ATP Tour calendar by treating localized meteorological conditions as primary optimization criteria. The generated optimized calendars demonstrate substantial advantages over the actual ATP Tour calendar. Our optimal schedule reduces the average seasonal temperature deviation from the ideal 75˚F baseline from 5.81˚F to just 3.61˚F, while restricting the number of tournaments played in challenging environments (outside the 65˚F - 85˚F comfort range) from nine down to three. Furthermore, the model successfully resolves historic climate vulnerabilities for prominent stops on the tour, establishing highly favorable conditions for the Australian Open, the North American summer swing, and the Asian swing.

While the current model provides a robust and mathematically validated calendar, several promising avenues exist for future research. We group these potential developments into two main categories.

4.1. Variations and Extensions of the ATP Tour Model

  • Multi-Factor Environmental Indices: While average ambient temperature serves as a highly reliable primary proxy for climate comfort, future iterations of the model could incorporate multi-factor metrics. Integrating a Heat Index or Wet-Bulb Globe Temperature (WBGT) would allow the formulation to account for the compounding effects of relative humidity, direct solar radiation, wind speed, and regional precipitation/monsoon patterns.

  • Adaptability to Policy and Rule Changes: The logical constraints engineered in our model reflect the current administrative and structural rules of the ATP Tour. Because the constraint matrix is modular, it can easily be modified or updated to remain valid if the ATP introduces new operational mandates, such as changes to mandatory Master 1000 structures or the introduction of new tournament tiers.

  • Objective Function Alternatives: The core mathematical framework developed in this paper can serve as a highly versatile prototype for alternative scheduling goals. Because our 59 linear constraints successfully define the structural bounds of a valid ATP calendar, future researchers could completely replace our temperature-based objective function with a different metric, such as minimizing total global travel distance, while leaving the underlying constraint matrix virtually unchanged.

4.2. Structural Adaptations to Other Professional Sports

  • The WTA Tour: Due to the near-identical global, multi-continent structure of professional women’s tennis, our formulation can be directly adapted to generate a climate-optimized WTA Tour calendar. This would address identical heat-stress concerns faced by female athletes during overlapping summer and autumn swings.

  • The PGA Tour: Professional golf is highly climate-dependent, featuring a year-round outdoor schedule vulnerable to temperature extremes, heavy precipitation, and high winds. Our ILP framework could serve as a foundational blueprint to optimize the PGA Tour’s chronological sequence of courses.

  • Broad Outdoor Sports Competitions: Any professional league that plays outdoors across different geographic and climate zones can use the main features of this model to schedule around extreme weather.

  • Appendix

    Appendix 1. AMPL Script for Our Model

    /* SETS AND PARAMETERS */

    /* tournament data */

    set grand_slams;

    set ATPfinals;

    set masters;

    set 500tourn;

    set 250tourn;

    set DavisCup;

    set tournaments :=

    grand_slams union ATPfinals union masters union 500tourn union 250tourn union DavisCup;

    param two_weeks{tournaments} binary default 0;

    # is 1 if it is a two-week tournament

    param surface{tournaments} symbolic;

    param region{tournaments} symbolic;

    param number_of_outdoor_tourn_weeks :=

    sum{t in tournaments: surface[t]!='Indoor_Hard' and surface[t]!='various' and two_weeks[t]==0} 1

    +

    sum{t in tournaments: surface[t]!='Indoor_Hard' and surface[t]!='various' and two_weeks[t]==1} 2

    ;

    /* calendar data */

    set day := 1..365;

    param date {day} symbolic;

    param n_of_weeks:=47;

    set weeks:= 1..n_of_weeks ordered;

    param first_day_of_season;

    param first_day_of_week{w in weeks} := first_day_of_season + 7 * (w-1);

    /* temperature data */

    param perfect_temp;

    param min_temp;

    param GS_min_temp;

    param max_temp;

    param GS_max_temp;

    param avg_daily_high_temp{day,tournaments};

    param avg_temp{t in tournaments, w in weeks} :=

    sum{d in 0..6} avg_daily_high_temp[first_day_of_week[w]+d,t]/7;

    # average temperature of the location of tournament t in week w

    /* VARIABLES */

    var assign{tournaments, weeks} binary;

    /* OBJECTIVE FUNCTION */

    minimize avg_difference_from_perfect_temperature:

    sum{t in tournaments,w in weeks: surface[t]!='Indoor_Hard' and surface[t]!='various'}

    abs(avg_temp[t,w]-perfect_temp)*assign[t,w] / number_of_outdoor_tourn_weeks;

    /* CONSTRAINTS */

    /* TEMPERATURE RELATED CONSTRAINTS */

    s.t. min_and_max_temperatures{t in tournaments,w in weeks:

    surface[t]!='Indoor_Hard' and surface[t]!='various'

    and (avg_temp[t,w] < min_temp or avg_temp[t,w] > max_temp)}:

    assign[t,w] = 0;

    s.t. GS_min_and_max_temperatures{t in grand_slams,w in weeks:

    avg_temp[t,w] < GS_min_temp or avg_temp[t,w] > GS_max_temp}:

    assign[t,w] = 0;

    /* TOURNAMENT DURATION RELATED CONSTRAINTS */

    /* number of weeks assigned to for one-week and two-week tournaments */

    s.t. one_week_tournaments{t in tournaments: two_weeks[t]==0}:

    sum{w in weeks}assign[t,w]=1;

    s.t. two_week_tournaments{t in tournaments: two_weeks[t]==1}:

    sum{w in weeks}assign[t,w]=2;

    /* two-week tournaments should be in two consecutive weeks */

    s.t. two_consecutive_weeks

    {t in tournaments, w1 in weeks, w2 in weeks:

    two_weeks[t]==1 and ord(w2) > ord(w1)+1 }:

    assign[t,w1] + assign[t,w2] <= 1;

    /* CONSTRAINTS ON NUMBER OF TOURNAMENTS IN A WEEK */

    /* no more than three tournaments in any given week */

    s.t. no_more_than_three_tournaments_per_week{w in weeks}:

    sum{t in tournaments}assign[t,w] <= 3;

    /* no more than two 500 tournaments in any given week */

    s.t. no_more_than_two_500tourn_per_week{w in weeks}:

    sum{t in 500tourn}assign[t,w] <= 2;

    /* no other tournaments in the weeks of grand slams, ATPfinals, masters (except Cinci and Canada), Davis Cup finals */

    s.t. no_other_tourn_with_masters_and_GS_and_DCfin_and_ATOfinals

    {t1 in tournaments, t2 in tournaments, w in weeks:

    t2 != t1 and (t1 in grand_slams or t1 in ATPfinals or t1 in masters or t1=='DCfin' )

    and t1 != 'M3_Canada' and t1 != 'M4_Cinci'}:

    assign[t2,w] <= 1 - assign[t1,w];

    s.t. only_Cinci_and_Canada_the_same_week

    {w in weeks, t1 in tournaments, t2 in tournaments:

    (t1=='M3_Canada' or t1=='M4_Cinci') and (t2!='M3_Canada' and t2!='M4_Cinci')}:

    assign[t2,w] <= 1 - assign[t1,w];

    /* at most one 250 tournament with Davis Cup round 1 and round 2 */

    s.t. at_most_one_250_with_DCround1and2{w in weeks}:

    sum{t in 250tourn} assign[t,w] <= 3 - 2 * (assign['DCround1',w]+assign['DCround2',w]);

    /* no 500 tournament with Davis Cup round 1 and round 2 */

    s.t. no_500_with_DCround1and2{w in weeks}:

    sum{t in 500tourn} assign[t,w] <= 2 - 2 * (assign['DCround1',w]+assign['DCround2',w]);

    /* at least one tournament in weeks with no GS, Masters, ATP finals, Davis Cup */

    s.t. At_least_one_250_and_500_tournament_in_other_weeks{w in weeks}:

    sum{t in 500tourn union 250tourn} assign[t,w] >=

    1 - sum{t in grand_slams union ATPfinals union masters union DavisCup} assign[t,w];

    /* at least two tournaments in weeks with no GS, Masters, ATP finals, Davis Cup

    that also are not just before grand slams */

    s.t. At_least_two_250_and_500_tournaments_in_other_weeks_and_not_before_GS{w in weeks: w!=last(weeks)}:

    sum{t in 500tourn union 250tourn} assign[t,w] >=

    2 - 2 * ( sum{t in grand_slams union ATPfinals union masters union DavisCup} assign[t,w]

    + sum{t in grand_slams} assign[t,w+1] );

    /* CONSTRAINTS ON THE TOURNAMENTS AT THE START AND END OF THE SEASON */

    /* no GS, masters, Davis Cup in the first two weeks of the calendar */

    s.t. No_GS_masters_DavisCup_first_two_weeks

    {t in tournaments:

    t in grand_slams or t in masters or t in DavisCup}:

    assign[t,first(weeks)] + assign[t,first(weeks)+1] = 0;

    /* ATP finals and Davis Cup finals in the last two weeks of the calendar */

    s.t. Davis_Cup_Finals:

    assign['DCfin', last(weeks)] = 1;

    s.t. ATP_Finals:

    assign['ATPfin', last(weeks)-1] = 1;

    /* Paris Masters 2 weeks before the ATP finals */

    s.t. Paris_Masters:

    assign['M9_Paris', last(weeks)-3] = 1;

    /* tournaments before the ATP finals */

    s.t. No_masters_DavisCup_GS_before_ATPfinals

    {t in tournaments:

    t in grand_slams or t in masters or t in DavisCup}:

    assign[t,last(weeks)-2] = 0;

    s.t. No_other_region_tournament_before_ATPfinals:

    sum{t in tournaments: region[t]!='Europe'}assign[t,last(weeks)-2]=0;

    s.t. No_more_than_two_tournaments_before_ATPfinals

    {t1 in ATPfinals, w in weeks: w!=last(weeks)}:

    sum{t2 in 250tourn union 500tourn} assign[t2,w] <= 3 - assign[t1,next(w)];

    # note that there cannot be more than three tournamenents in any week

    s.t. No_more_than_one_500_before_ATPfinals

    {t1 in ATPfinals, w in weeks: w!=last(weeks)}:

    sum{t2 in 500tourn} assign[t2,w] <= 2 - assign[t1,next(w)];

    # note that there cannot be more than two 500 tournamenents in any week

    /* CONSTRAINTS ON DAVIS CUP ROUNDS 1 AND 2 */

    /* Davis Cup round 1 and 2 not in the same week */

    s.t. DCrounds1and2_different_weeks{w in weeks}:

    assign['DCround1',w]+assign['DCround2',w] <= 1;

    /* Davis Cup rounds 1 and 2 in the weeks after the grand slams */

    s.t. DCrounds1and2_weeks_after_GS

    {t1 in DavisCup, w in weeks: t1!='DCfin'and w!=first(weeks)}:

    assign[t1,w] <= sum{t2 in grand_slams}assign[t2,w-1];

    /* No grand slams after Davis Cup second round */

    s.t. No_GS_after_DCround2{w1 in weeks: w1!=last(weeks)}:

    sum{t in grand_slams, w2 in weeks: w2>w1} assign[t,w2] <= 8*(1 - assign['DCround2',w1]);

    /* One Grand Slam before Davis Cup first round */

    s.t. One_GS_before_DCround1{w1 in weeks: w1!=first(weeks)}:

    sum{t in grand_slams, w2 in weeks: w2<w1} assign[t,w2] <= 8 - 6 * assign['DCround1',w1];

    /* CONSTRAINTS ON THE TOURNAMENTS AROUND THE GRAND SLAMS */

    s.t. No_masters_DavisCup_ATPfinals_otherGS_before_GS

    {t1 in grand_slams, t2 in tournaments, w in weeks: t2!=t1 and

    (t2 in grand_slams or t2 in masters or t2 in ATPfinals or t2 in DavisCup) and w!=last(weeks)}:

    assign[t2,w] <= 1 - assign[t1,next(w)];

    s.t. No_more_than_two_tournaments_before_GS

    {t1 in grand_slams, w in weeks: w!=last(weeks)}:

    sum{t2 in 250tourn union 500tourn} assign[t2,w] <= 3 - assign[t1,next(w)];

    # note that there cannot be more than three tournamenents in any week

    s.t. No_more_than_one_500_before_GS

    {t1 in grand_slams, w in weeks: w!=last(weeks)}:

    sum{t2 in 500tourn} assign[t2,w] <= 2 - assign[t1,next(w)];

    # note that there cannot be more than two 500 tournamenents in any week

    s.t. No_DavisCup_ATPfinals_otherGS_two_weeks_before_GS

    {t1 in grand_slams, t2 in tournaments, w in weeks: t2!=t1 and

    (t2 in grand_slams or t2 in ATPfinals or t2 in DavisCup) and w >= member(3,weeks)}:

    assign[t2,w-2] <= 1 - assign[t1,w];

    s.t. No_masters_500tourn_ATPfinals_otherGS_after_GS

    {t1 in grand_slams, t2 in tournaments, w in weeks: t2!=t1 and

    (t2 in grand_slams or t2 in masters or t2 in ATPfinals or t2 in 500tourn) and w!=first(weeks)}:

    assign[t2,w] <= 1 - assign[t1,prev(w)];

    /* no other surface tournaments in one, two weeks before Grand Slams and ATP finals */

    s.t. Only_same_surface_one_two_weeks_before_GS_or_ATP_finals

    {t1 in grand_slams union ATPfinals, t2 in tournaments, w in weeks, r in 1..2:

    surface[t1]!=surface[t2] and w >= member(3,weeks)}:

    assign[t2,max(w-r,1)] <= 1 - assign[t1,w];

    /* no tournaments in other regions one, two weeks before Grand Slams */

    s.t. Only_same_region_one_two_weeks_before_GS

    {t1 in grand_slams, t2 in tournaments, w in weeks, r in 1..2:

    region[t1]!=region[t2] and w >= member(3,weeks)}:

    assign[t2,max(w-r,1)] <= 1 - assign[t1,w];

    /* constraints on grass season tournaments */

    s.t. Halle_and_London_2weeks_before_Wimbledon{w in weeks: w >= member(3,weeks) and w!=last(weeks)}:

    assign['Halle500',w-2] + assign['London500',w-2] >=

    2 * (assign['GS3_Wimbledon',w] + assign['GS3_Wimbledon',next(w)] - 1);

    s.t. 2_of_other_4grass_tournaments_1week_before_Wimbledon{w in weeks: w >= member(2,weeks) and w!=last(weeks)}:

    assign['S_Hert250',w-1] + assign['Stuttgart250',w-1] + assign['Mallorca250',w-1] + assign['Eastbourne250',w-1]

    >= 2 * (assign['GS3_Wimbledon',w] + assign['GS3_Wimbledon',next(w)] - 1);

    s.t. 2_of_other_4grass_tournaments_3weeks_before_Wimbledon{w in weeks: w >= member(4,weeks) and w!=last(weeks)}:

    assign['S_Hert250',w-3] + assign['Stuttgart250',w-3] + assign['Mallorca250',w-3] + assign['Eastbourne250',w-3]

    >= 2 * (assign['GS3_Wimbledon',w] + assign['GS3_Wimbledon',next(w)] - 1);

    /* constraints on US Open series*/

    s.t. Cincy_or_Canada_2weeks_before_USOpen{w in weeks: w >= member(3,weeks) and w!=last(weeks)}:

    assign['M3_Canada',w-2] + assign['M4_Cinci',w-2] >=

    1 - (2 - assign['GS2_USO',w] - assign['GS2_USO',next(w)]);

    s.t. DCOpen_1week_before_Canada_or_Cinci{w in weeks: w >= first(weeks)+1 and w<=last(weeks)-2}:

    assign['DC500',w-1] >=

    assign['M3_Canada',w] + assign['M4_Cinci',w] +

    assign['M3_Canada',w+1] + assign['M4_Cinci',w+1] +

    assign['M3_Canada',w+2] + assign['M4_Cinci',w+2] - 3;

    s.t. WinstonSalem_the_week_before_USOpen{w in weeks: w >= first(weeks)+1 and w<=last(weeks)-1}:

    assign['WinstonSalem250',w-1] >=

    1 - (2 - assign['GS2_USO',w] - assign['GS2_USO',next(w)]);

    /* constraints on European Clay Season */

    s.t. Rome_or_Madrid_2weeks_before_FrenchOpen{w in weeks: w >= member(3,weeks) and w!=last(weeks)}:

    assign['M6_Madrid',w-2] + assign['M7_Rome',w-2] >=

    1 - (2 - assign['GS1_FO',w] - assign['GS1_FO',next(w)]);

    s.t. MonteCarlo_2weeks_before_Madrid_or_Rome{w in weeks: w >= first(weeks)+2 and w<=last(weeks)-3}:

    assign['M5_MonteCarlo',w-2] >=

    assign['M6_Madrid',w] + assign['M7_Rome',w] +

    assign['M6_Madrid',w+1] + assign['M7_Rome',w+1] +

    assign['M6_Madrid',w+2] + assign['M7_Rome',w+2] +

    assign['M6_Madrid',w+3] + assign['M7_Rome',w+3]

    - 3;

    s.t. Barcelona_week_after_MonteCarlo{w in weeks: w!=last(weeks)}:

    assign['Barcelona500',w+1] >= assign['M5_MonteCarlo',w];

    s.t. Other_500clay_before_FrenchOpen{w1 in weeks: w1!=last(weeks)}:

    sum{w2 in weeks: w2>w1} (assign['Hamburg500',w2] + assign['Munich500',w2])

    <= 2*(1 - assign['GS1_FO',w1]);

    /* constraints on Australian Open Season */

    s.t. Hong_Kong_2weeks_before_AustralianOpen{w in weeks: w >= member(3,weeks) and w!=last(weeks)}:

    assign['Hong_Kong250',w-2] >=

    1 - (2 - assign['GS4_AO',w] - assign['GS4_AO',next(w)]);

    s.t. other_three_1or2_weeks_before_AustralianOpen{w in weeks: w >= member(3,weeks) and w!=last(weeks)}:

    assign['Brisbane250',w-2] + assign['Adelaide250',w-2] + assign['Auckland250',w-2]

    + assign['Brisbane250',w-1] + assign['Adelaide250',w-1] + assign['Auckland250',w-1] >=

    3 * (assign['GS4_AO',w] + assign['GS4_AO',next(w)] - 1);

    /* Year-end indoor hard season */

    s.t. Basel_and_Vienna_the_week_before_ParisMasters{w in weeks: w >= first(weeks)+1}:

    assign['Basel500',w-1] + assign['Vienna500',w-1] >= 2 * assign['M9_Paris',w];

    s.t. no_other_tournament_before_ParisMasters{w in weeks: w >= first(weeks)+1}:

    sum{t in tournaments}assign[t,w-1] <= 3 - assign['M9_Paris',w];

    s.t. at_least_two_250indoorhard_Europe_2_weeks_before_ParisMasters{w in weeks: w >= first(weeks)+2}:

    sum{t in 250tourn: surface[t]=='Indoor_Hard' and region[t]=='Europe'}

    assign[t,w-2] >= 2*assign['M9_Paris',w];

    s.t. Almaty_not_before_ATP_finals:

    assign['Almaty250',last(weeks)-2] = 0;

    /* no surface-isolated tournaments (except Davis Cup) */

    s.t. no_surface_isolated_tournaments{t1 in tournaments diff DavisCup, w in weeks: w!=first(weeks) and w!=last(weeks)}:

    sum{t2 in tournaments: surface[t2]==surface[t1]}

    (assign[t2,prev(w)] + assign[t2,next(w)])

    >= assign[t1,w];

    s.t. no_surface_isolated_tournaments_first_week{t1 in tournaments diff DavisCup}:

    sum{t2 in tournaments: surface[t2]==surface[t1]} assign[t2,first(weeks)+1]

    >= assign[t1,first(weeks)];

    /* Dubai and Qatar tournaments should be back to back */

    s.t. Dubai_Qatar_back_to_back{w in weeks: w!=first(weeks) and w!=last(weeks)}:

    assign['Qatar500',prev(w)] + assign['Qatar500',next(w)] >= assign['Dubai500',w];

    s.t. Dubai_Qatar_back_to_back_first_two_weeks:

    assign['Qatar500',first(weeks)+1] >= assign['Dubai500',first(weeks)];

    /* Cinci and Canada must have exactly one week overlap */

    s.t. Cinci_Canada_overlap1{w in weeks: w!=last(weeks)}:

    assign['M3_Canada',w] + assign['M3_Canada',next(w)] >=

    1 - (2 - assign['M4_Cinci',w] - assign['M4_Cinci',next(w)]);

    s.t. Cinci_Canada_overlap2{w in weeks: w!=last(weeks)}:

    assign['M3_Canada',w] + assign['M3_Canada',next(w)] <=

    1 + (2 - assign['M4_Cinci',w] - assign['M4_Cinci',next(w)]);

    /* Rome and Madrid tournaments should be back to back */

    s.t. Rome_and_Madrid_back_to_back{w in weeks: w >= member(3,weeks) and w<=last(weeks)-2}:

    assign['M6_Madrid',w-1] + assign['M6_Madrid',w+2] >=

    1 - (2 - assign['M7_Rome',w] - assign['M7_Rome',next(w)]);

    /* Cali and Miami tournaments should be back to back */

    s.t. Cali_and_Miami_back_to_back{w in weeks: w >= member(3,weeks) and w<=last(weeks)-2}:

    assign['M2_Miami',w-1] + assign['M2_Miami',w+2] >=

    1 - (2 - assign['M1_Cali',w] - assign['M1_Cali',next(w)]);

    /* South America tournaments in three consecutive weeks; Rio not the first one */

    s.t. Argentina_and_Chile_within_two_weeks_of_Rio{w in weeks: w<=last(weeks)-1}:

    sum{w2 in weeks: w-2<=w2<=w-1}assign['Argentina250',w2] + assign['Argentina250',w+1] +

    sum{w2 in weeks: w-2<=w2<=w-1}assign['Chile250',w2] + assign['Chile250',w+1]

    >= 2 * assign['Rio500',w];

    s.t. Chile_within_two_weeks_of_Argentina2{w in weeks: w<=last(weeks)-2}:

    sum{w2 in weeks: w-2<=w2<=w-1}assign['Chile250',w2] + assign['Chile250',w+1] + assign['Chile250',w+2]

    >= assign['Argentina250',w];

    /* four East Asia tournaments in 2 weeks before the Shanghai masters */

    s.t. East_Asia_tournaments2{w in weeks: w<=last(weeks)-1}:

    sum{w2 in weeks, t in tournaments: w-2<=w2<=w-1 and region[t]!='Asia'}

    assign[t,w2]

    <= 6 * (1 - assign['M8_Shanghai', w]);

    s.t. Tokyo_and_Beijing_the_week_before_ShanghaiMasters{w in weeks: w >= first(weeks)+1 and w <= last(weeks)-1}:

    assign['Tokyo500',w-1] + assign['Beijing500',w-1] >= 2*(assign['M8_Shanghai',w] + assign['M8_Shanghai',w+1] - 1);

    /* at least one tournament on same surface and region before each Masters */

    s.t. tournaments_before_masters{t in masters, w in weeks: w<=last(weeks)-1}:

    sum{t2 in tournaments: surface[t2]==surface[t] and region[t2]==region[t]} assign[t2,w]

    >= assign[t, w+1];

    Appendix 2. Complete Tour Calendars for ActualATP, Schedule20, and Schedule23

    Week

    Tournament name, region, surface, temperature

    ActualATP

    Schedule20

    Schedule23

    1

    Jan. 1

    Jan. 20

    Jan. 23

    Brisbane250, Aus, H, 86˚F

    Dubai500, Eur, H, 75.5˚F

    Dubai500, Eur, H, 75.7˚F

    Hong_Kong250, Aus, H, 67˚F

    Delray250, Am, H, 75.3˚F

    Delray250, Am, H, 75.4˚F

    LosCabos250, Am, H, 79.3˚F

    LosCabos250, Am, H, 79.4˚F

    2

    Jan. 8

    Jan. 27

    Jan. 30

    Adelaide250, Aus, H, 85˚F

    Acapulco500, Am, H, 87˚F

    Acapulco500, Am, H, 87˚F

    Auckland250, Aus, H, 75˚F

    Qatar500, Eur, H, 72.5˚F

    Qatar500, Eur, H, 72.7˚F

    3

    Jan. 15

    Feb. 3

    Feb. 6

    AusOpenGS, Aus, H, 80˚F

    MiamiM, Am, H, 76.7˚F

    MiamiM, Am, H, 76.8˚F

    4

    Jan. 22

    Feb. 10

    Feb. 13

    AusOpenGS, Aus, H, 80˚F

    MiamiM, Am, H, 76.9˚F

    MiamiM, Am, H, 77.1˚F

    5

    Jan. 29

    Feb. 17

    Feb. 20

    Montpellier250, Eur, IH

    IndianWellsM, Am, H, 70.9˚F

    IndianWellsM, Am, H, 71.4˚F

    DavisCup_R1, Multi, Var

    6

    Feb. 5

    Feb. 24

    Feb. 27

    Dallas500, Am, IH

    IndianWellsM, Am, H, 72.1˚F

    IndianWellsM, Am, H, 72.7˚F

    Rotterdam500, Eur, IH

    7

    Feb. 12

    March 3

    March 6

    Argentina250, Am, CL, 82˚F

    Hong_Kong250, Aus, H, 70.7˚F

    Hong_Kong250, Aus, H, 71.1˚F

    Delray250, Am, H, 76.1˚F

    Auckland250, Aus, H, 73.6˚F

    Auckland250, Aus, H, 73.4˚F

    Marseille250, Eur, IH

    8

    Feb. 19

    March 10

    March 13

    Rio500, Am, CL, 87.5˚F

    Brisbane250, Aus, H, 83.1˚F

    Brisbane250, Aus, H, 82.8˚F

    Qatar500, Eur, H, 76˚F

    Adelaide250, Aus, H, 81.3˚F

    Adelaide250, Aus, H, 80.7˚F

    9

    Feb. 26

    March 17

    March 20

    Chile250, Am, CL, 83.5˚F

    AusOpenGS, Aus, H, 74.5˚F

    AusOpenGS, Aus, H, 73.7˚F

    Dubai500, Eur, H, 80.5˚F

    Acapulco500, Am, H, 87.5˚F

    10

    March 5

    March 24

    March 27

    IndianWellsM, Am, H, 73.8˚F

    AusOpenGS, Aus, H, 72.5˚F

    AusOpenGS, Aus, H, 71.6˚F

    11

    March 12

    March 31

    April 3

    IndianWellsM, Am, H, 75˚F

    Argentina250, Am, CL, 74.7˚F

    DavisCup_R1, Multi, Var

    DavisCup_R1, Multi, Var

    12

    March 19

    April 7

    April 10

    MiamiM, Am, H, 79.7˚F

    Chile250, Am, CL, 75.3˚F

    Chengdu250, Asia, H, 71.3˚F

    Houston250, Am, CL, 75.9˚F

    Hangzhou250, Asia, H, 70.4˚F

    Morocco250, Eur, CL, 76.5˚F

    13

    March 26

    April 14

    April 17

    MiamiM, Am, H, 80.4˚F

    Rotterdam500, Eur, IH

    Tokyo500, Asia, H, 66.2˚F

    Rio500, Eur, CL, 82.7˚F

    Beijing500, Asia, H, 69.8˚F

    14

    April 2

    April 21

    April 24

    Bucharest250, Eur, CL, 62.1˚F

    Hamburg500, Eur, CL, 59.1˚F

    ShanghaiM, Asia, H, 71.6˚F

    Houston250, Am, CL, 74.7˚F

    Montpellier250, Eur, IH

    Morocco250, Eur, CL, 76˚F

    15

    April 9

    April 28

    May 1

    MontCarloM, Eur, CL, 62.6˚F

    MonteCarloM, Eur, CL, 66.7˚F

    ShanghaiM, Asia, H, 73.7˚F

    16

    April 16

    May 5

    May 8

    Barcelona500, Eur, CL, 66.9˚F

    Barcelona500, Eur, CL, 71.4˚F

    Hamburg500, Eur, CL, 63.1˚F

    Munich500, Eur, CL, 59.2˚F

    Bucharest250, Eur, CL, 72.9˚F

    Bucharest250, Eur, CL, 73.8˚F

    Umag250, Eur, CL, 70.1˚F

    17

    April 23

    May 12

    May 15

    MadridM, Eur, CL, 66.3˚F

    RomeM, Eur, CL, 74˚F

    MonteCarloM, Eur, CL, 70.7˚F

    18

    April 30

    May 19

    May 22

    MadridM, Eur, CL, 68.4˚F

    RomeM, Eur, CL, 75.8˚F

    Barcelona500, Eur, CL, 75.3˚F

    Umag250, Eur, CL, 74.6˚F

    19

    May 7

    May 26

    May 29

    RomeM, Eur, CL, 72.7˚F

    MadridM, Eur, CL, 77.4˚F

    MadridM, Eur, CL, 78.6˚F

    20

    May 14

    June 2

    June 5

    RomeM, Eur, CL, 74.5˚F

    MadridM, Eur, CL, 80.1˚F

    MadridM, Eur, CL, 81.3˚F

    21

    May 21

    June 9

    June 12

    Hamburg500, Eur, CL, 65.5˚F

    Munich500, Eur, CL, 72.4˚F

    RomeM, Eur, CL, 81.9˚F

    Geneva250, Eur, CL, 71˚F

    Geneva250, Eur, CL, 75.3˚F

    22

    May 28

    June 16

    June 19

    FrOpenGS, Eur, CL, 70.6˚F

    FrOpenGS, Eur, CL, 73.5˚F

    RomeM, Eur, CL, 83.4˚F

    23

    June 4

    June 23

    June 26

    FrOpenGS, Eur, CL, 71.7˚F

    FrOpenGS, Eur, CL, 74.5˚F

    Munich500, Eur, CL, 74.4˚F

    Bastad250, Eur, CL, 68.4˚F

    24

    June 11

    June 30

    July 3

    S_Hert250, Eur, G, 69.8˚F

    Mallorca250, Eur, G, 85.6˚F

    FrOpenGS, Eur, CL, 75.8˚F

    Stuttgart250, Eur, G, 72.8˚F

    Stuttgart250, Eur, G, 75.4˚F

    25

    June 18

    July 7

    July 10

    Halle500, Eur, G, 73.8˚F

    Halle500, Eur, G, 76.3˚F

    FrOpenGS, Eur, CL, 76.7˚F

    London500, Eur, G, 71.8˚F

    London500, Eur, G, 74.3˚F

    26

    June 25

    July 14

    July 17

    Mallorca250, Eur, G, 84.6˚F

    S_Hert250, Eur, G, 72.9˚F

    S_Hert250, Eur, G, 72.8˚F

    Eastbourne250, Eur, G, 69.7˚F

    Eastbourne250, Eur, G, 72˚F

    Eastbourne250, Eur, G, 72˚F

    Gstaad250, Eur, CL, 74˚F

    27

    July 2

    July 21

    July 24

    WimbledonGS, Eur, G, 72.7˚F

    WimbledonGS, Eur, G, 73.7˚F

    Halle500, Eur, G, 76.6˚F

    London500, Eur, G, 74.6˚F

    28

    July 9

    July 28

    July 31

    WimbledonGS, Eur, G, 73.6˚F

    WimbledonGS, Eur, G, 73.5˚F

    Stuttgart250, Eur, G, 76.4˚F

    Mallorca250, Eur, G, 88˚F

    29

    July 16

    August 4

    August 7

    Bastad250, Eur, CL, 69.9˚F

    Bastad250, Eur, CL, 69.3˚F

    WimbledonGS, Eur, G, 73.2˚F

    Gstaad250, Eur, CL, 74˚F

    Kitzbuhel250, Eur, CL, 74˚F

    LosCabos250, Am, H, 94.1˚F

    Belgrade250, Eur, IH

    30

    July 23

    August 11

    August 14

    Kitzbuhel250, Eur, CL, 74˚F

    Gstaad250, Eur, CL, 73.9˚F

    WimbledonGS, Eur, G, 72.7˚F

    Umag250, Eur, CL, 84.6˚F

    Dallas500, Eur, IH

    Washington500, Am, H, 89.5˚F

    Washington500, Am, H, 88.2˚F

    31

    July 30

    August 18

    August 21

    CanadaM, Am, H, 80.8˚F

    CincinnatiM, Am, H, 85˚F

    Kitzbuhel250, Eur, CL, 71.7˚F

    Stockholm250, Eur, IH

    32

    August 6

    August 25

    August 28

    CanadaM, Am, H, 80.4˚F

    CincinnatiM, Am, H, 84.1˚F

    Geneva250, Eur, CL, 74.9˚F

    CincinnatiM, Am, H, 85.7˚F

    CanadaM, Am, H, 77.1˚F

    Dallas500, Am, IH

    Washington500, Am, H, 85.5˚F

    33

    August 13

    Sept. 1

    Sept. 4

    CincinnatiM, Am, H, 85.4˚F

    CanadaM, Am, H, 75.5˚F

    CanadaM, Am, H, 74.8˚F

    34

    August 20

    Sept. 8

    Sept. 11

    WinstSalem250, Am, H, 85.3˚F

    WinstSalem250, Am, H, 81.4˚F

    CanadaM, Am, H, 73.1˚F

    CincinnatiM, Am, H, 79.7˚F

    35

    August 27

    Sept. 15

    Sept. 18

    USOpenGS, Am, H, 81.3˚F

    USOpenGS, Am, H, 75.5˚F

    CincinnatiM, Am, H, 77.1˚F

    36

    Sept. 3

    Sept. 22

    Sept. 25

    USOpenGS, Am, H, 79.6˚F

    USOpenGS, Am, H, 72.7˚F

    WinstSalem250, Am, H, 76.6˚F

    37

    Sept. 10

    Sept. 29

    Oct. 2

    DavisCup_R2, Multi, Var

    DavisCup_R2, Multi, Var

    USOpenGS, Am, H, 68.6˚F

    38

    Sept. 17

    Oct. 6

    Oct. 9

    Chengdu250, Asia, H, 76.7˚F

    Chengdu250, Asia, H, 71.6˚F

    USOpenGS, Am, H, 65.8˚F

    39

    Hangzhou250, Asia, H, 81.3˚F

    Hangzhou250, Asia, H, 75˚F

    Sept. 24

    Oct. 13

    Oct. 16

    Tokyo500, Asia, H, 78˚F

    Tokyo500, Asia, H, 71.7˚F

    DavisCup_R2, Multi, Var

    Beijing500, Asia, H, 73.6˚F

    Beijing500, Asia, H, 66.4˚F

    Chile250, Am, CL, 75.6˚F

    40

    Oct. 1

    Oct. 20

    Oct. 23

    ShanghaiM, Asia, H, 76.3˚F

    ShanghaiM, Asia, H, 70.2˚F

    Rio500, Am, CL, 82.7˚F

    Almaty250, Eur, IH

    Belgrade250, Eur, IH

    41

    Oct. 8

    Oct. 27

    Oct. 30

    ShanghaiM, Asia, H, 74.2˚F

    ShanghaiM, Asia, H, 67.7˚F

    Argentina250, Am, CL, 75.1˚F

    Houston250, Am, CL, 74.8˚F

    Montpellier250, Eur, IH

    42

    Oct. 15

    Nov. 3

    Nov. 6

    Almaty250, Eur, IH

    Almaty250, Eur, IH

    Morocco250, Eur, CL, 73.9˚F

    Brussels250, Eur, IH

    Marseille250, Eur, IH

    Marseille250, Eur, IH

    Stockholm250, Eur, IH

    Stockholm250, Eur, IH

    Metz250, Eur, IH

    43

    Oct. 22

    Nov. 10

    Nov. 13

    Basel500, Eur, IH

    Basel500, Eur, IH

    Basel500, Eur, IH

    Vienna500, Eur, IH

    Vienna500, Eur, IH

    Vienna500, Eur, IH

    44

    Oct. 29

    Nov. 17

    Nov. 20

    ParisM, Eur, IH

    ParisM, Eur, IH

    ParisM, Eur, IH

    45

    Nov. 5

    Nov. 24

    Nov. 27

    Metz250, Eur, IH

    Metz250, Eur, IH

    Rotterdam500, Eur, IH

    Belgrade250, Eur, IH

    Brussels250, Eur, IH

    Brussels250, Eur, IH

    46

    Nov. 12

    Dec. 1

    Dec. 4

    ATPfinal, Eur, IH

    ATPfinal, Eur, IH

    ATPfinal, Eur, IH

    47

    Nov. 19

    Dec. 8

    Dec. 11

    DavisCup_Final, Multi, Var

    DavisCup_Final, Multi, Var

    DavisCup_Final, Multi, Var

    Notation: Regions: Am (Americas), Asia, Aus (Australia), Eur (Europe), Multi (Multi-City); Surfaces: H (Hard), IH (Indoor Hard), CL (Clay), G (Grass), Var (Various).

Conflicts of Interest

The author declares no conflicts of interest regarding the publication of this paper.

References

[1] ATP Tour Website.
https://en.wikipedia.org/wiki/ATP_Tour
[2] Moron, J. (2025) Are We Going to Wait for a Tragedy to Happen to Do Something? Puntodebreak.
https://web.archive.org/web/20250812/
https://www.puntodebreak.com/en/2025/08/11/are-we-going-to-wait-for-tragedy-to-happen-to-do-something
[3] Express News Service (2025) Not Just Jannik Sinner, These Tennis Players Too Suffered under the Blistering Heat and Humidity of Cincinnati. The Indian Express.
https://indianexpress.com/article/sports/tennis/jannik-sinner-tennis-players-suffer-cincinnati-heat-humidity-10198236/
[4] Carayol, T. (2025) ‘You Want a Player to Die?’ Heat Is on Tennis after Players Wilt in Extreme Conditions. The Guardian.
https://www.theguardian.com/sport/2025/oct/08/heat-on-tennis-players-wilt-extreme-conditions
[5] The AMPL Website.
http://www.ampl.com/
[6] The Gurobi Website.
https://neos-server.org/neos/solvers/milp:Gurobi/AMPL.html
[7] Dinitz, J.H., Froncek, D., Lamken, E.R. and Wallis, W.D. (2006) Scheduling a Tournament. In: Colbourn, C.J. and Dinitz, J.H., Eds., Handbook of Combinatorial Designs, CRC Press, 623-631.
[8] Easton, K., Nemhauser, G. and Trick, M. (2004) Sports Scheduling. In: Leung, J.T., Ed., Handbook of Scheduling, CRC Press, 52.1-52.19.
[9] Ribeiro, C.C. (2012) Sports Scheduling: Problems and Applications. International Transactions in Operational Research, 19, 201-226.[CrossRef]
[10] Wright, M.B. (2009) 50 Years of or in Sport. Journal of the Operational Research Society, 60, S161-S168.[CrossRef]
[11] Kendall, G., Knust, S., Ribeiro, C.C. and Urrutia, S. (2010) Scheduling in Sports: An Annotated Bibliography. Computers & Operations Research, 37, 1-19.[CrossRef]
[12] Knust, S. (2026) Website with References on Sport Scheduling Problems.
http://www2.inf.uos.de/knust/sportssched/sportlit_class/node1.html
[13] Melkonian, V. (2021) Fair Scheduling Models for Doubles Group Competitions. American Journal of Operations Research, 11, 338-356.[CrossRef]
[14] Della Croce, F., Tadei, R. and Asioli, P.S. (1999) Scheduling a Round Robin Tennis Tournamentunder Courts and Players Availability Constraints. Annals of Operations Research, 92, 349-361.[CrossRef]
[15] Farmer, A., Smith, J.S. and Miller, L.T. (2007) Scheduling Umpire Crews for Professional Tennis Tournaments. Interfaces, 37, 187-196.[CrossRef]

Copyright © 2026 by authors and Scientific Research Publishing Inc.

Creative Commons License

This work and the related PDF file are licensed under a Creative Commons Attribution 4.0 International License.