Skip to content

[FEAT] Implement payoff gradient function in MixedStrategyProfile #1131

Closed

Description

@tturocy

In many methods (including those involving path following in some form or another), the derivative of the expected payoff of a strategy with respect to all other strategies is needed. This can be computed efficiently in a single pass by re-using computations. This is not exposed publicly in MixedStrategyProfile.

Add a method

virtual void GetPayoffDerivRow(const GameStrategy &p_strategy, Vector<T> &p_deriv)

which returns the derivative of the expected payoff to p_strategy with respect to all strategies in the game.

  • For action graph games, this is basically already AGG::getPayoffJacobianRow.
  • For table games, this can be computed efficiently by making a single ProductDistribution for each (other) player and computing the payoffs against that distribution.
  • The base class should provide a fallback which just calls the existing derivative

This can be deployed in logit, hp, and leap to replace existing hand-rolled Jacobian rows.

Activity

  1. self-assigned this
    on Sep 9, 2026
  2. added
    c++Items which involve writing in C++
    nashItems which involve Nash equilibrium computation methods
    on Sep 9, 2026
  3. tturocy commented on Sep 29, 2026

    @tturocy
    MemberAuthor

    This has been handled in #1165 among other improvements.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

c++Items which involve writing in C++nashItems which involve Nash equilibrium computation methods

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions