# Simulation


## Longest queue(s) first

```{eval-rst}
.. automodule:: stochastic_matching.simulator.longest
    :members:
```

## Virtual queue policy

```{eval-rst}
.. automodule:: stochastic_matching.simulator.virtual_queue
    :members:

.. automodule:: stochastic_matching.simulator.constant_regret
    :members:
```

# Epsilon-Filtering policy

```{eval-rst}
.. automodule:: stochastic_matching.simulator.e_filtering
    :members:
```

# Tools for batch evaluations

```{eval-rst}
.. automodule:: stochastic_matching.simulator.parallel
    :members:
```

# Metrics

```{eval-rst}
.. automodule:: stochastic_matching.simulator.metrics
    :members:
```

# First-Come First Served

```{eval-rst}
.. automodule:: stochastic_matching.simulator.fcfm
    :members:
```

# Other policies

```{eval-rst}
.. automodule:: stochastic_matching.simulator.priority
    :members:
```

```{eval-rst}
.. automodule:: stochastic_matching.simulator.random_edge
    :members:
```

```{eval-rst}
.. automodule:: stochastic_matching.simulator.random_item
    :members:
```

## Generic Class

The root abstract class for all simulators.

```{eval-rst}
.. automodule:: stochastic_matching.simulator.simulator
    :members:
```

## Extended Class

Abstract extension designed for reaching polytope vertices.

```{eval-rst}
.. automodule:: stochastic_matching.simulator.extended
    :members:
```

## Internal tools

```{eval-rst}
.. automodule:: stochastic_matching.simulator.arrivals
    :members:
```

```{eval-rst}
.. automodule:: stochastic_matching.simulator.graph
    :members:
```

```{eval-rst}
.. automodule:: stochastic_matching.simulator.multiqueue
    :members:
```

```{eval-rst}
.. automodule:: stochastic_matching.simulator.logs
    :members:
```
