  The goal of this thesis is to design a learning model predictive controller
(LMPC) that allows multiple agents to race competitively on a predefined race
track in real-time. This thesis addresses two major shortcomings in the already
existing single-agent formulation. Previously, the agent determines a locally
optimal trajectory but does not explore the state space, which may be necessary
for overtaking maneuvers. Additionally, obstacle avoidance for LMPC has been
achieved in the past by using a non-convex terminal set, which increases the
complexity for determining a solution to the optimization problem. The proposed
algorithm for multi-agent racing explores the state space by executing the LMPC
for multiple different initializations, which yields a richer terminal safe
set. Furthermore, a new method for selecting states in the terminal set is
developed, which keeps the convexity for the terminal safe set and allows for
taking suboptimal states.
