ramo.pareto package

Submodules

ramo.pareto.dominance module

ramo.pareto.dominance.pareto_dominates(a, b)

Check if the vector in a Pareto dominates vector b.

Parameters:
  • a (ndarray) – A numpy array.

  • b (ndarray) – A numpy array.

Returns:

Whether vector a dominates vector b.

Return type:

bool

ramo.pareto.dominance.strict_pareto_dominates(a, b)

Check if the vector in a Pareto strictly dominates vector b.

Parameters:
  • a (ndarray) – A numpy array.

  • b (ndarray) – A numpy array.

Returns:

Whether vector a strictly dominates vector b.

Return type:

bool

ramo.pareto.pareto_nash module

ramo.pareto.pareto_nash.pure_strategy_pne(monfg)

Compute all Pure Strategy Pareto Nash Equilibria for a given MONFG.

Parameters:

monfg (MONFG) – An MONFG object.

Returns:

A list of pure joint strategies that are Pareto Nash equilibria.

Return type:

List[List[ndarray]]

ramo.pareto.verify module

ramo.pareto.verify.c_prune(candidates)

Create a convex coverage set from a set of candidate points.

References

candidates (Set[Tuple]): A set of vectors.

Returns:

A convex coverage set.

Return type:

Set[Tuple]

ramo.pareto.verify.fast_c_prune(candidates)

A fast version to prune a set of points to its convex hull. This leverages the QuickHull algorithm.

This algorithm first computes the convex hull of the set of points and then prunes the Pareto dominated points.

Parameters:

candidates (ndarray) – A numpy array of vectors.

Returns:

A convex coverage set.

Return type:

ndarray

ramo.pareto.verify.fast_p_prune(candidates)

A batched and fast version of the Pareto coverage set algorithm.

Parameters:

candidates (ndarray) – A numpy array of vectors.

Returns:

A Pareto coverage set.

Return type:

ndarray

ramo.pareto.verify.find_weight(vector, candidates)

Find a weight for which a specific vector improves on a CCS [1].

References

Parameters:
  • vector (Tuple) – A payoff vector.

  • candidates (Set[Tuple]) – The current CCS.

Returns:

A weight array if it found one, otherwise None.

Return type:

ndarray | None

ramo.pareto.verify.in_hull(x, points)

Check whether a point is a convex combination of a set of points.

Parameters:
  • x (ndarray) – The point to check.

  • points (ndarray) – An array of points.

Returns:

Whether the point was in the convex hull.

Return type:

bool

ramo.pareto.verify.p_prune(candidates)

Create a Pareto coverage set from a set of candidate points.

References

Parameters:

candidates (Set[Tuple]) – A set of vectors.

Returns:

A Pareto coverage set.

Return type:

Set[Tuple]

ramo.pareto.verify.verify_all_pareto_nash(monfg, joint_strats)

Globally verify if each joint strategy in a list is a Nash equilibrium.

Parameters:
  • monfg (MONFG) – An MONFG object.

  • joint_strats (List[ndarray]) – A list of joint strategies to check.

Returns:

Whether the joint_strategies in the list are actually Pareto Nash equilibria.

Return type:

bool

ramo.pareto.verify.verify_pareto_nash(monfg, joint_strat)

Verify whether a joint strategy is a Pareto Nash equilibrium.

Parameters:
  • monfg (MONFG) – An MONFG object.

  • joint_strat (List[ndarray]) – A list of strategy arrays.

Returns:

Whether the joint strategy is a Pareto Nash equilibrium.

Return type:

bool

Module contents