Simulador mm1
- Gustavo Candido (11711BCC011)
- Mateus Lemos (11811BCC007)
python3
instalado na máquinapip3
instalado na máquina- pacote tabulate
pip3 install tabulate
- pacote bisect
pip3 install bisect
No arquivo parametros-simulacao
se encontra um JSON contendo os parametros necessários para a execução da simulação. Alguns dos parametros aceitos no arquivo são:
Nome | Descrição | Valores Possíveis |
---|---|---|
nClientes
|
Número de clientes do sistema |
inteiro > 0
|
filaMax
|
Tamanho máximo da fila |
inteiro > 0,
string "inf"
|
Além disso também é possível configurar o tipo de distribuição gerada pelos tempos de chegada entre clientes e pelo tempo de serviço e seus respectivos parametros (tecArgs e tsArgs). As distribuições suportadas são:
Nome da Função | Parâmetros | Detalhes |
---|---|---|
deterministica
|
valor (float) | Valor que será utilizado em cada iteração |
uniforme
|
min (float) e max (float) | Os valores serão gerados no intervalo [min, max] |
normal
|
media (float) e desvio (float) | Os valores gerados de acordo com a média e o desvio padrão dados |
exponencial
|
lamb (float) | Os valores serão gerados por uma distribuição exponencial com parâmentro lambda = lamb |
Para se usar uma distribuição específica pode-se utilizar o arquivo Distribuições.py
como referência para definir o nome da distribuição desejada e passá-la aos parâmetros tecDist
e tsDist
sendo que os parametros da função de distribuição selecionada serão os mesmos descritos na assinatura da função no do arquivo de distribuições também na notação JSON. Exemplo:
Em Distribuicoes.py
def uniforme(min: float, max: float) -> float:
...
def deterministica(valor:float) -> float:
...
Em parametros-simulacao
{
"nClientes": 15,
"filaMax": "inf",
"tecDist": "deterministica", -> mesmo nome da função
"tecArgs": {
"valor": 9 -> mesmo parametro da função
},
"tsDist": "uniforme",
"tsArgs": {
"min": 0,
"max": 1
}
}
Por fim após a configuração basta rodar o comando python3 main.py
ou python main.py
dependendo a configuração do sistema.