Skip to Content
GamesGames
  • Feature Paper
  • Article
  • Open Access

3 June 2026

20 Pages

A Provable Semi-Infinite Programming Approach for Solving Constrained Dynamic Games

,
and
Mechanical and Aerospace Engineering, Utah State University, Logan, UT 84322, USA
*
Author to whom correspondence should be addressed.

Abstract

Many engineering problems must account for the non-cooperative decisions and actions of multiple players. These problems can be modeled within a game-theoretic framework. The approach herein is to model such problems as mathematical games, convert them to semi-infinite programs, and utilize a semi-infinite program solver whose output is provably an ϵ -optimal Nash equilibrium. The approach is successfully benchmarked on two low-dimensional problems. Two types of higher-dimensional linear quadratic dynamic games are then investigated: ones where each player’s problem is convex and ones where at least one player’s problem is nonconvex. Within each type, variations based on information structure, control constraints, number of players, and semi-infinite objective are considered. The algorithm is tested with different internal solvers, and it successfully solves all test problems using MATLAB’s fmincon. The numerical solutions approximate analytical solutions (when they are known) within approximately one percent. For a three-player game with input saturation constraints, hundreds of variables, and no analytical solution, the computational time is approximately five minutes.

1. Introduction

Game theory has numerous applications in wildlife management (Engwerda, 2018), power systems (Mylvaganam & Astolfi, 2015), traffic control (Colombo et al., 2025), evolutionary biology (Taylor & Jonker, 1978) and more (Guo et al., 2013; Huang & Zhao, 2021). A simple, quintessential example is that of a children’s game of tag—formally called pursuit and evasion—in which the pursuer minimizes its distance to a given evader and evaders maximize their distance to the pursuer. The players make decisions and take actions to optimize their respective outcomes understanding that others are doing the same. This is a non-cooperative game. The game is dynamic because the players’ states evolve according to differential or difference equations. Militaristic variations of this problem are pervasive and described in the early work of Isaacs (1965). Other notable examples from engineering/control, mathematical theories, and algorithms have been presented in the books by Bryson and Ho (1975) and Başar and Olsder (1999).
Because games involve the simultaneous solution of multiple optimization problems, standard linear, convex, and nonlinear programming solvers cannot directly solve games, though they can still indirectly be used by embedding optimality conditions as constraints within the solvers. For this reason, myriad numerical methods have been developed. Chenchene et al. (2025) proposed using agents to sample the solution space for the global Nash equilibrium with termination based on agent consensus. Another method by Garagic and Cruz (2003) uses fuzzy set theory to solve static Nash games by dividing the problem into three phases: fuzzification, inference, and defuzzification. In the work by Guo et al. (2013), semi-tensor products are used to find Nash equilibria for static games. A dynamic pursuer–evader game is solved by Pontani and Conway (2009) using a genetic algorithm to formulate an initial guess for a semi-direct collocation with nonlinear programming algorithm. A special subset of pursuer–evader games includes minimax games, where one player tries to minimize the same objective that the other player is trying to maximize. A method used to solve minimax games in machine learning is a gradient descent–ascent algorithm (Lin et al., 2020; Nouiehed et al., 2019). This method performs a step of gradient descent for one player and a step of gradient ascent for the other player for every iteration.
Embedding optimality conditions, specifically the Karush–Kuhn–Tucker (KKT) conditions (Berkovitz, 2002), of some or all players as constraints presents three challenges. First, KKT conditions have a constraint qualification (commonly linear independence or Mangasarian–Fromovitz) that is difficult to verify a priori. When the qualification is violated, the conditions are not solvable. Simple finite-dimensional examples are Example 5.2 of Berkovitz (2002) and Example 3.7 of Harris and Rose (2023). A practical optimal control problem that fails the constraint qualification is presented in Problem 5.10 of Harris and Rose (2023). If any player has such a problem in the Nash setting, this “KKT embedding” approach will fail. Second, when inequality constraints are present, the linear independence constraint qualification is trivially violated because gradients of the active inequality constraints and complementary slackness conditions are linearly dependent. Third, KKT conditions are only necessary conditions for nonconvex programs and may lead to spurious solutions. For these reasons, this paper pursues a “direct” approach that does not leverage KKT conditions.
In this paper, Nash games are transformed into semi-infinite programs (SIPs) so that an entirely different set of algorithms are applicable. SIPs are mathematical programs with a finite number of decision variables and an infinite number of constraints. The infinite constraints are typically formulated as inequalities with one or more variables belonging to an infinite set. These programs are commonly used in engineering problems for robustness (Ben-Tal & Nemirovski, 1999), the design of control Lyapunov functions (Tang & Daoutidis, 2023), worst-case control design (Polak & Stimler, 1988), design centering (Stein, 2006), set covering problems (Krieg et al., 2022), and more (Hettich & Kortanek, 1993; López & Still, 2007). There are many numerical approaches to solving SIPs based on interval methods (Bhattacharjee et al., 2005a), branch-and-bound (Bhattacharjee et al., 2005b), and the use of various lower and upper bounding problems (Cerulli et al., 2022; Feng et al., 2020; Floudas & Stein, 2008; Mitsos, 2011). The algorithmic literature is immense with approaches based on integral function transformation (Ling et al., 2006), proximal bundles (Pang & Wu, 2022), relaxations (Mitsos et al., 2008), spectral factorization (Hayashi & Wu, 2010), and more having been proposed (Djelassi et al., 2021). MATLAB has a built-in SIP solver fseminf (The MathWorks Inc., 2024). It does not generate a provably optimal point, and dimensional limitations make it inapplicable to the dynamic games of interest in this paper. Nonetheless, it is tested on the benchmark problems described in Section 2 for completeness.
With the goal of solving dynamic Nash games as SIPs, the primary algorithm of interest is one by Mitsos (2011). It uses commercially available off-the-shelf solvers to solve so-called lower-bounding, lower-level, and upper-bounding problems. The commercially available solver is henceforth referred to as the “internal solver”. By cycling through these problems, the algorithm converges finitely to a provably ϵ -optimal point—for both the SIP and the Nash game. Assumptions for convergence are mild and trivially satisfied by the construction of the SIP. Upcoming results explore the use of both global (Gurobi (Gurobi Optimization, LLC, 2024)) and local (MATLAB’s fmincon (The MathWorks Inc., 2024)) internal solvers. There is a natural trade-off between proving global optimality of the SIP solution and computation time. The ease of implementation, flexibility in choosing the internal solver, and convergence guarantees make the algorithm a promising one for solving challenging, constrained Nash games in SIP form.
The primary contributions of the paper are: (1) the transformation of a Nash game into a numerically solvable SIP; (2) the identification of a suitable SIP solver that generates a provably ϵ -optimal Nash solution; and (3) successful demonstration on benchmark problems and larger-scale dynamic games. An outline of the paper is as follows. Section 2 introduces Nash games, transformation to SIP form, and results on simple benchmark problems. In Section 3, larger-scale problems are solved. These have hundreds of decision variables and include a series of convex linear–quadratic games with and without control constraints for two and three players. Numerical solutions are compared with both open-loop and closed-loop theoretical solutions when possible. Nonconvex pursuer–evader games in both Nash and sequential forms are considered in Section 4. This paper is concluded in Section 5.

2. Approach and Benchmark Results

In this section, the problems of interest are two-player Nash games. The decision variables for the players are x 1 ∈ R n 1 and x 2 ∈ R n 2 , their constraint sets are X 1 ⊂ R n 1 and X 2 ⊂ R n 2 , and their objective functions are f 1 : X 1 × X 2 → R and f 2 : X 1 × X 2 → R . Each player’s goal is to minimize its objective function by selecting an element from its constraint set. In a typical problem, the constraint sets are generated by equalities and inequalities, and they contain infinitely many elements. Because the objective functions depend on all players’ decisions, the Nash game is not solvable as a single standard optimization problem.
Definition 1.
A point ( x 1 , x 2 ) ∈ X 1 × X 2 is a locally optimal Nash solution (equilibrium) if there exist neighborhoods N ( x 1 ) ⊂ X 1 and N ( x 2 ) ⊂ X 2 of x 1 and x 2 , respectively, such that
∀ γ ∈ N ( x 1 ) , f 1 ( x 1 , x 2 ) − f 1 ( γ , x 2 ) ≤ 0 ,
∀ ζ ∈ N ( x 2 ) , f 2 ( x 1 , x 2 ) − f 2 ( x 1 , ζ ) ≤ 0 .
If N ( x 1 ) = X 1 and N ( x 2 ) = X 2 , then ( x 1 , x 2 ) is a globally optimal Nash solution.
Recognizing that each player is solving an optimization problem with the other player’s decision fixed leads to simple necessary and sufficient conditions for local solutions of unconstrained, differentiable games.
Lemma 1.
Let X 1 and X 2 be open. Let f 1 and f 2 be twice continuously differentiable. If ( x 1 , x 2 ) is a Nash solution, then
∂ ∂ x i f i ( x 1 , x 2 ) = 0 , ∂ 2 ∂ x i 2 f i ( x 1 , x 2 ) ≥ 0 , i = 1 , 2 .
Also, if
∂ ∂ x i f i ( x 1 , x 2 ) = 0 , ∂ 2 ∂ x i 2 f i ( x 1 , x 2 ) > 0 , i = 1 , 2 ,
then ( x 1 , x 2 ) is a locally optimal Nash solution.
The first-order conditions provide a means of generating candidate equilibria by solving a system of algebraic equations. This idea can be extended to problems with constraints; however, there are challenges with this KKT approach as described in the Introduction. A related solution concept is that of ϵ -optimality.
Definition 2.
For a given ϵ > 0 , a point ( x 1 , x 2 ) ∈ X 1 × X 2 is a locally ϵ-optimal Nash solution if there exist neighborhoods N ( x 1 ) ⊂ X 1 and N ( x 2 ) ⊂ X 2 of x 1 and x 2 , respectively, such that
∀ γ ∈ N ( x 1 ) , f 1 ( x 1 , x 2 ) − f 1 ( γ , x 2 ) − ϵ ≤ 0 ,
∀ ζ ∈ N ( x 2 ) , f 2 ( x 1 , x 2 ) − f 2 ( x 1 , ζ ) − ϵ ≤ 0 .
If N ( x 1 ) = X 1 and N ( x 2 ) = X 2 , then ( x 1 , x 2 ) is a globally ϵ-optimal Nash solution.
Conceptually, an ϵ -optimal point produces an objective value that is at most ϵ different than an optimal point. For a given ϵ > 0 , the ϵ -optimality inequalities in Equation (4) are now embedded as constraints in the following SIP:
min x 1 , x 2 F ( x 1 , x 2 )
subject to f 1 ( x 1 , x 2 ) − f 1 ( γ , x 2 ) − ϵ ≤ 0 , ∀ γ ∈ X 1
f 2 ( x 1 , x 2 ) − f 2 ( x 1 , ζ ) − ϵ ≤ 0 , ∀ ζ ∈ X 2
x 1 ∈ X 1 , x 2 ∈ X 2
The optimization variables are x 1 and x 2 . Provided either X 1 or X 2 has infinitely many elements, there are infinite constraints. Variables γ and ζ are referred to as the semi-infinite variables. It is obvious that any SIP solution (feasible, local, or global) produces a globally ϵ -optimal Nash solution. As such, the choice of F is not theoretically important. In practice, however, F can have a regularizing effect on the problem that can accelerate solve times. When the f i are convex, obvious choices for F are F = f 1 , F = f 2 , and F = 1 2 f 1 + 1 2 f 2 . When the f i are nonconvex, one can choose F = ∥ x 1 ∥ 2 2 + ∥ x 2 ∥ 2 2 . These choices are explored in our numerical examples. Ultimately, the choice is problem dependent and up to the engineer.
The SIP in standard form is given below:
min x F ( x )
subject to g ( x , y ) ≤ 0 , ∀ y ∈ Y
x ∈ X
The finite variable x corresponds to the player choices [ x 1 T , x 2 T ] T in Equation (5). The infinite variable y is [ γ T , ζ T ] T . Both belong to the infinite set X = Y = X 1 × X 2 . The inequality g ( x , y ) ≤ 0 corresponds to the inequalities in Equations (5b) and (5c). The framework just described trivially generalizes to games with three or more players.
To solve the SIP, the algorithm by Mitsos (2011) is selected because it (1) generates an ϵ -optimal solution to the SIP (and hence the Nash game), (2) leverages commercially available solvers, and (3) has mild assumptions for finite convergence. Assumptions include continuity of functions F and g and compactness of X and Y. The final assumption is existence of a SIP-Slater point—a point x for which g ( x , y ) < 0 for all y ∈ Y . By construction, the Nash equilibrium serves as this point because g is bounded above by − ϵ at the Nash equilibrium.
The algorithm is described informally in words here. A formalized step-by-step description is given in Algorithm 1 on the next page. There are four subproblems solved in the algorithm: the lower-bounding problem, the lower-level problem based on the results from the lower-bounding problem, the upper-bounding problem, and finally the lower-level problem based on the results from the upper-bounding problem. The sets Y L and Y U are finite subsets of Y. Their initializations Y L , 0 and Y U , 0 are arbitrary and are subsequently populated by the algorithm. The lower-bounding problem form is nearly identical to Equation (6) with the only change being that Y is replaced with the finite set Y L . The results from the lower-bounding problem are denoted x ¯ . The lower-level problem is then defined as max y ∈ Y g ( x ¯ , y ) . The results from this lower-level problem are added to Y L . The form of the upper-bounding problem is also similar to Equation (6) with two changes: the infinite set Y is replaced with the finite set Y U and g ( x , y ) ≤ − ϵ g . The results from the upper-bounding problem are denoted x ¯ . The lower-level problem is then solved again and the results are added to Y U . The parameter r is a scalar greater than one and is used to decrease the value of ϵ g . The bounding values f L and f U are the values from the objective functions solved in the lower- and upper-bounding problems. To end the algorithm, a tolerance ϵ is used. Initial guesses to the internal solver are required when using MATLAB’s fmincon but not when using Gurobi. In all subsequent problems, ϵ g is initialized at 0.8, r = 1.5 , and ϵ = 0.001 . A discussion and numerical demonstration of the effects of these parameters is given by Mitsos (2011).
Algorithm 1 Algorithm to solve SIP.
Input:
   Finite subsets Y L , 0 ⊂ Y and Y U , 0 ⊂ Y
   Threshold values ϵ g > 0 and ϵ > 0
   Update rate r > 0
Output:
   SIP solution, x *
Begin
   Set fL = −∞, fU = ∞, YL = YL,0, YU = YU,0.
   While | f U − f L | > ϵ
     Do
       Solve the lower-bounding problem, set x ¯ to the solution.
       Solve the lower-level problem.
       If the lower-level problem objective value is non-positive
         f U = f L and x * = x ¯ .
       End
       Add the lower-level problem solution to Y L .
       Solve the upper-bounding problem, set the solution equal to f d u m .
       If feasible
        Set x ¯ to the solution.
        Solve the lower-level problem.
        If the lower-level problem objective value is non-positive
         If fdum ≤ fU
          fU = fL and x* = x ¯ .
         End
         ϵg = ϵg/r.
        Else
          Add lower-level problem solution to YU.
        End
       Else
         ϵg = ϵg/r.
       End
     End
   End
End

2.1. Benchmark Problems and Results

This subsection presents two benchmark problems: the “location game” and the “heat transfer game”. After describing the problem, its solution is obtained via Lemma 1 for comparative purposes with the SIP solutions. In each game, the decision variables are scalars, and the SIP objective is chosen to be F = x 1 2 + x 2 2 since the f i are nonconvex. The computer used to solve each of these benchmark problems will be referred to as Computer One: 64-bit 12th Gen Intel(R) Core(TM) i9-12900H at 2.50 GHz running Windows 11 and Gurobi 11.0.0.

2.1.1. Location Game

Each player in the location game aims to be near the origin while also being far from the other player (Ratliff et al., 2013). The locations of the players on the number line are x 1 and x 2 . Objective functions are specified below. The first terms drive each player to the origin; the second terms drive the players apart. The second player is penalized slightly more for being close to the first player:
f 1 ( x 1 , x 2 ) = − cos ( x 1 ) + 1.00 cos ( x 1 − x 2 )
f 2 ( x 1 , x 2 ) = − cos ( x 2 ) + 1.05 cos ( x 2 − x 1 )
To avoid trigonometric non-uniqueness, we only investigate equilibria in the range ( − π , π ) . Lemma 1 applies, and the derivatives are
∂ ∂ x 1 f 1 ( x 1 , x 2 ) = sin ( x 1 ) − 1.00 sin ( x 1 − x 2 ) ,
∂ ∂ x 2 f 2 ( x 1 , x 2 ) = sin ( x 2 ) − 1.05 sin ( x 2 − x 1 ) ,
∂ 2 ∂ x 1 2 f 1 ( x 1 , x 2 ) = cos ( x 1 ) − 1.00 cos ( x 1 − x 2 ) ,
∂ 2 ∂ x 2 2 f 2 ( x 1 , x 2 ) = cos ( x 2 ) − 1.05 cos ( x 2 − x 1 ) .
Setting the first-order conditions to zero, using Newton’s method to solve the nonlinear system, and checking for positive second derivatives yields two candidates, ( x 1 , x 2 ) ≈ ( ± 1.0181 , ∓ 1.1054 ) , which are Nash equilibria.
The location game is now solved as an SIP, described in Equation (5). The initial finite set is populated with 1000 uniformly distributed random numbers in the range ( − π , π ) . Table 1 shows the results for different internal solvers and initial guesses (when required). Results obtained from MATLAB’s SIP solver fseminf are shown for completeness. The algorithm consistently approximates the known equilibria using both fmincon and Gurobi. fseminf performs inconsistently based on the initial guess.
Table 1. Numerical SIP results for the location game.

2.1.2. Heat Transfer Game

The heat transfer game represents two players in adjoining rooms of a building (Ratliff et al., 2016). The players try to maintain the temperature at a set point in thermodynamic equilibrium. The temperatures chosen by the players are x 1 and x 2 . Objective functions are specified below. The first term in their objectives represents the energy cost at equilibrium; the second term is a cross-term used to model heat transfer effects (or thermodynamic coupling between the rooms).
f 1 ( x 1 , x 2 ) = 0.5 x 1 2 − x 1 x 2
f 2 ( x 1 , x 2 ) = 0.5 x 2 2 − x 1 x 2
There are no restrictions on the possible temperatures. Lemma 1 applies, and the derivatives are
∂ ∂ x 1 f 1 ( x 1 , x 2 ) = x 1 − x 2 , ∂ 2 ∂ x 1 2 f 1 ( x 1 , x 2 ) = 1 ,
∂ ∂ x 2 f 2 ( x 1 , x 2 ) = x 2 − x 1 , ∂ 2 ∂ x 2 2 f 2 ( x 1 , x 2 ) = 1 .
Setting the first-order conditions to zero yields a continuum of candidates along the line x 1 = x 2 . The second-order derivatives are always positive; hence, any point on the line is a Nash equilibrium.
The heat transfer game is now solved as a SIP described in Equation (5). The initial finite set is populated with 1000 uniformly distributed random numbers in the range ( − 100 , 100 ) . Table 2 shows results for different internal solvers and initial guesses (when required). The algorithm consistently approximates known equilibria, most of which are near the origin because F = x 1 2 + x 2 2 . fseminf also approximates equilibria along the line x 1 = x 2 , but solutions vary based on the initial guess.
Table 2. Numerical SIP results for the heat transfer game.

2.2. Summary of Benchmark Results

The benchmark results show that the proposed approach can successfully solve Nash games, and that the algorithm is successful using either the local or global internal solver. These benchmark games have only two scalar decision variables. For such small problems, differences in CPU time between the local and global solver are insignificant. In fact, there are instances where the global solver is faster. The commercially available fseminf has no convergence guarantees and solution quality is worse than with the proposed approach. CPU times, however, are faster. Upcoming sections focus on dynamic Nash games with hundreds of variables and use the local fmincon for speed. fseminf has dimensional limitations and cannot be used on such large problems.

3. Convex Linear Quadratic Dynamic Games

3.1. Two Player

A discrete-time linear quadratic dynamic game with two players is now presented, solved analytically, and then solved numerically using the SIP formulation. The players’ objectives f i are convex, and SIP solutions are computed with different choices of F: F = 0 and F = 1 2 f 1 + 1 2 f 2 . Finally, a variation of the dynamic game is presented in which the control magnitudes are constrained. The authors are unaware of any analytical solution to this problem, so only SIP solutions are presented. A key advantage of the SIP approach is the ability to solve such constrained problems while leveraging off-the-shelf solvers. The computer used to solve all problems in this section is Computer Two: 64-bit Intel Xeon(R) W-2245 at 3.90 GHz running Ubuntu 20.04.6.
The first player’s control at time index k is u 1 , k . The second player’s control is u 2 , k . Starting from a fixed initial condition x 0 , they drive the following linear discrete-time system:
x k + 1 = A x k + B 1 u 1 , k + B 2 u 2 , k , k = 0 , … , N − 1
The players have the following quadratic objectives. Throughout the paper, S’s are positive semidefinite, Q’s are positive semidefinite, and R’s are positive definite:
f 1 ( u 1 , u 2 ) = 1 2 x N T S 1 , N x N + 1 2 ∑ k = 0 N − 1 x k T Q 1 x k + u 1 , k T R 11 u 1 , k + u 2 , k T R 12 u 2 , k
f 2 ( u 1 , u 2 ) = 1 2 x N T S 2 , N x N + 1 2 ∑ k = 0 N − 1 x k T Q 2 x k + u 1 , k T R 21 u 1 , k + u 2 , k T R 22 u 2 , k
Theoretical solutions can be derived for each player using standard optimal control techniques, such as the sweep method used by Bryson and Ho (1975). The Hamiltonians, transversality, stationarity, and costate equations are the same for both the open- and closed-loop information structure solutions.
  • Player One Optimality Conditions
H 1 k = 1 2 x k T Q 1 x k + u 1 , k T R 1 , 1 u 1 , k + u 2 , k T R 1 , 2 u 2 , k + λ 1 , k + 1 T A x k + B 1 u 1 , k + B 2 u 2 , k
λ 1 , N = S 1 , N x N
u 1 , k = − R 1 , 1 − 1 B 1 T λ 1 , k + 1
λ 1 , k = Q 1 x k + A T λ 1 , k + 1 + ∂ u 2 , k ∂ x k R 1 , 2 u 2 , k + ∂ u 2 , k ∂ x k B 2 T λ 1 , k + 1
  • Player Two Optimality Conditions
H 2 k = 1 2 x k T Q 2 x k + u 1 , k T R 2 , 1 u 1 , k + u 2 , k T R 2 , 2 u 2 , k + λ 2 , k + 1 T A x k + B 1 u 1 , k + B 2 u 2 , k
λ 2 , N = S 2 , N x N
u 2 , k = − R 2 , 2 − 1 B 2 T λ 2 , k + 1
λ 2 , k = Q 2 x k + A T λ 2 , k + 1 + ∂ u 1 , k ∂ x k R 2 , 1 u 1 , k + ∂ u 1 , k ∂ x k B 1 T λ 2 , k + 1
The next step is to use the sweep method by inserting the sweep assumption into the stationarity equations:
λ 1 , k + 1 = S 1 , k + 1 x k + 1 → u 1 , k = − R 1 , 1 − 1 B 1 T S 1 , k + 1 x k + 1
λ 2 , k + 1 = S 2 , k + 1 x k + 1 → u 2 , k = − R 2 , 2 − 1 B 2 T S 2 , k + 1 x k + 1
These stationarity equations are then substituted into the state equation, and after simplifying, an equation for the future states is formed that is dependent on the current states:
x k + 1 = I + B 1 R 1 , 1 − 1 B 1 T S 1 , k + 1 + B 2 R 2 , 2 − 1 B 2 T S 2 , k + 1 − 1 A ︸ A ˜ k + 1 x k = A ˜ k + 1 x k
The state equation is then substituted into the stationarity equations:
u 1 , k = − R 1 , 1 − 1 B 1 T S 1 , k + 1 A ˜ k + 1 ︸ K 1 , k x k = − K 1 , k x k
u 2 , k = − R 2 , 2 − 1 B 2 T S 2 , k + 1 A ˜ k + 1 ︸ K 2 , k x k = − K 2 , k x k

3.1.1. Closed-Loop Information Structure

To derive solutions with a closed-loop information structure, it is assumed that the partial derivative terms in the costate equations are nonzero and can be found by taking the partial derivative of the stationarity equations:
∂ u 1 , k ∂ x k = − K 1 , k T
∂ u 2 , k ∂ x k = − K 2 , k T
The partial derivative, stationarity, and sweep assumption are then substituted into the costate equation to get a recursive formula for S 1 , k :
S 1 , k x k = Q 1 x k + A T S 1 , k + 1 A ˜ k + 1 x k + K 2 , k T R 1 , 2 K 2 , k x k − K 2 , k T B 2 T S 1 , k + 1 A ˜ k + 1 x k
For this equation to be true for all x k , the coefficients of x k must be equal on both sides of the equation:
S 1 , k = Q 1 + A T S 1 , k + 1 A ˜ k + 1 + K 2 , k T R 1 , 2 K 2 , k − K 2 , k T B 2 T S 1 , k + 1 A ˜ k + 1
A similar process can be followed for player two to get a recursive formula for S 2 , k :
S 2 , k = Q 2 + A T S 2 , k + 1 A ˜ k + 1 + K 1 , k T R 2 , 1 K 1 , k − K 1 , k T B 1 T S 2 , k + 1 A ˜ k + 1

3.1.2. Open-Loop Information Structure

To derive solutions with an open-loop information structure, it is assumed that the partial derivative terms in the costate equations equal zero. The sweep assumption is then inserted into the costate equation to get a recursive formula for S 1 , k :
S 1 , k x k = Q 1 x k + A T S 1 , k + 1 A ˜ k + 1 x k
For this equation to be true for all x k , the coefficients of x k must be equal on both sides of the equation:
S 1 , k = Q 1 + A T S 1 , k + 1 A ˜ k + 1
A similar process can be followed for player two to get a recursive formula for S 2 , k :
S 2 , k = Q 2 + A T S 2 , k + 1 A ˜ k + 1

3.1.3. SIP Numerical Results with Unconstrained Control

The algorithm is initialized with a finite set comprised of 100 randomly generated sample trajectories. The internal solver fmincon is initialized with controls set to zero. Run times with Gurobi as the internal solver were excessively long and results are not presented. MATLAB’s fseminf is not suitable for this problem because the infinite variable in fseminf is limited to two dimensions, whereas in this problem, each infinite variable has length N. Table 3 shows the objective values, computation time, and iteration count for the theoretical solutions and SIP runs using two different objectives. Problem data are below:
A = 0.893 0.046 0.033 1.012 , B 1 = − 0.025 0.019 , B 2 = − 0.003 − 0.025
Q 1 = 0.169 − 0.064 − 0.064 0.302 , Q 2 = 0.136 − 0.008 − 0.008 0.439
R 11 = 0.185 , R 12 = 0.060 , R 21 = 0.110 , R 22 = 0.138
S 1 , N = 0 , S 2 , N = 0
The initial condition is x 0 = [ 10 2 ] T . The maximum time index is N = 100 .
Table 3. Numerical results for the two-player standard convex game.
Both SIP solutions differ by less than 1% from the theoretical solution with open-loop information structure. The closed-loop information (blue), open-loop information (yellow), and SIP (red) state trajectories are shown in Figure 1. The control trajectories generated by solving the SIP formulation are shown in Figure 2 as a function of the time index k.
Figure 1. Closed-loop (blue), open-loop (green), and SIP (red) state trajectories for the two-player unconstrained convex game.
Figure 2. Control trajectories for the two-player unconstrained convex game obtained by solving the SIP.

3.1.4. SIP Numerical Results with Constrained Control

Pointwise control constraints are now added to the problem to increase the dynamic game’s complexity and demonstrate the effectiveness of the SIP approach:
| | u 1 , k | | ≤ 3 , | | u 2 , k | | ≤ 3 , k = 0 , … , N − 1
For this constrained problem, the authors are unaware of any theoretical solutions; therefore, only numerical solutions obtained from solving the SIP formulation with F = 1 2 f 1 + 1 2 f 2 and initial guess comprised of zeros are shown. The optimal objective values are f 1 = 259.436 and f 2 = 361.301 , and the iteration count is 3, taking 19.451 s to compute. It is hypothesized that the significant reduction in run time is because the constraints effectively reduced the search space. The state trajectory is shown in Figure 3. The control trajectories are shown in Figure 4. The first player’s control is initially saturated at the lower bound, and the second player’s control is initially saturated at the upper bound.
Figure 3. State trajectory for the two-player constrained convex game obtained by solving the SIP.
Figure 4. Control trajectories for the two-player constrained convex game obtained by solving the SIP.

3.2. Three Player

A similar game with three players is now presented, solved analytically, and then solved numerically using the SIP formulation. The first player’s control at time index k is u 1 , k . The second player’s control is u 2 , k , and the third player’s control is u 3 , k . Starting from a fixed initial condition x 0 , they drive the following linear discrete-time system:
x k + 1 = A x k + B 1 u 1 , k + B 2 u 2 , k + B 3 u 3 , k , k = 0 , … , N − 1
The players have the following quadratic objectives:
f 1 ( u 1 , u 2 , u 3 ) = 1 2 ∑ k = 0 N − 1 x k T Q 1 x k + u 1 , k T R 11 u 1 , k + u 2 , k T R 12 u 2 , k + u 3 , k T R 13 u 3 , k
f 2 ( u 1 , u 2 , u 3 ) = 1 2 ∑ k = 0 N − 1 x k T Q 2 x k + u 1 , k T R 21 u 1 , k + u 2 , k T R 22 u 2 , k + u 3 , k T R 23 u 3 , k
f 3 ( u 1 , u 2 , u 3 ) = 1 2 ∑ k = 0 N − 1 x k T Q 3 x k + u 1 , k T R 31 u 1 , k + u 2 , k T R 32 u 2 , k + u 3 , k T R 33 u 3 , k
Theoretical solutions with open- and closed-loop information structures are obtained using the same techniques as in the two-player case. Numerical SIP solutions are obtained as before by initializing the finite set with 100 randomly generated sample trajectories. Rather than showing results for different choices of F, results are now shown with F = 0 and different initializations of the internal solver: u = 0 means controls were initialized at zero, u = 1.01 u o p t means controls were initialized with random 1% variations away from the theoretical open-loop optimal solution. Table 4 shows the objective values, computation time, and iteration count for the theoretical solutions and SIP solutions. Problem data are below:
A = 0.893 0.046 0.033 1.012 , B 1 = − 0.025 0.019 , B 2 = − 0.003 − 0.025 , B 3 = − 0.012 0.005
Q 1 = 0.169 − 0.064 − 0.064 0.302 , Q 2 = 0.136 − 0.008 − 0.008 0.439 , Q 3 = 0.140 − 0.033 − 0.033 0.375
R 11 = 0.185 , R 12 = 0.060 , R 13 = 0.150 , R 21 = 0.110 , R 22 = 0.138
R 23 = 0.090 , R 31 = 0.125 , R 32 = 0.080 , R 33 = 0.110
S 1 , N = 0 , S 2 , N = 0 , S 3 , N = 0
The initial condition is x 0 = [ 10 2 ] T . The maximum time index is N = 100 .
Table 4. Numerical results for the three-player standard convex game.
SIP solutions again approximate the theoretical solution with open-loop information structure with less than 1% error. As expected, the run time reduces dramatically when the internal solver is initialized with a high-quality guess. The closed-loop information (blue), open-loop information (yellow), and SIP (red) state trajectories are shown in Figure 5. The control trajectories generated by solving the SIP formulation are shown in Figure 6 as a function of the time index k.
Figure 5. Closed-loop (blue), open-loop (green), and SIP (red) state trajectories for the three-player unconstrained convex game.
Figure 6. Control trajectories for the three-player unconstrained convex game obtained by solving the SIP.
Pointwise control constraints are now added to the problem to increase the complexity of the dynamic game and demonstrate the effectiveness of the SIP approach:
| | u 1 , k | | ≤ 3 , | | u 2 , k | | ≤ 3 , | | u 3 , k | | ≤ 3 , k = 0 , … , N − 1
For this constrained problem, the authors are unaware of any theoretical solutions; therefore, only numerical solutions obtained from solving the SIP formulation with F = 0 and initial guess comprised of zeros are shown. The optimal objective values are f 1 = 249.355 , f 2 = 321.853 , and f 3 = 267.913 , and the iteration count is 19, taking 5.159 min to compute. Being the largest problem solved in this paper, the timing results are compared with KKT-based approaches initialized with all zeros. Embedding the KKT conditions of players 2 and 3 as constraints in player 1’s optimization problem and solving as a nonlinear program leads to a situation in which the solver (using SQP or interior-point method) fails to converge. Embedding all players’ KKT conditions into a nonlinear program and using SQP solves in approximately 20 min. Embedding all players’ KKT conditions into a nonlinear program and using an interior-point method solves in approximately 2.5 min.
The state trajectory for the control constrained case is shown in Figure 7. The control trajectories are shown in Figure 8. The first player’s control is initially saturated at the lower bound, the second player’s control is initially saturated at the upper bound, and the third player’s control is initially saturated at the lower bound but gradually increases to zero.
Figure 7. State trajectory for the three-player constrained convex game obtained by solving the SIP.
Figure 8. Control trajectories for the three-player constrained convex game obtained by solving the SIP.

3.3. Summary of Convex Game Results

Results indicate that the proposed approach successfully solves larger-scale dynamic Nash games with hundreds of variables. The proposed approach worked with various choices of SIP objective F and various initialization strategies. As expected, higher-quality initial guesses reduced run time, but even an arbitrary initial guess led to numerical solutions with less than 1% error.

4. Nonconvex Pursuit and Evasion Dynamic Games

In the previous section, convex linear quadratic dynamic games were explored. In this section, games in which one player’s (the evader’s) objective function is nonconvex will be explored. The pursuer aims to minimize the state magnitude; the evader aims to maximize. Two games will be examined. The first is a single pursuer single evader game with running and terminal cost. The second game is a variation of the first and has only a terminal cost. The computer used to solve all problems in this section is Computer Two: 64-bit Intel Xeon(R) W-2245 at 3.90 GHz running Ubuntu 20.04.6.

4.1. Running and Terminal Cost

In this discrete-time game, the dynamics are linear and the objective functions are quadratic. The pursuer’s objective function is convex; while the evader’s is nonconvex. The objective functions are the following:
f p = 1 2 x N S p , N x N + 1 2 ∑ k = 0 N − 1 x k Q p x k + u p , k R p u p , k
f e = − 1 2 x N S e , N x N + 1 2 ∑ k = 0 N − 1 − x k Q e x k + u e , k R e u e , k
Dynamics are described by the following equation:
x k + 1 = A x k + B p u p , k + B e u e , k
Theoretical solutions with open- and closed-loop information structures are obtained as before. Problem data are given below where I is the 2-by-2 identity matrix:
A = I , B p = − B e = 0.03 I
Q p = I , Q e = 0.1 I , R p = I , R e = 2 I
S p , N = S e , N = 0
x 0 = [ − 3 − 1 ] T , N = 100
The SIP algorithm is initialized with a finite set comprised of 100 randomly generated sample trajectories, and the internal solver fmincon initialized with controls set to zero. Four SIP objective functions are considered: F = f p , F = f e , F = ∑ k = 0 N − 1 | | u p , k + u e , k | | 2 , and F = 1 2 f p + 1 2 f e . Table 5 shows the results.
Table 5. Numerical results for the one evader one pursuer game.
For the problem data used, all six solutions are visually indistinguishable. Comparative plots are not shown for this reason. The optimal controls obtained by solving the SIP with F = f e are shown in Figure 9. There are four curves because each player’s control vector is two-dimensional.
Figure 9. Control trajectories for the single pursuer running distance obtained by solving the SIP.

4.2. Terminal Cost

In this final scenario, the objective of the pursuer is to minimize the magnitude of the final state, and the objective of the evader is to maximize the magnitude of the final state. To demonstrate efficacy of the SIP formulation and selected algorithm in the broader field of game theory, this pursuit–evasion game is modeled as a sequential game in which the evader plays first and the pursuer plays second. The dynamics are again linear. The pursuer’s control must belong to the set U p , and the evader’s control must belong to the set U e :
min u e ∈ U e − | | x N | | 2
subj . to min u p ∈ U p | | x N | | 2
subj . to x k + 1 = A x k + B p u p , k + B e u e , k
x 0 given
As was done in Section 2, replacing the pursuer’s minimization with inequalities converts the sequential game into a SIP.
min u e ∈ U e , u e ∈ U e − | | x N | | 2
subj . to | | x N | | 2 ≤ | | χ N | | 2
x k + 1 = A x k + B p u p , k + B e u e , k
χ k + 1 = χ k + B p μ p , k + B e u e , k , ∀ μ p , k ∈ U p
x 0 given
The semi-infinite variables are the μ p , k for k = 0 , … , N − 1 .
For the numerical example, the following data are used:
A = B p = − B e = I , − 1 ≤ u p , k ≤ 1 , − 1 ≤ u e , k ≤ 1 , x 0 = [ 6 6 ] T
The SIP algorithm is initialized with a finite set comprised of 100 sample trajectories, and the internal solver fmincon is initialized with controls set to their maximum allowed value. The algorithm converges to a solution in 0.086 s after two iterations. The magnitude of the state | | x k | | is shown in Figure 10. As expected, the magnitude is constant because the two players have equal control authority and their control matrices are equal and opposite. The best strategy for the evader is to control at the maximum allowed level, and similarly for the pursuer.
Figure 10. Relative distance for the final distance formulation without capture by solving the SIP.
Increasing the pursuer’s control authority to − 2 ≤ u p , k ≤ 2 allows capture to occur, i.e., | | x N | | = 0 . Initialized as before, the SIP algorithm converges in 248.092 s after 486 iterations. The state magnitude as a function of time is shown in Figure 11. The magnitude decreases linearly to zero at the final time. The control trajectories generated by solving the SIP are shown in Figure 12. As expected, the optimal controls remain at the extreme values of their feasible sets.
Figure 11. Relative state distance for the final distance formulation with capture by solving the SIP.
Figure 12. Control trajectories for the final distance constrained with capture obtained by solving the SIP.

4.3. Summary of Nonconvex Game Results

Applied to pursuit–evasion games, the SIP approach successfully solved problems formulated as a Nash game and a sequential game. Within the Nash game, four SIP objectives were considered. While the CPU solve time varied dramatically, all solutions approximated the known theoretical solutions. Within the sequential game, two scenarios were considered wherein the players had equal control authority and unequal control authority. As expected, capture occurred in the latter but not the former.

5. Conclusions

With the goal of numerically solving Nash games, the paper presented: (1) transformation of a Nash game into a numerically solvable SIP; (2) identification of a suitable SIP solver that generates a provably ϵ -optimal Nash solution; and (3) successful demonstration on benchmark problems and larger-scale dynamic games. Compared to common alternative approaches, the approach described herein does not use KKT conditions, and thus avoids the challenges associated with them. The approach does involve solving a sequence of nonconvex programs that must be solved at least locally to ensure convergence to an ϵ -optimal point. This limits the speed and size of problems that are solvable. On the other hand, as nonconvex solvers advance, they can easily be incorporated into the algorithm.
In numerical experiments, various SIP objectives, algorithm initializations, and internal solver initializations were considered and shown to have minimal effects on solution quality but large effects on run time. For problems with known analytical solutions, numerical solutions were within approximately one percent. In one problem, changing SIP objectives caused run times to vary by a factor of 100.
Future work could focus on parallelized implementations for games with a large number of players, particularly a simultaneous solution for the lower-level problem across players. Though feasible initial guesses are not needed, customizing initialization strategies for a given problem may significantly reduce run times. Lastly, further applying optimization best practices is expected to accelerate solve times. The results presented herein were not obtained by fine-tuning every knob. For a given problem, it is expected that performance can be enhanced by customization.

Author Contributions

Conceptualization, M.W.H.; Methodology, T.C.G. and M.W.H.; Software, T.C.G. and L.L.; Validation, M.W.H. and L.L.; Formal analysis, T.C.G. and M.W.H.; Investigation, T.C.G. and M.W.H.; Resources, M.W.H.; Writing—original draft preparation, T.C.G. and M.W.H.; Writing—review & editing, T.C.G., M.W.H. and L.L.; Supervision, M.W.H.; Project administration, M.W.H.; Funding acquisition, M.W.H. All authors have read and agreed to the published version of the manuscript.

Funding

Research was partially funded by Office of Naval Research (ONR) grants N00014-22-1-2131 and N00014-24-1-2209.

Data Availability Statement

All data supporting the findings of this study are available within the paper. Any further inquiries may be directed to the corresponding author.

Conflicts of Interest

The authors declare no conflicts of interest.

References

  1. Başar, T., & Olsder, G. J. (1999). Dynamic noncooperative game theory. SIAM. [Google Scholar]
  2. Ben-Tal, A., & Nemirovski, A. (1999). Robust solutions of uncertain linear programs. Operations Research Letters, 25(1), 1–13. [Google Scholar] [CrossRef] [Scilit]
  3. Berkovitz, L. D. (2002). Convexity and optimization in ℝn. John Wiley and Sons, Inc. [Google Scholar]
  4. Bhattacharjee, B., Green, W. H., & Barton, P. I. (2005a). Interval methods for semi-infinite programs. Computational Optimization and Applications, 30(1), 63–93. [Google Scholar] [CrossRef] [Scilit]
  5. Bhattacharjee, B., Lemonidis, P., Green, W. H., Jr., & Barton, P. I. (2005b). Global solution of semi-infinite programs. Mathematical Programming, 103(2), 283–307. [Google Scholar] [CrossRef] [Scilit]
  6. Bryson, A. E., & Ho, Y.-C. (1975). Applied optimal control. Hemisphere. [Google Scholar]
  7. Cerulli, M., Oustry, A., D’Ambrosio, C., & Liberti, L. (2022). Convergent algorithms for a class of convex semi-infinite programs. SIAM Journal on Optimization, 32(4), 2493–2526. [Google Scholar] [CrossRef] [Scilit]
  8. Chenchene, E., Huang, H., & Qiu, J. (2025). A consensus-based algorithm for non-convex multiplayer games. Journal of Optimization Theory and Applications, 206(2), 45. [Google Scholar] [CrossRef] [Scilit]
  9. Colombo, R. M., Giuzzi, L., & Marcellini, F. (2025). Nash equilibria in traffic networks with multiple populations and origins–destinations. Journal of Optimization Theory and Applications, 206(2), 31. [Google Scholar] [CrossRef] [Scilit]
  10. Djelassi, H., Mitsos, A., & Stein, O. (2021). Recent advances in nonconvex semi-infinite programming: Applications and algorithms. EURO Journal on Computational Optimization, 9, 100006. [Google Scholar] [CrossRef] [Scilit]
  11. Engwerda, J. (2018). Stabilization of an uncertain simple fishery management game. Fisheries Research, 203, 63–73. [Google Scholar] [CrossRef] [Scilit]
  12. Feng, Z., Chen, F., Chen, L., & Yiu, K. F. C. (2020). Optimality analysis of a class of semi-infinite programming problems. Journal of Optimization Theory and Applications, 186(2), 398–411. [Google Scholar] [CrossRef] [Scilit]
  13. Floudas, C. A., & Stein, O. (2008). The adaptive convexification algorithm: A feasible point method for semi-infinite programming. SIAM Journal on Optimization, 18(4), 1187–1208. [Google Scholar] [CrossRef] [Scilit]
  14. Garagic, D., & Cruz, J., Jr. (2003). An approach to fuzzy noncooperative Nash games. Journal of Optimization Theory and Applications, 118(3), 475–491. [Google Scholar] [CrossRef] [Scilit]
  15. Guo, P., Wang, Y., & Li, H. (2013). A semi-tensor product approach to finding Nash equilibria for static games. In Proceedings of the 32nd Chinese control conference (pp. 107–112). IEEE. [Google Scholar]
  16. Gurobi Optimization, LLC. (2024). Gurobi optimizer reference manual, version 11.0.3. Available online: https://www.gurobi.com (accessed on 28 May 2026).
  17. Harris, M. W., & Rose, M. B. (2023). Optimal spacecraft guidance. Utah State University. [Google Scholar]
  18. Hayashi, S., & Wu, S.-Y. (2010). An explicit exchange algorithm for linear semi-infinite programming problems with second-order cone constraints. SIAM Journal on Optimization, 20(3), 1527–1546. [Google Scholar] [CrossRef] [Scilit]
  19. Hettich, R., & Kortanek, K. O. (1993). Semi-infinite programming: Theory, methods, and applications. SIAM Review, 35(3), 380–429. [Google Scholar] [CrossRef] [Scilit]
  20. Huang, Y., & Zhao, J. (2021). Socially optimal Nash equilibrium of switched linear quadratic differential games. In 2021 40th Chinese control conference (CCC) (pp. 1425–1430). IEEE. [Google Scholar] [CrossRef] [Scilit]
  21. Isaacs, R. (1965). Differential games: A mathematical theory with applications to warfare and pursuit, control and optimization. John Wiley and Sons. [Google Scholar]
  22. Krieg, H., Seidel, T., Schwientek, J., & Küfer, K.-H. (2022). Solving continuous set covering problems by means of semi-infinite optimization. Mathematical Methods of Operations Research, 96(1), 39–82. [Google Scholar] [CrossRef] [Scilit]
  23. Lin, T., Jin, C., & Jordan, M. (2020). On gradient descent ascent for nonconvex-concave minimax problems. In Proceedings of the 37th international conference on machine learning (pp. 6083–6093). PMLR. [Google Scholar]
  24. Ling, C., Qi, L. Q., Zhou, G. L., & Wu, S. Y. (2006). Global convergence of a robust smoothing SQP method for semi-infinite programming. Journal of Optimization Theory and Applications, 129(1), 147–164. [Google Scholar] [CrossRef] [Scilit]
  25. López, M., & Still, G. (2007). Semi-infinite programming. European Journal of Operational Research, 180(2), 491–518. [Google Scholar] [CrossRef] [Scilit]
  26. Mitsos, A. (2011). Global optimization of semi-infinite programs via restriction of the right-hand side. Optimization, 60(10–11), 1291–1308. [Google Scholar] [CrossRef] [Scilit]
  27. Mitsos, A., Lemonidis, P., Lee, C. K., & Barton, P. I. (2008). Relaxation-based bounds for semi-infinite programs. SIAM Journal on Optimization, 19(1), 77–113. [Google Scholar] [CrossRef] [Scilit]
  28. Mylvaganam, T., & Astolfi, A. (2015). Control of microgrids using a differential game theoretic framework. In 2015 54th IEEE conference on decision and control (CDC) (pp. 5839–5844). IEEE. [Google Scholar] [CrossRef] [Scilit]
  29. Nouiehed, M., Sanjabi, M., Huang, T., Lee, J. D., & Razaviyayn, M. (2019). Solving a class of non-convex min-max games using iterative first order methods. In Advances in neural information processing systems 32 (NeurIPS 2019). Curran Associates, Inc. [Google Scholar]
  30. Pang, L.-P., & Wu, Q. (2022). A feasible proximal bundle algorithm with convexification for nonsmooth, nonconvex semi-infinite programming. Numerical Algorithms, 90(1), 387–422. [Google Scholar] [CrossRef] [Scilit]
  31. Polak, E., & Stimler, D. (1988). Majorization: A computational complexity reduction technique in control system design. IEEE Transactions on Automatic Control, 33(11), 1010–1021. [Google Scholar] [CrossRef] [Scilit]
  32. Pontani, M., & Conway, B. A. (2009). Numerical solution of the three-dimensional orbital pursuit-evasion game. Journal of Guidance, Control, and Dynamics, 32(2), 474–487. [Google Scholar] [CrossRef] [Scilit]
  33. Ratliff, L. J., Burden, S. A., & Sastry, S. S. (2013). Characterization and computation of local Nash equilibria in continuous games. In 2013 51st annual allerton conference on communication, control, and computing (Allerton) (pp. 917–924). IEEE. [Google Scholar] [CrossRef] [Scilit]
  34. Ratliff, L. J., Burden, S. A., & Sastry, S. S. (2016). On the characterization of local Nash equilibria in continuous games. IEEE Transactions on Automatic Control, 61(8), 2301–2307. [Google Scholar] [CrossRef] [Scilit]
  35. Stein, O. (2006). A semi-infinite approach to design centering. In Optimization with multivalued mappings: Theory, applications, and algorithms (pp. 209–228). Springer US. [Google Scholar] [CrossRef] [Scilit]
  36. Tang, W., & Daoutidis, P. (2023). Optimal design of control-Lyapunov functions by semi-infinite stochastic programming. In 2023 62nd IEEE conference on decision and control (CDC) (pp. 7277–7284). IEEE. [Google Scholar] [CrossRef] [Scilit]
  37. Taylor, P. D., & Jonker, L. B. (1978). Evolutionary stable strategies and game dynamics. Mathematical Biosciences, 40(1), 145–156. [Google Scholar] [CrossRef] [Scilit]
  38. The MathWorks Inc. (2024). MATLAB R2024a (Version 24.1). The MathWorks Inc. Available online: https://www.mathworks.com (accessed on 28 May 2026).
Disclaimer/Publisher’s Note: The statements, opinions and data contained in all publications are solely those of the individual author(s) and contributor(s) and not of MDPI and/or the editor(s). MDPI and/or the editor(s) disclaim responsibility for any injury to people or property resulting from any ideas, methods, instructions or products referred to in the content.

Article Metrics

Citations

Article Access Statistics

Multiple requests from the same IP address are counted as one view.