# Solve with Lemke HowsonΒΆ

One of the algorithms implemented in `Nashpy`

is The Lemke Howson Algorithm. This
algorithm does not return **all** equilibria and takes an input argument:

```
>>> import nashpy as nash
>>> import numpy as np
>>> A = np.array([[1, -1], [-1, 1]])
>>> matching_pennies = nash.Game(A)
>>> matching_pennies.lemke_howson(initial_dropped_label=0)
(array([0.5, 0.5]), array([0.5, 0.5]))
```

The `initial_dropped_label`

is an integer between `0`

and
`sum(A.shape) - 1`

. To iterate over all possible labels use the
`lemke_howson_enumeration`

which returns a generator:

```
>>> equilibria = matching_pennies.lemke_howson_enumeration()
>>> for eq in equilibria:
... print(eq)
(array([0.5, 0.5]), array([0.5, 0.5]))
(array([0.5, 0.5]), array([0.5, 0.5]))
(array([0.5, 0.5]), array([0.5, 0.5]))
(array([0.5, 0.5]), array([0.5, 0.5]))
```

Note that this algorithm is not guaranteed to find **all** equilibria but is
an efficient way of finding **an** equilibrium.