<?xml version="1.0" encoding="utf-8"?><feed xmlns="http://www.w3.org/2005/Atom" ><generator uri="https://jekyllrb.com/" version="3.10.0">Jekyll</generator><link href="https://gupta706.github.io/blog/feed.xml" rel="self" type="application/atom+xml" /><link href="https://gupta706.github.io/" rel="alternate" type="text/html" /><updated>2026-07-08T07:43:17-04:00</updated><id>https://gupta706.github.io/blog/feed.xml</id><title type="html">Abhishek Gupta</title><subtitle>Abhishek Gupta is an Associate Professor of Electrical &amp; Computer Engineering at The Ohio State University, working on dynamic optimization, reinforcement learning, game theory, and their applications in AI, robotics, energy, and transportation.</subtitle><author><name>Abhishek Gupta</name><email>gupta.706@osu.edu</email></author><entry><title type="html">Learning at the edge: fast, distributed, and under attack</title><link href="https://gupta706.github.io/blog/2026/07/06/learning-at-the-edge/" rel="alternate" type="text/html" title="Learning at the edge: fast, distributed, and under attack" /><published>2026-07-06T00:00:00-04:00</published><updated>2026-07-06T00:00:00-04:00</updated><id>https://gupta706.github.io/blog/2026/07/06/learning-at-the-edge</id><content type="html" xml:base="https://gupta706.github.io/blog/2026/07/06/learning-at-the-edge/"><![CDATA[<p>For a decade, “training a model” meant one big machine, or a tightly-coupled
cluster, chewing through a clean dataset. That era is ending. Learning is moving
<strong>to the edge</strong> — across phones, vehicles, sensors, and geographically scattered
servers that are slow, intermittently connected, resource-starved, and sometimes
actively malicious. My group has studied what it takes to learn well under those
conditions.</p>

<h2 id="robustness-when-some-participants-lie">Robustness when some participants lie</h2>

<p>In distributed and federated learning, many workers contribute updates and a
server aggregates them. What if some workers are compromised and send poisoned
updates? Naïve averaging fails badly — a few bad actors can wreck the model. In
<em>Byzantine Resilience With Reputation Scores</em> (2022) we defend by having the
system <em>learn whom to trust</em>: workers accrue reputation, and the aggregate
discounts the untrustworthy. Robustness becomes something the system infers over
time, not a fixed assumption.</p>

<h2 id="learning-despite-lag">Learning despite lag</h2>

<p>Distributed training is also plagued by <strong>asynchrony</strong> — workers finish at
different times, so updates arrive stale. It’s tempting to think this must hurt
generalization. In <em>Distributed SGD Generalizes Well Under Asynchrony</em> (2019) we
showed the opposite can hold: done right, asynchronous training still generalizes,
which is what makes large-scale distributed learning practical.</p>

<h2 id="bandits-learning-while-you-act">Bandits: learning while you act</h2>

<p>At the edge you often can’t separate “collect data” from “make decisions” — you
must learn <em>while acting</em>, paying for every mistake. That’s the <strong>bandit</strong>
setting, and it shows up everywhere once you look:</p>

<ul>
  <li><em>Maximizing success rate of payment routing using non-stationary bandits</em>
(2023) — routing each transaction to succeed, in a world whose statistics
drift.</li>
  <li><em>Interference constrained beam alignment for time-varying channels via
kernelized bandits</em> (2022) — pointing a wireless beam correctly as the channel
changes.</li>
  <li><em>Weighted Gaussian process bandits for non-stationary environments</em> (2022) — the
common thread: learn fast, but <strong>forget</strong> at the right rate when the world
moves.</li>
</ul>

<p>That last point matters. At the edge, the environment is rarely stationary, so a
good learner has to weigh fresh evidence against stale.</p>

<h2 id="why-it-matters">Why it matters</h2>

<p>The systems we increasingly rely on — recommendation, payments, wireless,
federated models trained on our devices — are distributed, adversarial, and
non-stationary by nature. Algorithms that assume clean, centralized, i.i.d. data
quietly fail in exactly the places they’re deployed. Designing for
untrustworthiness, lag, and drift is not hardening an ideal system; it’s building
the <em>real</em> one.</p>

<h2 id="what-it-means-going-forward">What it means going forward</h2>

<p>Three forces make edge learning central to the next decade:</p>

<ul>
  <li><strong>Privacy and data gravity</strong> push training toward the data — onto devices —
rather than hauling data to a central store.</li>
  <li><strong>Adversaries are now assumed</strong>, not hypothetical; poisoning and manipulation
are part of the threat model for any open learning system.</li>
  <li><strong>Non-stationarity is the norm</strong> as models learn continuously from a world that
won’t hold still.</li>
</ul>

<p>The through-line across all of this — and across much of my group’s theory, from
<a href="/blog/2026/05/02/iterated-random-operators/">iterated random operators</a>
to the convergence guarantees underneath these algorithms — is asking not just
<em>does it work?</em> but <em>does it still work when the setting is distributed,
adversarial, and drifting?</em> Increasingly, that is the only question that matters.</p>

<hr />

<p><strong>Papers behind this post:</strong> <em>Byzantine Resilience With Reputation Scores</em> (2022) ·
<em>Distributed SGD Generalizes Well Under Asynchrony</em> (2019) · <em>Maximizing success
rate of payment routing using non-stationary bandits</em> (2023) · <em>Interference
constrained beam alignment … via kernelized bandits</em> (2022) · <em>Weighted Gaussian
process bandits for non-stationary environments</em> (2022). See the
<a href="/publications/">Publications</a> page.</p>]]></content><author><name>Abhishek Gupta</name></author><category term="reinforcement-learning" /><category term="federated-learning" /><category term="bandits" /><category term="security" /><summary type="html"><![CDATA[Learning is leaving the data center — spreading across phones, sensors, and servers that are slow, unreliable, and sometimes hostile. That changes what a good algorithm has to survive.]]></summary></entry><entry><title type="html">A new home on the web</title><link href="https://gupta706.github.io/blog/2026/06/20/a-new-home-on-the-web/" rel="alternate" type="text/html" title="A new home on the web" /><published>2026-06-20T00:00:00-04:00</published><updated>2026-06-20T00:00:00-04:00</updated><id>https://gupta706.github.io/blog/2026/06/20/a-new-home-on-the-web</id><content type="html" xml:base="https://gupta706.github.io/blog/2026/06/20/a-new-home-on-the-web/"><![CDATA[<p>Welcome to the new site. Beyond the fresh, Ohio State–branded look, the real
upgrade is under the hood: the whole site is now generated from a handful of
plain-text files.</p>

<ul>
  <li><strong>Publications maintain themselves.</strong> I add a BibTeX entry to a <code class="language-plaintext highlighter-rouge">.bib</code> file,
push, and the <a href="/publications/">Publications</a> page
rebuilds — grouped by year, split into journal and conference work, with links
and copy-paste BibTeX.</li>
  <li><strong>Blog posts are just Markdown.</strong> Like this one.</li>
  <li><strong>Projects, talks, courses, and students</strong> each live in one editable file.</li>
</ul>

<p>If you’re a student curious about the group’s work, the
<a href="/research/">Research</a> and
<a href="/projects/">Projects</a> pages are the best place to start.
More notes to come.</p>]]></content><author><name>Abhishek Gupta</name></author><category term="meta" /><summary type="html"><![CDATA[The site has a fresh look — and, more importantly, a workflow where adding a paper is a one-line change.]]></summary></entry><entry><title type="html">Which games can we actually solve?</title><link href="https://gupta706.github.io/blog/2026/06/01/which-games-can-we-actually-solve/" rel="alternate" type="text/html" title="Which games can we actually solve?" /><published>2026-06-01T00:00:00-04:00</published><updated>2026-06-01T00:00:00-04:00</updated><id>https://gupta706.github.io/blog/2026/06/01/which-games-can-we-actually-solve</id><content type="html" xml:base="https://gupta706.github.io/blog/2026/06/01/which-games-can-we-actually-solve/"><![CDATA[<p>Game theory tells us equilibria <em>exist</em>. Computer science adds an unsettling
footnote: <strong>finding</strong> one can be intractable. Computing a Nash equilibrium of a
general two-player game is PPAD-complete — strong evidence that no efficient
algorithm exists in the worst case. That gap between “exists” and “can be
computed” is where a lot of my group’s work lives, because it decides whether
game theory is a practical tool or just a beautiful theory.</p>

<h2 id="the-frontier-runs-along-rank">The frontier runs along “rank”</h2>

<p>For bimatrix games, tractability tracks a quantity called the <strong>rank</strong> of the
game (roughly, the rank of the sum of the two payoff matrices). Rank-0 (zero-sum)
and rank-1 games are solvable with linear programming; from rank-2 upward, the
problem is PPAD-hard. So the natural question is: <em>how many games are secretly
easy?</em></p>

<p>Our answer is <strong>strategic equivalence</strong>. Two games are strategically equivalent
if they have the same best-response structure — and therefore the same equilibria
— even if their payoff matrices look different. In <em>Rank reduction in bimatrix
games</em> (2023) and <em>A fast algorithm to reduce $2\times n$ bimatrix games to
rank-1 games</em> (2019), we show that many apparently hard, high-rank games are
strategically equivalent to a rank-1 game, and can therefore be <strong>solved with a
linear program</strong>. This effectively enlarges the class of games we know how to
solve efficiently.</p>

<p>When exact solutions are out of reach, approximation takes over: <em>Two Algorithms
for Computing Exact and Approximate Nash Equilibria in Bimatrix Games</em> (2021)
gives practical methods, built on the idea of a <strong>best-response bijection</strong>.</p>

<h2 id="information-changes-the-game">Information changes the game</h2>

<p>Equilibria depend not just on payoffs but on <em>who knows what</em>. In <em>Information
structures and values in zero-sum stochastic games</em> (2017) we study how the value
of a game shifts as you change the players’ information — a bridge between the
game-theory and team-theory threads of my work.</p>

<h2 id="why-it-matters">Why it matters</h2>

<p>If you cannot compute an equilibrium, you cannot use it — to predict behavior, to
design a mechanism, or to train an agent. Mapping the boundary between tractable
and intractable games, and finding transformations that move a problem to the
easy side of that boundary, is what makes game theory <em>operational</em>.</p>

<h2 id="what-it-means-for-ai">What it means for AI</h2>

<p>Multi-agent systems are having a moment. RL agents are trained against each other;
autonomous systems negotiate for bandwidth, road space, and compute; LLM agents
increasingly interact strategically. Under the hood, all of this is <strong>equilibrium
computation</strong> — and the PPAD wall is real. The practical path forward is exactly
the one this work explores: identify the structure that makes <em>your</em> game
tractable, or transform it until that structure appears. As we build economies of
interacting AI agents, knowing which games we can actually solve stops being an
academic curiosity and becomes an engineering constraint.</p>

<hr />

<p><strong>Papers behind this post:</strong> <em>Rank reduction in bimatrix games</em> (2023) · <em>A fast
algorithm to reduce $2\times n$ bimatrix games to rank-1 games</em> (2019) · <em>Two
Algorithms for Computing Exact and Approximate Nash Equilibria in Bimatrix Games</em>
(2021) · <em>Information structures and values in zero-sum stochastic games</em> (2017).
See them on the <a href="/publications/">Publications</a> page.</p>]]></content><author><name>Abhishek Gupta</name></author><category term="game-theory" /><category term="computation" /><category term="optimization" /><summary type="html"><![CDATA[Finding a Nash equilibrium is, in general, believed to be intractable. So the useful question is: which games are the easy ones — and can we make a hard game look easy?]]></summary></entry><entry><title type="html">Iterated random operators: a lens on learning algorithms</title><link href="https://gupta706.github.io/blog/2026/05/02/iterated-random-operators/" rel="alternate" type="text/html" title="Iterated random operators: a lens on learning algorithms" /><published>2026-05-02T00:00:00-04:00</published><updated>2026-05-02T00:00:00-04:00</updated><id>https://gupta706.github.io/blog/2026/05/02/iterated-random-operators</id><content type="html" xml:base="https://gupta706.github.io/blog/2026/05/02/iterated-random-operators/"><![CDATA[<p>A surprising number of algorithms in machine learning and reinforcement learning
have the same skeleton: start somewhere, then apply a <strong>random operator</strong> again
and again. Stochastic approximation, empirical value iteration, and many
sampling-based dynamic programming schemes all fit this mold.</p>

<p>Write the update as</p>

\[x_{k+1} = T_k(x_k),\]

<p>where each $T_k$ is a random operator drawn from some distribution, acting on a
point $x_k$ in a Polish space $\mathcal{X}$. In the ideal, noiseless world we
would iterate a single deterministic contraction $T$ with a unique fixed point
$x^\star$. The question is whether the <em>random</em> iteration stays close to that
ideal as we collect more data.</p>

<h3 id="why-the-standard-toolkit-isnt-enough">Why the standard toolkit isn’t enough</h3>

<p>The usual Banach fixed-point argument wants a metric under which $T$ contracts.
But for several algorithms of interest, the natural notion of “getting closer” is
measured by a <strong>divergence</strong>, not a metric — it need not be symmetric and need
not satisfy the triangle inequality. To handle this we introduced a
<em>Wasserstein divergence</em> between probability measures over $\mathcal{X}$ and gave
sufficient conditions under which contraction under this divergence still yields
a limit.</p>

<h3 id="the-payoff">The payoff</h3>

<p>With that machinery, you can treat the algorithm’s iterates as a Markov chain
and ask about its limiting behavior directly:</p>

<ol>
  <li>Does the distribution of $x_k$ converge as $k \to \infty$?</li>
  <li>Does that limit concentrate near the true fixed point $x^\star$ as the sample
budget grows?</li>
</ol>

<p>Answering these gives <strong>consistency</strong> results for a whole family of algorithms
at once, including settings with continuous state and action spaces where
classical guarantees are hard to come by.</p>

<p>If you want the details, the relevant papers are on the
<a href="/publications/">Publications</a> page — look for
<em>probabilistic contraction analysis of iterated random operators</em> and
<em>convergence of recursive stochastic algorithms using Wasserstein divergence</em>.</p>]]></content><author><name>Abhishek Gupta</name></author><category term="research" /><category term="reinforcement-learning" /><category term="probability" /><summary type="html"><![CDATA[Many learning and RL algorithms are just a random operator applied over and over. That viewpoint buys you clean convergence guarantees.]]></summary></entry><entry><title type="html">Optimizing in real time: don’t re-solve, warm-start</title><link href="https://gupta706.github.io/blog/2026/04/13/optimizing-in-real-time/" rel="alternate" type="text/html" title="Optimizing in real time: don’t re-solve, warm-start" /><published>2026-04-13T00:00:00-04:00</published><updated>2026-04-13T00:00:00-04:00</updated><id>https://gupta706.github.io/blog/2026/04/13/optimizing-in-real-time</id><content type="html" xml:base="https://gupta706.github.io/blog/2026/04/13/optimizing-in-real-time/"><![CDATA[<p>There is a gap between optimization on paper and optimization in a running system.
On paper, you solve the problem once. In a car, a factory, or a power system, the
problem is <em>always slightly changing</em> — a new constraint, a shifted parameter, an
updated forecast — and you have milliseconds to react. Re-solving a hard dynamic
program from scratch, over and over, is a non-starter. So my group has worked on a
different discipline: <strong>perturbation theory for dynamic programs</strong> — how to update
a solution instead of recomputing it.</p>

<h2 id="warm-starting-perturbed-programs">Warm-starting perturbed programs</h2>

<p>The core idea: if you’ve already solved a dynamic program, and the new one is a
small perturbation of it, your old solution is a great starting point. In <em>An
Algorithm to Warm Start Perturbed (WASP) Constrained Dynamic Programs</em> (2022) we
make that precise for <em>constrained</em> problems, and in <em>A Computationally Efficient
Algorithm for Perturbed Dynamic Programs (A-PDP)</em> (2022) we push the efficiency
further. Informally, if the optimal value function is $V^\star$ and the problem
shifts by a small $\varepsilon$, you want the cost of finding the new
$V^\star_\varepsilon$ to scale with $\varepsilon$ — <strong>not</strong> with the cost of
solving from scratch. That is the difference between an algorithm that runs
on-board and one that doesn’t.</p>

<h2 id="when-small-hides-a-hard-problem">When “small” hides a hard problem</h2>

<p>Some systems have dynamics on two very different timescales — fast electrical
transients riding under slow mechanical motion. Naïvely these <em>singularly
perturbed</em> problems are stiff and hard. In <em>Discrete-time finite-horizon
optimization of singularly perturbed nonlinear control systems with state-action
constraints</em> (2023) we exploit that timescale separation instead of fighting it,
turning one intractable problem into two tractable ones.</p>

<h2 id="from-theory-to-the-dashboard">From theory to the dashboard</h2>

<p>This is not abstract. The real-time eco-driving controller I’ve written about
elsewhere — <em>Real-Time Ecodriving Control … Using Approximate Dynamic Programming</em>
(2022) — is exactly this philosophy in a vehicle: the driving problem changes
every second as traffic evolves, and warm-starting is what lets the optimizer keep
up on embedded hardware.</p>

<h2 id="why-it-matters">Why it matters</h2>

<p>The bottleneck in deploying optimal control is rarely the math of the optimum — it
is the <strong>compute budget</strong> for re-deriving it as conditions change. Perturbation
methods attack that bottleneck directly, and they do it with guarantees on how the
solution changes, not just heuristics.</p>

<h2 id="what-it-means-as-the-world-gets-more-live">What it means as the world gets more “live”</h2>

<p>Everything is trending toward continuous, real-time optimization under changing
conditions:</p>

<ul>
  <li><strong>Digital twins</strong> re-optimize a physical asset as its live sensor data updates —
a perpetual sequence of perturbed problems.</li>
  <li><strong>Edge and embedded AI</strong> must re-plan locally, without a round trip to the
cloud, on tiny power budgets.</li>
  <li><strong>Model predictive control</strong> re-solves an optimization at every step by design;
warm-starting is what makes that loop fast enough to close.</li>
</ul>

<p>The quiet lesson is that in a live system, the valuable skill isn’t solving the
problem — it’s <strong>cheaply updating</strong> the solution you already have.</p>

<hr />

<p><strong>Papers behind this post:</strong> <em>An Algorithm to Warm Start Perturbed (WASP)
Constrained Dynamic Programs</em> (2022) · <em>A Computationally Efficient Algorithm for
Perturbed Dynamic Programs (A-PDP)</em> (2022) · <em>Discrete-time finite-horizon
optimization of singularly perturbed nonlinear control systems</em> (2023) ·
<em>Real-Time Ecodriving Control … Using Approximate Dynamic Programming</em> (2022). See
the <a href="/publications/">Publications</a> page.</p>]]></content><author><name>Abhishek Gupta</name></author><category term="optimization" /><category term="dynamic-programming" /><category term="control" /><summary type="html"><![CDATA[The world changes faster than you can re-solve a hard optimization from scratch. Perturbation theory says: reuse the solution you already have.]]></summary></entry><entry><title type="html">What is a fair price for a ride?</title><link href="https://gupta706.github.io/blog/2026/03/16/what-is-a-fair-price-for-a-ride/" rel="alternate" type="text/html" title="What is a fair price for a ride?" /><published>2026-03-16T00:00:00-04:00</published><updated>2026-03-16T00:00:00-04:00</updated><id>https://gupta706.github.io/blog/2026/03/16/what-is-a-fair-price-for-a-ride</id><content type="html" xml:base="https://gupta706.github.io/blog/2026/03/16/what-is-a-fair-price-for-a-ride/"><![CDATA[<p>Every time you open a ride app, an algorithm sets a price, matches you to a
driver, and decides where idle cars should wait. Those decisions, repeated
millions of times a day, quietly shape a city’s mobility — and a lot of people’s
incomes. My group has spent years asking what it means for that machinery to be
not just <em>efficient</em> but <strong>fair</strong>, and whether fairness can be written down
precisely enough to optimize.</p>

<h2 id="fair-pricing-made-precise">Fair pricing, made precise</h2>

<p>Demand in a city is lopsided: some neighborhoods and some hours generate far more
trips, and travel times are asymmetric. Naïve dynamic pricing can entrench those
asymmetries. In <em>Fair Pricing of Ridehailing Services with Asymmetric Demand and
Travel Time</em> (2021) we formalize fairness constraints and derive prices that
respect them, showing you don’t have to throw away efficiency to get there. The
point is that “fair” stops being a slogan and becomes a <strong>constraint you can
design around</strong>.</p>

<h2 id="getting-operators-to-cooperate">Getting operators to cooperate</h2>

<p>Seamless mobility usually requires several operators — a rideshare company, a
transit agency, a bike network — to cooperate, and each is out for itself. In
<em>Incentive design and profit sharing in multi-modal transportation networks</em>
(2022) we design the incentives and profit-sharing rules that make cooperation
each operator’s best move, so a rider can go door-to-door across modes that would
otherwise never coordinate.</p>

<h2 id="keeping-the-fleet-where-its-needed">Keeping the fleet where it’s needed</h2>

<p>Cars drift to where the last trips ended, not where the next ones will start. In
<em>Multi-objective vehicle rebalancing for ridehailing systems using a
reinforcement learning approach</em> (2022) we learn where to reposition idle
vehicles, balancing competing objectives — rider wait time, driver earnings,
efficiency. And in <em>Fleet sizing and charger allocation in electric vehicle
sharing systems</em> (2022) we plan the harder, slower decisions: how many electric
vehicles, and where to put the chargers.</p>

<h2 id="why-it-matters">Why it matters</h2>

<p>Mobility is being rewritten by software, and the rules encoded in that software
have real distributional consequences — for riders in underserved areas and for
drivers whose livelihoods depend on the matching and pricing logic. Making
fairness a <em>formal</em> objective, rather than an afterthought, is how you keep those
consequences from being accidental.</p>

<h2 id="what-it-means-for-the-cities-were-building">What it means for the cities we’re building</h2>

<p>Three shifts make this work more relevant, not less:</p>

<ul>
  <li><strong>Electrification</strong> ties mobility to the grid — fleets become flexible demand,
and charging logistics become part of the pricing problem.</li>
  <li><strong>Multimodal “mobility-as-a-service”</strong> only works if independent operators are
incentivized to interoperate; that is a mechanism-design problem, not an app
feature.</li>
  <li><strong>The gig economy</strong> has made algorithmic fairness a matter of livelihoods, which
raises the stakes on getting the objective right.</li>
</ul>

<p>As transportation, energy, and labor markets fuse into one algorithmic system,
the question “what is a fair price for a ride?” turns out to be a question about
what kind of city we want the algorithms to build.</p>

<hr />

<p><strong>Papers behind this post:</strong> <em>Fair Pricing of Ridehailing Services with Asymmetric
Demand and Travel Time</em> (2021) · <em>Incentive design and profit sharing in
multi-modal transportation networks</em> (2022) · <em>Multi-objective vehicle rebalancing
for ridehailing system using a reinforcement learning approach</em> (2022) · <em>Fleet
sizing and charger allocation in electric vehicle sharing systems</em> (2022). See
them on the <a href="/publications/">Publications</a> page and the
<a href="/projects/transportation-markets/">transportation-markets project</a>.</p>]]></content><author><name>Abhishek Gupta</name></author><category term="transportation" /><category term="pricing" /><category term="game-theory" /><category term="reinforcement-learning" /><summary type="html"><![CDATA[Ridehailing turned pricing into an algorithm that runs millions of times a day. Whose interests does that algorithm serve — and can 'fair' be made precise?]]></summary></entry><entry><title type="html">Deciding together without seeing everything</title><link href="https://gupta706.github.io/blog/2026/02/16/deciding-together-without-seeing-everything/" rel="alternate" type="text/html" title="Deciding together without seeing everything" /><published>2026-02-16T00:00:00-05:00</published><updated>2026-02-16T00:00:00-05:00</updated><id>https://gupta706.github.io/blog/2026/02/16/deciding-together-without-seeing-everything</id><content type="html" xml:base="https://gupta706.github.io/blog/2026/02/16/deciding-together-without-seeing-everything/"><![CDATA[<p>Picture a fleet of drones, a network of sensors, or a set of traders in a market.
Each one observes only a sliver of the world and must act on that sliver — yet
their actions combine into a shared outcome. This is the world of <strong>decentralized
decision-making</strong>, and it hides a question that is subtle even before you ask for
a good strategy: <em>does an optimal joint strategy exist at all?</em> Infinite spaces
and information split across agents can make the answer surprisingly delicate.</p>

<h2 id="existence-first-then-optimization">Existence first, then optimization</h2>

<p>A recurring thread of my work establishes when team-optimal strategies exist. In
<em>On the existence of optimal policies for a class of static and sequential
dynamic teams</em> (2015) and <em>Existence of Team-Optimal Solutions in Static Teams
with Common Information</em> (2020), we develop a <strong>topology-of-information</strong> approach:
treat each agent’s strategy as shaping a probability measure and study continuity
in the right topology. That machinery rests on a genuinely foundational result —
<em>The topology of information on the space of probability measures over Polish
spaces</em> (2014) — and extends to <em>Teams with Countable Observation Spaces</em> (2021).
Existence sounds abstract, but without it, “find the optimal decentralized policy”
is not even a well-posed request.</p>

<h2 id="common-information-taming-asymmetry">Common information: taming asymmetry</h2>

<p>When agents know <em>different</em> things, equilibria are hard to compute. The <strong>common
information approach</strong> cuts through this: reformulate the problem around what
everyone knows in common, and a coordinator’s problem emerges that is tractable.
We used it to characterize <em>Common information based Markov perfect equilibria</em>
for linear-Gaussian games (2014) and for finite games (2014), and to design
incentives in <em>Dynamic incentive design in multi-stage linear-Gaussian games with
asymmetric information</em> (2014).</p>

<h2 id="communication-is-not-free">Communication is not free</h2>

<p>If agents can talk, which links actually matter? In <em>Sketching for Elimination of
Communication Links in LQG Teams</em> (2021) and <em>Communication Link Elimination in
Static LQG Teams</em> (2018) we ask when a communication channel can be removed with
negligible loss — a direct handle on the trade-off between <strong>coordination and
bandwidth</strong>.</p>

<h2 id="why-it-matters">Why it matters</h2>

<p>Any system where autonomy is distributed lives here: you cannot centralize every
decision, so agents must act locally toward a global goal. The results say <em>when</em>
that is possible, <em>how</em> to structure the reasoning (around common information),
and <em>which</em> communication is worth its cost.</p>

<h2 id="what-it-means-for-multi-agent-ai">What it means for multi-agent AI</h2>

<p>We are building multi-agent systems at speed — swarms of robots, fleets of
autonomous vehicles, and now <strong>teams of LLM-based agents</strong> collaborating on tasks.
Every one of them faces the team-theory questions in disguise:</p>

<ul>
  <li>What is the <em>common knowledge</em> the agents can coordinate around, and what stays
private?</li>
  <li>How much <em>communication</em> is actually necessary, versus expensive overhead?</li>
  <li>Does a coherent joint strategy even <em>exist</em> under their information structure?</li>
</ul>

<p>Decades before “agentic AI” was a phrase, decentralized control was working out
its foundations. As we hand more collective decisions to machines that each see
only part of the picture, that foundation is exactly what keeps the picture
coherent.</p>

<hr />

<p><strong>Papers behind this post:</strong> <em>On the existence of optimal policies for a class of
static and sequential dynamic teams</em> (2015) · <em>Existence of Team-Optimal Solutions
in Static Teams with Common Information</em> (2020) · <em>Existence of Team-Optimal
Strategies in Teams with Countable Observation Spaces</em> (2021) · <em>Common
information based Markov perfect equilibria for linear-Gaussian games</em> (2014) ·
<em>The topology of information on the space of probability measures over Polish
spaces</em> (2014) · <em>Sketching for Elimination of Communication Links in LQG Teams</em>
(2021). See the <a href="/publications/">Publications</a> page.</p>]]></content><author><name>Abhishek Gupta</name></author><category term="team-theory" /><category term="decentralized-control" /><category term="game-theory" /><category term="optimization" /><summary type="html"><![CDATA[When many agents share a goal but each sees only part of the world, when does an optimal joint strategy even exist? Team theory answers that — and it's quietly the math behind multi-agent AI.]]></summary></entry><entry><title type="html">Reinforcement learning where the state space never ends</title><link href="https://gupta706.github.io/blog/2026/01/19/reinforcement-learning-in-the-real-world/" rel="alternate" type="text/html" title="Reinforcement learning where the state space never ends" /><published>2026-01-19T00:00:00-05:00</published><updated>2026-01-19T00:00:00-05:00</updated><id>https://gupta706.github.io/blog/2026/01/19/reinforcement-learning-in-the-real-world</id><content type="html" xml:base="https://gupta706.github.io/blog/2026/01/19/reinforcement-learning-in-the-real-world/"><![CDATA[<p>Reinforcement learning looks solved in the textbook: enumerate the states, fill
in a table, iterate. The real world is not a table. Its state and action spaces
are <strong>continuous</strong>, the set of legal actions <em>depends on where you are</em>, you often
can’t experiment freely, and “optimal on average” is not good enough when the
downside is catastrophic. A lot of my group’s theory work is about closing that
gap between the clean algorithm and the messy problem.</p>

<h2 id="continuous-spaces-and-state-dependent-actions">Continuous spaces and state-dependent actions</h2>

<p>When states and actions form a continuum, value iteration becomes an
approximation problem. In <em>Fitted Value Iteration in Continuous MDPs With State
Dependent Action Sets</em> (2021) we handle a wrinkle most treatments ignore: the
feasible actions change with the state — a car near a wall simply cannot turn as
hard. Earlier, <em>An empirical relative value learning algorithm for
non-parametric MDPs with continuous state space</em> (2019) and <em>An empirical
algorithm for relative value iteration for average-cost MDPs</em> (2015) built
<em>empirical dynamic programming</em>: replace exact expectations with samples and ask
when the sampled algorithm still converges to the truth as data grows.</p>

<h2 id="learning-from-data-you-already-have">Learning from data you already have</h2>

<p>Increasingly you can’t explore — you have a fixed log of past behavior and must
learn a good policy from it. That’s <strong>offline RL</strong>, and it’s fragile: the policy
wants to try actions the data never covered. In <em>Finite sample analysis of a
minmax variant of offline reinforcement learning for general MDPs</em> (2022) we gave
finite-sample guarantees — not “it worked,” but bounds on how much data buys how
much performance.</p>

<h2 id="constraints-and-risk">Constraints and risk</h2>

<p>Two more gaps between theory and deployment:</p>

<ul>
  <li><strong>Constraints.</strong> Real agents must satisfy budgets, safety limits, service
levels. <em>Learning in Constrained Markov Decision Processes</em> (2022) studies
learning when the problem itself is a constrained MDP.</li>
  <li>
    <p><strong>Risk.</strong> Optimizing the <em>average</em> can be reckless. <em>Robustness to Modeling
Errors in Risk-Sensitive Markov Decision Problems with Markov Risk Measures</em>
(2025) asks for policies that stay good even when your model is a little wrong
and you care about the tail, not the mean: roughly,</p>

\[\min_\pi \; \rho\big(\text{cost}\big) \quad\text{subject to model error},\]

    <p>where $\rho$ is a risk measure rather than an expectation.</p>
  </li>
</ul>

<h2 id="why-it-matters">Why it matters</h2>

<p>These are the exact failure modes that separate a benchmark score from a
deployable system. Continuous dynamics, offline data, hard constraints, and tail
risk are not edge cases — they are what “the real world” <em>means</em> for a
decision-making agent.</p>

<h2 id="what-it-means-for-modern-ai">What it means for modern AI</h2>

<p>The most consequential RL today trains large language models from <strong>logged human
feedback</strong> — an offline RL problem with an enormous action space, wrapped in
safety constraints, where average-case tuning can hide rare but serious failures.
The questions we’ve studied in control-theoretic clothing — <em>when does learning
from fixed data generalize? how do you respect constraints while learning? how do
you guard against model error and the tail?</em> — are precisely the questions facing
anyone deploying a learning agent that acts in the world. The vocabulary differs;
the mathematics is the same.</p>

<hr />

<p><strong>Papers behind this post:</strong> <em>Fitted Value Iteration in Continuous MDPs With State
Dependent Action Sets</em> (2021) · <em>Finite sample analysis of minmax variant of
offline reinforcement learning for general MDPs</em> (2022) · <em>Learning in Constrained
Markov Decision Processes</em> (2022) · <em>Robustness to Modeling Errors in
Risk-Sensitive Markov Decision Problems</em> (2025) · <em>An empirical relative value
learning algorithm for non-parametric MDPs</em> (2019). See the
<a href="/publications/">Publications</a> page.</p>]]></content><author><name>Abhishek Gupta</name></author><category term="reinforcement-learning" /><category term="theory" /><category term="optimization" /><summary type="html"><![CDATA[Textbook RL lives in small, tidy worlds. The real one is continuous, constrained, and only lets you learn from data you already collected. Here's some of what it takes to bridge that gap.]]></summary></entry><entry><title type="html">Designing markets for a grid that runs on weather</title><link href="https://gupta706.github.io/blog/2025/12/08/markets-for-a-renewable-grid/" rel="alternate" type="text/html" title="Designing markets for a grid that runs on weather" /><published>2025-12-08T00:00:00-05:00</published><updated>2025-12-08T00:00:00-05:00</updated><id>https://gupta706.github.io/blog/2025/12/08/markets-for-a-renewable-grid</id><content type="html" xml:base="https://gupta706.github.io/blog/2025/12/08/markets-for-a-renewable-grid/"><![CDATA[<p>The electricity market is one of the most consequential mechanisms humans have
ever built, and it was designed for a world that is disappearing. Its assumptions
— that generation is <em>dispatchable</em>, that you can promise a megawatt and deliver
it — hold for coal, gas, and nuclear. They do not hold for wind and solar, whose
output answers to the weather. A grid with deep renewable penetration needs a
market that <strong>prices uncertainty</strong>, not one that pretends it away.</p>

<h2 id="the-idea-pay-for-what-you-can-actually-deliver">The idea: pay for what you can actually deliver</h2>

<p>Our starting point was auction design. In <em>Auctioning electricity under deep
renewable integration using a penalty for shortfall</em> (2019) and its predecessor
<em>Selling Renewable Generation with a Penalty for Shortfall</em> (2018), a renewable
generator sells energy it <em>might</em> produce, backed by a penalty if it falls short.
Using stochastic programming and auction theory, we found something clean: the
optimal contracted quantity is a function of the <strong>inverse CDF</strong> of the renewable
supply,</p>

\[q^\star = F^{-1}(\cdot),\]

<p>and pairing that allocation with a Myerson-style payment rule makes <strong>truthful
bidding</strong> the buyers’ best strategy. In other words, you can design the market so
that honesty is optimal even when supply is random.</p>

<p>The theme continues in <em>Equilibria in two-stage electricity markets</em> (2015) and
<em>Dynamic Economic Dispatch … under Ramping Constraints and Uncertain Demand</em>
(2018), which study how prices and dispatch evolve when both supply and demand
are uncertain and generators can’t ramp instantly.</p>

<h2 id="demand-can-flex-too">Demand can flex, too</h2>

<p>The other half of the answer is that demand no longer has to be passive.
Electric-vehicle charging is a huge, <em>flexible</em> load — it mostly cares that the
car is charged by morning, not about the exact hour. In <em>Scheduling EV charging
having demand with different reliability constraints</em> (2023) and <em>Preemptive
scheduling of EV charging for providing demand response services</em> (2023), we
schedule that flexibility to soak up renewable energy when it’s abundant, turning
millions of cars into a grid-stabilizing resource. The idea goes back to
<em>Scheduling, pricing, and efficiency of non-preemptive flexible loads</em> (2015).</p>

<h2 id="why-it-matters">Why it matters</h2>

<p>Decarbonizing the grid is not only a hardware problem — it’s a <strong>market design</strong>
problem. Panels and turbines are necessary; mechanisms that make variable supply
and flexible demand meet efficiently are what make them usable at scale. Good
mechanism design here is worth gigawatts.</p>

<h2 id="what-it-means-going-forward">What it means going forward</h2>

<p>As renewables become the cheapest generation on Earth, the binding constraint
shifts from cost to <strong>coordination</strong>: matching stochastic supply with shiftable
demand, moment to moment, without blackouts or waste. The principles compound
into the near future:</p>

<ul>
  <li><strong>EV fleets and batteries</strong> become active market participants, bidding
flexibility the way generators bid capacity.</li>
  <li><strong>Truthful, uncertainty-aware mechanisms</strong> matter more as the share of variable
generation grows — the penalty-for-shortfall idea is one template.</li>
  <li><strong>AI-driven forecasting and bidding</strong> will sit on top of these markets; the
market rules decide whether that intelligence produces reliability or chaos.</li>
</ul>

<p>Getting the rules right is quietly one of the highest-leverage things we can do
for the energy transition.</p>

<hr />

<p><strong>Papers behind this post:</strong> <em>Auctioning electricity under deep renewable
integration using a penalty for shortfall</em> (2019) · <em>Selling Renewable Generation
with a Penalty for Shortfall</em> (2018) · <em>Equilibria in two-stage electricity
markets</em> (2015) · <em>Dynamic Economic Dispatch … under Ramping Constraints and
Uncertain Demand</em> (2018) · <em>Scheduling EV charging having demand with different
reliability constraints</em> (2023) · <em>Preemptive scheduling of EV charging</em> (2023).
See them on the <a href="/publications/">Publications</a> page and the
<a href="/projects/renewable-markets/">renewable-markets project</a>.</p>]]></content><author><name>Abhishek Gupta</name></author><category term="mechanism-design" /><category term="energy" /><category term="electricity-markets" /><category term="sustainability" /><summary type="html"><![CDATA[Today's electricity markets were built for generators you can switch on. Wind and solar answer to the weather instead — so the market itself has to be redesigned.]]></summary></entry><entry><title type="html">Security is a game: strategy against an intelligent adversary</title><link href="https://gupta706.github.io/blog/2025/11/10/security-is-a-game/" rel="alternate" type="text/html" title="Security is a game: strategy against an intelligent adversary" /><published>2025-11-10T00:00:00-05:00</published><updated>2025-11-10T00:00:00-05:00</updated><id>https://gupta706.github.io/blog/2025/11/10/security-is-a-game</id><content type="html" xml:base="https://gupta706.github.io/blog/2025/11/10/security-is-a-game/"><![CDATA[<p>There is a fundamental difference between defending against <em>noise</em> and defending
against an <em>adversary</em>. Noise is indifferent; an adversary reasons about what you
will do and best-responds to it. The moment your opponent is strategic, security
stops being pure engineering and becomes <strong>game theory</strong>. Much of my earlier work
lives in this space, and its lessons have aged well.</p>

<h2 id="spreading-resources-thin-the-colonel-blotto-problem">Spreading resources thin: the Colonel Blotto problem</h2>

<p>The classic model of allocating limited resources across many contested fronts is
the <em>Colonel Blotto</em> game. We used it as a lens on cyberphysical security in
<em>A Three-Stage Colonel Blotto Game with Applications to Cyber-Physical Security</em>
(2014) and its companions. A striking, counter-intuitive result runs through this
work — captured in the title <em>When to provide more information to an adversary</em>
(2014): sometimes <strong>revealing</strong> information is the optimal move, because it
shapes the attacker’s incentives in your favor. Later, in <em>Colonel Blotto Game
with Coalition Formation for Sharing Resources</em> (2018), we asked when defenders
should pool resources at all.</p>

<h2 id="jamming-control-and-asymmetric-information">Jamming, control, and asymmetric information</h2>

<p>A related thread treats communication and control under attack as a dynamic game.
Across <em>Optimal control in the presence of an intelligent jammer</em> (2010),
<em>One-stage control over an adversarial channel</em> (2011), <em>A dynamic
transmitter-jammer game with asymmetric information</em> (2012), and <em>Jamming in
mobile networks</em> (2013), the recurring theme is <strong>asymmetric information</strong>: the
two sides know different things, and the equilibrium hinges on who knows what.
That culminated in <em>Dynamic Games With Asymmetric Information and Resource
Constrained Players With Applications to Security of Cyberphysical Systems</em>
(2017).</p>

<h2 id="privacy-is-an-adversarial-game-too">Privacy is an adversarial game too</h2>

<p>The same framing illuminates privacy. In <em>Privacy-aware stochastic control with a
“snoopy” adversary</em> (2016), a controller must accomplish its task while an
eavesdropper tries to infer private state from observable behavior. The tension
is exactly a game: every action leaks a little information, so the optimal policy
trades performance against how much it reveals.</p>

<h2 id="why-it-matters-now-more-than-ever">Why it matters, now more than ever</h2>

<p>Three implications carry into today’s world:</p>

<ul>
  <li><strong>Disclosure is a decision.</strong> In an era of disinformation and cyber conflict,
the counter-intuitive lesson — that sometimes you <em>should</em> reveal information —
is a real strategic tool, not a paradox.</li>
  <li><strong>Adversarial ML is a security game.</strong> Attacks that craft inputs to fool a
model are strategic best-responses; defenses that assume random perturbations
miss the point. The asymmetric-information framing is the right one.</li>
  <li><strong>Privacy leaks through behavior.</strong> As systems act on our data, the “snoopy
adversary” model — inferring secrets from what a system <em>does</em> — describes
everything from smart-meter surveillance to fingerprinting a user by their app
usage.</li>
</ul>

<p>The unifying idea is simple to state and hard to internalize: <strong>design against
the best response, not the average case.</strong> $\max_{\text{defense}}
\min_{\text{attack}}$ is a better mental model for security than any fixed
threat list.</p>

<hr />

<p><strong>Papers behind this post:</strong> <em>Dynamic Games With Asymmetric Information … Security
of Cyberphysical Systems</em> (2017) · <em>A Three-Stage Colonel Blotto Game … Cyber-Physical
Security</em> (2014) · <em>… When to provide more information to an adversary</em> (2014) ·
<em>Colonel Blotto Game with Coalition Formation</em> (2018) · <em>Privacy-aware stochastic
control with a “snoopy” adversary</em> (2016) · the jammer-game series (2010–2013).
Browse them on the <a href="/publications/">Publications</a> page.</p>]]></content><author><name>Abhishek Gupta</name></author><category term="game-theory" /><category term="security" /><category term="privacy" /><summary type="html"><![CDATA[A smart attacker reasons about your defense. That single fact turns security from an engineering problem into a game — and game theory tells you how much information to give away, and how to spread thin resources.]]></summary></entry></feed>