https://github.com/andrematte/simulation-mm1-queue
Discrete Event Simulation of a M/M/1 Queue developed using Python. Class Project.
https://github.com/andrematte/simulation-mm1-queue
discrete event mm1 python queue simulation
Last synced: 3 months ago
JSON representation
Discrete Event Simulation of a M/M/1 Queue developed using Python. Class Project.
- Host: GitHub
- URL: https://github.com/andrematte/simulation-mm1-queue
- Owner: andrematte
- License: mit
- Created: 2021-10-27T13:06:34.000Z (over 4 years ago)
- Default Branch: main
- Last Pushed: 2021-11-12T21:27:31.000Z (over 4 years ago)
- Last Synced: 2024-01-29T20:47:33.028Z (over 2 years ago)
- Topics: discrete, event, mm1, python, queue, simulation
- Language: Jupyter Notebook
- Homepage:
- Size: 1.42 MB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# PPGEE0260: Modelagem e Simulação Discreta de Sistemas
Aluno: Carlos André de Mattos Teixeira
Código baseado em: https://github.com/williewheeler/stats-demos/blob/master/queueing/single-queue-sim.ipynb
## Descrição do Projeto
**Objetivo:** Adicionar dois novos eventos no simulador de fila M/M/1.
**Requisitos:**
1. Um programa executável e todos os arquivos necessários à sua execução;
2. Um relatório contendo toda a documentação do programa (variáveis, parâmetros, rotinas, fluxogramas das rotinas, etc.);
3. Um pequeno manual sobre como executar o programa e constando a modelagem do sistema.
**Método de Avaliação:**
O simulador será avaliado com base nos seguintes critérios e pesos:
1. Funcionamento de acordo com o solicitado. Isto é, o modelo executado deve ter um comportamento (observável) semelhante ao descrito no escopo desta proposta
2. Implementação de funções aleatórias. Pelo menos as funções: Uniforme, Triangular, Normal e Exponencial. Além da alternativa de uso de um valor constante
3. Interface com o usuário (entrada de dados, visualização dos resultados)
4. Resultados dos experimentos
5. Documentação
## Instruções de Execução
- As simulações são executadas através do arquivo *Jupyter Notebook* [`experiments.ipynb`](https://github.com/andrematte/simulation-mm1-queue/blob/main/experiments.ipynb).
- Para executar uma simulação com as configurações padrão, basta executar a função `run_sim_and_plot(parameters)`. As configurações padrão são as seguintes:
| Parâmetro | Valor |
|--------------------------|-------------|
| Seed | 24 |
| Número de Clientes | 400 |
| Taxa Média de Chegada | 16 |
| Taxa Média de Serviço | 32 |
| Distribuição | Exponencial |
- É possível personalizar os experimentos ao sobreescrever o dicionário de parâmetros com a função`generate_parameters()` e, em seguida, executar a função `run_sim_and_plot(parameters)`. Por exemplo:
```python
parameters = generate_parameters(NUM_JOBS, MEAN_ARRIVAL_RATE, MEAN_SERVICE_RATE, DISTRIBUTION)
run_sim_and_plot(parameters)
```
## Referências
[1] https://github.com/williewheeler/stats-demos/blob/master/queueing/single-queue-sim.ipynb
[2] https://medium.com/wwblog/simulating-an-m-m-1-queue-in-python-f894f5a68db2
[3] https://web.fe.up.pt/~mac/ensino/docs/IO20032004/FilasEspera.pdf