Skip to content

[Model] EquilibriumPoint #549

@isPANN

Description

@isPANN

Motivation

EQUILIBRIUM POINT (P234) from Garey & Johnson, A7 AN15. Given a set of variables with finite range sets and a collection of product polynomials (one per variable), determine whether there exists an assignment where each variable simultaneously maximizes its own polynomial — a discrete Nash equilibrium. NP-complete by reduction from 3SAT (Sahni, 1974). Remains NP-complete even when all range sets are binary ({0, 1}). Connects computational complexity to game theory and nonlinear programming.

Associated reduction rules:

  • R178: 3SAT → EquilibriumPoint (this model is the target)

Definition

Name: EquilibriumPoint
Reference: Garey & Johnson, Computers and Intractability, A7 AN15

Mathematical definition:

INSTANCE: Set X = {x₁, x₂, …, xₙ} of variables, collection {Fᵢ : 1 ≤ i ≤ n} of product polynomials over X and the integers, and a finite range set Mᵢ ⊆ Z for each variable xᵢ.

A product polynomial is a polynomial expressible as a product of factors, each of which is a polynomial in the variables x₁, …, xₙ with integer coefficients. For example, F = x₁ · (1 − x₂) · (x₃ + 2) is a product of three factors.

QUESTION: Does there exist an assignment (y₁, y₂, …, yₙ) with yᵢ ∈ Mᵢ such that for all 1 ≤ i ≤ n and all y ∈ Mᵢ:

Fᵢ(y₁, …, yᵢ₋₁, yᵢ, yᵢ₊₁, …, yₙ) ≥ Fᵢ(y₁, …, yᵢ₋₁, y, yᵢ₊₁, …, yₙ)?

In game-theoretic terms: each Fᵢ is player i's payoff function, and the assignment is a pure-strategy Nash equilibrium if no player can unilaterally improve their payoff.

This is a satisfaction (feasibility) problem: Value = Or.

Variables

  • Count: n (one variable per player)
  • Per-variable domain: |Mᵢ| (size of the range set for player i)
  • Meaning: yᵢ is the strategy chosen by player i from Mᵢ. The evaluate function checks whether every player's choice is a best response (no unilateral improvement possible).

dims() returns [|M₁|, |M₂|, …, |Mₙ|].

Schema (data type)

Type name: EquilibriumPoint
Variants: none

Field Type Description Getter
polynomials Vec<Vec<Vec<i64>>> Product polynomials: polynomials[i] is a list of factors for Fᵢ. Each factor is a vector of coefficients [a₀, a₁, …, aₙ] representing a₀ + a₁x₁ + … + aₙxₙ. Fᵢ is the product of all its factors. num_players()self.polynomials.len()
range_sets Vec<Vec<i64>> Finite range set Mᵢ ⊆ Z for each variable xᵢ

Problem type: Satisfaction (feasibility)
Value type: Or

Product polynomial representation: Each Fᵢ is stored as a list of linear factors. Factor [a₀, a₁, …, aₙ] represents the polynomial a₀ + a₁·x₁ + … + aₙ·xₙ. The value of Fᵢ at an assignment is the product of all its factors evaluated at that assignment.

Example: F = x₁ · (1 − x₃) is stored as [[0, 1, 0, 0], [1, 0, 0, -1]].

Complexity

  • Decision complexity: NP-complete (Sahni, 1974; transformation from 3SAT). Remains NP-complete even for binary range sets Mᵢ = {0, 1}.
  • Best known exact algorithm: Brute-force enumeration of all Π|Mᵢ| assignments, checking the equilibrium condition for each. Time O(Π|Mᵢ| · n · max|Mᵢ|).
  • Complexity string for declare_variants!: "2^num_players" (worst case with binary range sets)
  • Related results: Computing Nash equilibria in continuous games is PPAD-complete (Daskalakis, Goldberg, Papadimitriou, 2009). The discrete version with finite range sets is in NP.
  • References:
    • [Sahni, 1974] S. Sahni, "Computationally related problems", SIAM J. Computing 3(4), pp. 262-279, 1974.

Extra Remark

Full book text:

INSTANCE: Set x = {x_1, x_2, . . . , x_n} of variables, collection {F_i: 1 ≤ i ≤ n} of product polynomials over X and the integers, and a finite "range-set" M_i ⊆ Z for 1 ≤ i ≤ n.
QUESTION: Does there exist a sequence y_1, y_2, . . . , y_n of integers, with y_i ∈ M_i, such that for 1 ≤ i ≤ n and all y ∈ M_i,

F_i(y_1, y_2, . . . , y_{i-1}, y_i, y_{i+1}, . . . , y_n) ≥ F_i(y_1, y_2, . . . , y_{i-1}, y, y_{i+1}, . . . , y_n)?

Reference: [Sahni, 1974]. Transformation from 3SAT.
Comment: Remains NP-complete even if M_i = {0,1} for 1 ≤ i ≤ n.

How to solve

  • It can be solved by (existing) bruteforce. Enumerate all Π|Mᵢ| assignments; for each, check whether every player's choice is a best response by comparing against all alternatives in Mᵢ.
  • It can be solved by reducing to integer programming. (Product polynomials yield nonlinear constraints; not directly expressible as ILP.)
  • Other: For binary range sets, reduce to SAT by encoding equilibrium conditions as Boolean constraints.

Example Instance

Input:
n = 3 players, Mᵢ = {0, 1} for all i (binary range sets, 2³ = 8 configurations).

Product polynomials (in factor form):

  • F₁ = x₁ · x₂ · x₃ — factors: [[0,1,0,0], [0,0,1,0], [0,0,0,1]]
  • F₂ = (1 − x₁) · x₂ — factors: [[1,-1,0,0], [0,0,1,0]]
  • F₃ = x₁ · (1 − x₃) — factors: [[0,1,0,0], [1,0,0,-1]]

Analysis of all 8 assignments:

(x₁,x₂,x₃) F₁ F₂ F₃ P1 BR? P2 BR? P3 BR? Equilibrium?
(0, 0, 0) 0 0 0 No
(0, 0, 1) 0 0 0 No
(0, 1, 0) 0 1 0 Yes
(0, 1, 1) 0 1 0 No
(1, 0, 0) 0 0 1 Yes
(1, 0, 1) 0 0 0 No
(1, 1, 0) 0 0 1 Yes
(1, 1, 1) 1 0 0 No

Best-response analysis for (0, 1, 0):

  • Player 1: F₁(0,1,0) = 0, F₁(1,1,0) = 0. Tie (0 ≥ 0). ✓
  • Player 2: F₂(0,1,0) = 1, F₂(0,0,0) = 0. Best response (1 ≥ 0). ✓
  • Player 3: F₃(0,1,0) = 0, F₃(0,1,1) = 0. Tie (0 ≥ 0). ✓

Answer: Or(true). Three equilibria exist: (0,1,0), (1,0,0), (1,1,0). Five non-equilibria provide negative coverage for round-trip testing.

Expected outcome: Or(true)

Reduction Rule Crossref

  • R178: Satisfiability (3SAT) → EquilibriumPoint

Metadata

Metadata

Assignees

No one assigned

    Labels

    GoodAn issue passed all checks.modelA model problem to be implemented.

    Type

    No type

    Projects

    Status

    Done

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions