minmax

Contain a minmax problem solver routine.

quantecon.optimize.minmax.minmax(A, max_iter=1000000, piv_options=PivOptions(fea_tol=1e-06, tol_piv=1e-07, tol_ratio_diff=1e-13))[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:
Andarray(float, ndim=2)

ndarray of shape (m, n).

max_iterint, optional(default=10**6)

Maximum number of iteration in the linear programming solver.

piv_optionsPivOptions, optional

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

Returns:
vfloat

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

xndarray(float, ndim=1)

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

yndarray(float, ndim=1)

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