def METHOD_NAME(dist, payoff_tensor, p=1, aggregate=np.mean):
  """Compute Tsallis regularized exploitability of dist for non-symmetric game.
  Args:
    dist: list of 1-d np.arrays, current estimate of nash distribution
    payoff_tensor: (n x A1 x ... x An) np.array, payoffs for each joint action
      assumed to be non-negative. can also be list of (A1 x ... x An) np.arrays
    p: float in [0, 1], Tsallis entropy-regularization --> 0 as p --> 0
    aggregate: function to reduce individual exp_is to scalar, e.g., mean or max
  Returns:
    exploitability (float): avg_i payoff_i of best response_i - payoff_i of dist
  """
  if np.min(payoff_tensor) < 0.:
    raise ValueError('payoff tensor must be non-negative')
  num_players = len(payoff_tensor)
  exp_i = []
  for i in range(num_players):
    nabla_i = misc.pt_reduce(payoff_tensor[i], dist, [i])
    dist_i = dist[i]
    if p > 0:
      power = 1./p
      s = np.linalg.norm(nabla_i, ord=power)
      br_i = (nabla_i / np.linalg.norm(nabla_i, ord=power))**power
    else:
      power = np.inf
      s = np.linalg.norm(nabla_i, ord=power)
      br_i = np.zeros_like(dist_i)
      maxima = (nabla_i == s)
      br_i[maxima] = 1. / maxima.sum()
    u_i_br = nabla_i.dot(br_i) + s / (p + 1) * (1 - np.sum(br_i**(p + 1)))
    u_i_dist = nabla_i.dot(dist_i) + s / (p + 1) * (1 - np.sum(dist_i**(p + 1)))
    exp_i.append(u_i_br - u_i_dist)
  return aggregate(exp_i)