minmax

Contain a minmax problem solver routine.

quantecon.optimize.minmax.minmax[source]

Given an m x n matrix A, return the value \(v^*\) of the minmax problem:

\[v^* = \max_{x \in \Delta_m} \min_{y \in \Delta_n} x^T A y = \min_{y \in \Delta_n}\max_{x \in \Delta_m} x^T A y\]

and the optimal solutions \(x^* \in \Delta_m\) and \(y^* \in \Delta_n\): \(v^* = x^{*T} A y^*\), where \(\Delta_k = \{z \in \mathbb{R}^k_+ \mid z_1 + \cdots + z_k = 1\}\), \(k = m, n\).

This routine is jit-compiled by Numba, using optimize.linprog_simplex routines.

Parameters:
A : ndarray(float, ndim=2)

ndarray of shape (m, n).

max_iter : int, optional(default=10**6)

Maximum number of iteration in the linear programming solver.

piv_options : PivOptions, optional

PivOptions namedtuple to set tolerance values used in the linear programming solver.

Returns:
v : float

Value \(v^*\) of the minmax problem.

x : ndarray(float, ndim=1)

Optimal solution \(x^*\), of shape (m,).

y : ndarray(float, ndim=1)

Optimal solution \(y^*\), of shape (n,).