otimiza˘c~ao de um sistema de elevadores a partir da...

56
Universidade Federal Fluminense Instituto de Matem´ atica e Estat´ ıstica Curso de Estat´ ıstica Fabio Mascarenhas Loureiro Otimiza¸ ao de um Sistema de Elevadores ` a partir da Simula¸ ao de Eventos Discretos Niter´oi 2013

Upload: others

Post on 07-Mar-2021

1 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Otimiza˘c~ao de um Sistema de Elevadores a partir da ...estatistica.uff.br/wp-content/uploads/sites/33/2019/10/tcc_20122_Fabio... · Loureiro, Fábio Mascarenhas . Otimização de

Universidade Federal Fluminense

Instituto de Matematica e Estatıstica

Curso de Estatıstica

Fabio Mascarenhas Loureiro

Otimizacao de um Sistema de Elevadores a partir da

Simulacao de Eventos Discretos

Niteroi

2013

Page 2: Otimiza˘c~ao de um Sistema de Elevadores a partir da ...estatistica.uff.br/wp-content/uploads/sites/33/2019/10/tcc_20122_Fabio... · Loureiro, Fábio Mascarenhas . Otimização de

Fabio Mascarenhas Loureiro

Otimizacao de um Sistema de Elevadores a partir da

Simulacao de Eventos Discretos

Monografia apresentada ao Curso de Estatıstica da

UFF, como requisito para a obtencao do grau de

BACHAREL em Estatıstica.

Orientadora: Jessica Quintanilha Kubrusly

Doutora em Matematica

Niteroi

2013

Page 3: Otimiza˘c~ao de um Sistema de Elevadores a partir da ...estatistica.uff.br/wp-content/uploads/sites/33/2019/10/tcc_20122_Fabio... · Loureiro, Fábio Mascarenhas . Otimização de

Fabio Mascarenhas Loureiro

Otimizacao de um Sistema de Elevadores a partir da

Simulacao de Eventos Discretos

Monografia apresentada ao Curso de Estatıstica da

UFF, como requisito para a obtencao do grau de

BACHAREL em Estatıstica.

Aprovado em Marco de 2013

BANCA EXAMINADORA

Jessica Quintanilha Kubrusly

Doutora em Matematica

Valentin Sisko

Doutor em Estatıstica

Victor Hugo de Carvalho Gouvea

Doutor em Engenharia Estatıstica

Page 4: Otimiza˘c~ao de um Sistema de Elevadores a partir da ...estatistica.uff.br/wp-content/uploads/sites/33/2019/10/tcc_20122_Fabio... · Loureiro, Fábio Mascarenhas . Otimização de

Loureiro, Fábio Mascarenhas Otimização de um Sistema de Elevadores a partir da Simulação

de Eventos Discretos / Fábio Mascarenhas Loureiro; Jessica Quintanilha Kubrusly, orientadora. Niterói, 2012. 56 f. : il.

Trabalho de Conclusão de Curso (Graduação em

Estatísticaa ) – Universidade Federal Fluminense, Instituto de Matemática e Estatística, Niterói, 2012.

1. Processos Estocásticos. 2. Geração de Variáveis

Aleatórias. 3. Geração de processo de Poisson homogêneo e não homogêneo. 4. Simulação de Sistemas de Filas. I. Kubrusly, Jessica Quintanilha, orientadora. II. Universidade Federal Fluminense. Instituto de Matemática e Estatística. III. Título.

CDD -

Page 5: Otimiza˘c~ao de um Sistema de Elevadores a partir da ...estatistica.uff.br/wp-content/uploads/sites/33/2019/10/tcc_20122_Fabio... · Loureiro, Fábio Mascarenhas . Otimização de

Dedico este trabalho aquelas pessoas que me

ajudaram e me apoiaram ate aqui mas que nao

resistiram para compartilhar deste momento

junto a mim.

Page 6: Otimiza˘c~ao de um Sistema de Elevadores a partir da ...estatistica.uff.br/wp-content/uploads/sites/33/2019/10/tcc_20122_Fabio... · Loureiro, Fábio Mascarenhas . Otimização de

Resumo

Quando se lida com problemas de modelagem estocastica e comum nos depa-

rarmos com sistemas complexos que, em alguns caso, sao impossıveis de se resolver de

forma analıtica. Diante disto, e comum usarmos a simulacao para entender e estudar

fenomenos desta natureza. Este trabalho apresenta um estudo para um sistema de eleva-

dores, que pode ser considerado um desses sistemas complexos. Este sistema foi modelado

segundo duas perspectivas. Na primeira, os elevadores param em todos os andares, ja na

segunda, cada elevador para em andares especıficos. O objetivo principal do trabalho e

decidir em qual dos dois sistemas o tempo medio de espera dos passageiros e menor.

Palavras-chaves: Processos Estocasticos, Geracao de Variaveis Aleatorios, Geracao de

Processo de Poisson Homogeneo e nao Homogeneo, Simulacao, Simulacao de Sistemas de

Filas.

Page 7: Otimiza˘c~ao de um Sistema de Elevadores a partir da ...estatistica.uff.br/wp-content/uploads/sites/33/2019/10/tcc_20122_Fabio... · Loureiro, Fábio Mascarenhas . Otimização de

Agradecimentos

Gostaria de agradecer primeiramente a minha mae (Nadia), por todo o apoio

que me foi dado. Sei que passamos tempos difıceis e talvez nao seja tao mais facil daqui

em diante, mas tenho certeza que poderei sempre contar com a sra.

Agradeco tambem ao meu tio (Geraldo), pessoa que me auxiliou e transformou

isto possıvel. Sei que muitas coisas poderiam ser diferentes sem sua ajuda e portanto serei

eternamente grato.

Nao poderia deixar de agradecer algumas pessoas que fizeram parte do meu

desenvolvimento pessoal (DCE): Linda, Cissa, Dani, Thalita, Paola, Keilane, Leo(a),

Luciana(p), Nadine, Pablo, Bruno, Evandro, Riba, Barrientos, Garcom da Mineira, China,

Orelha, Nariz, Paulista, Uba, Jose, Natan e Lage.

Agradeco tambem aos que ajudaram no meu crescimento academico: Linda

novamente, Bruna, Fernanda, Kiese, Carol, Marcela, Evelyne, Guilherme, Clark e Lex.

Ao falar dos meus conhecimento academicos, nunca poderia deixar de agra-

decer minha orientadora (Jessica). Agradeco por todo o tempo dedicado, paciencia e

puxoes de orelha que me deu. Aprendi muito com a sra. e espero podermos trabalhar

juntos novamente.

Gostaria ainda de nao so agradecer, mas tambem dedicar este trabalho a quatro

pessoas. Pessoas que foram e continuarao sendo muito importantes na minha vida.

Pai (Helio), depois que entrei na faculdade nunca mais o vi, mas saiba, aonde

estiver, que sempre quis poder conversar e dizer tudo que cresci e evoluı.

Regina, voce pode nao ver o termino desta etapa da minha vida, nao fisica-

mente, mas sei que esta olhando e torcendo por mim. Obrigado pela ajuda no inıcio da

faculdade e por me dar a oportunidade de ter te conhecido. Ao pegar o diploma, lembrarei

da sua fala: “Estarei velhinha e indo la te ver formando!”. Tenho certeza que estara!

Tia (Bene), nunca esquecerei a sra. Voce tinha um sentimento por mim e pela

minha mae que inexplicavelmente e maior do que o de muitas pessoas que ja passaram

Page 8: Otimiza˘c~ao de um Sistema de Elevadores a partir da ...estatistica.uff.br/wp-content/uploads/sites/33/2019/10/tcc_20122_Fabio... · Loureiro, Fábio Mascarenhas . Otimização de

por nossas vidas. Nao so agradeco, mas afirmo que sempre lembrarei do auxılio e “dicas”

que me deu em vida. Obrigado!

Por ultimo, mas nao menos importante, gostaria de agradecer a pessoa que me

incentivou e acreditou desde sempre na minha capacidade, meu avo (Carlos). E com uma

alegria, seguida de profunda tristeza, que escrevo este agradecimento. Vo, infelizmente

nao esta comigo agora, mas cada etapa, cada passo que der, estarei lembrando de tudo

que me disse e me ensinou. O sr. ajudou a construir a pessoa que sou hoje e, por todo

o tempo, paciencia, dedicacao e incentivo que me deste serei eternamente grato. Voce

teve a mim como um filho e eu o considero como tal! Nao poderei abraca-lo apos minha

apresentacao nem apos meu ultimo dia na faculdade, mas sempre lembrarei de voce. Por

isso, mesmo nao estando comigo fisicamente, estara sempre presenta na minha vida.

4

Page 9: Otimiza˘c~ao de um Sistema de Elevadores a partir da ...estatistica.uff.br/wp-content/uploads/sites/33/2019/10/tcc_20122_Fabio... · Loureiro, Fábio Mascarenhas . Otimização de

Sumario

Lista de Figuras 7

Lista de Tabelas 8

1 Introducao 9

2 Geracao de Variaveis Aleatorias 11

2.1 Numeros Pseudo-Aleatorios . . . . . . . . . . . . . . . . . . . . . . . . . . 11

2.2 Geracao de Variaveis Aleatorias . . . . . . . . . . . . . . . . . . . . . . . . 13

2.2.1 Metodo da Transformada Inversa - V. A. Discreta . . . . . . . . . . 14

2.2.2 Metodo da Transformada Inversa - V. A. Contınuas . . . . . . . . . 15

2.2.3 Geracao de uma exponencial . . . . . . . . . . . . . . . . . . . . . . 17

3 Geracao de um Processo de Poisson 19

3.1 Processo de Poisson . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19

3.1.1 Tempo entre Eventos . . . . . . . . . . . . . . . . . . . . . . . . . . 20

3.2 Processo de Poisson nao-Homogeneo . . . . . . . . . . . . . . . . . . . . . 21

3.3 Geracao de Processo de Poisson Homogeneo . . . . . . . . . . . . . . . . . 21

3.4 Geracao de Processo de Poisson nao-Homogeneo . . . . . . . . . . . . . . . 22

4 Simulacao de Sistemas 24

4.1 Conceituando Eventos Discretos . . . . . . . . . . . . . . . . . . . . . . . . 25

4.2 Sistema com um servidor e fila unica . . . . . . . . . . . . . . . . . . . . . 26

4.3 Sistema com varios servidores e fila unica . . . . . . . . . . . . . . . . . . . 28

4.4 Sistema com varios servidores e filas em paralelo . . . . . . . . . . . . . . . 31

Page 10: Otimiza˘c~ao de um Sistema de Elevadores a partir da ...estatistica.uff.br/wp-content/uploads/sites/33/2019/10/tcc_20122_Fabio... · Loureiro, Fábio Mascarenhas . Otimização de

4.5 Determinando o numero de simulacoes realizadas . . . . . . . . . . . . . . 34

4.5.1 Criterio de Parada das Simulacoes . . . . . . . . . . . . . . . . . . . 35

5 Aplicacao Pratica: Simulando um Sistema de Elevadores 36

5.1 Introducao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36

5.2 Algoritmo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37

5.2.1 Sistema 1: n elevadores parando em todos os andares . . . . . . . . 37

5.2.2 Sistema 2: n elevadores parando em andares intercalados . . . . . . 40

5.2.3 Comentarios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43

5.3 Resultados da Simulacao . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44

5.4 Modelo simulado para λ homogeneo . . . . . . . . . . . . . . . . . . . . . . 44

5.5 Modelo simulado para λ nao homogeneo . . . . . . . . . . . . . . . . . . . 47

6 Conclusoes 51

Page 11: Otimiza˘c~ao de um Sistema de Elevadores a partir da ...estatistica.uff.br/wp-content/uploads/sites/33/2019/10/tcc_20122_Fabio... · Loureiro, Fábio Mascarenhas . Otimização de

Lista de Figuras

2.1 Funcao de distribuicao acumulada de uma variavel aleatoria discreta. . . . 14

4.1 Sistema com um servidor em fila unica . . . . . . . . . . . . . . . . . . . . 26

4.2 Sistema com k servidores e fila unica . . . . . . . . . . . . . . . . . . . . . 29

4.3 Sistema com k servidores e k filas . . . . . . . . . . . . . . . . . . . . . . . 32

5.1 W resultante da simulacao de 3 elevadores e λ = 2. . . . . . . . . . . . . . 46

5.2 W resultante da simulacao de 3 elevadores e λ = 3. . . . . . . . . . . . . . 46

5.3 W resultante da simulacao de 3 elevadores e λ = 4. . . . . . . . . . . . . . 47

5.4 W resultante da simulacao de 3 elevadores e λ = 5. . . . . . . . . . . . . . 47

5.5 Curvas das funcoes das taxas de chegada λ(t). . . . . . . . . . . . . . . . . 48

5.6 W resultante da simulacao de 4 elevadores e λ1(t). . . . . . . . . . . . . . . 50

5.7 W resultante da simulacao de 4 elevadores e λ2(t). . . . . . . . . . . . . . . 50

Page 12: Otimiza˘c~ao de um Sistema de Elevadores a partir da ...estatistica.uff.br/wp-content/uploads/sites/33/2019/10/tcc_20122_Fabio... · Loureiro, Fábio Mascarenhas . Otimização de

Lista de Tabelas

5.1 Tempos que incidem sobre os modelos simulados. . . . . . . . . . . . . . . 43

5.2 Variaveis que definem os sistemas. . . . . . . . . . . . . . . . . . . . . . . . 43

5.3 Tempo medio (minutos) no sistema 1 para λ homogeneo. . . . . . . . . . . 45

5.4 Tempo medio (minutos) no sistema 2 para λ homogeneo. . . . . . . . . . . 45

5.5 Tempo medio (minutos) no sistema 1 para λ nao homogeneo. . . . . . . . . 49

5.6 Tempo medio (minutos) no sistema 2 para λ nao homogeneo. . . . . . . . . 49

Page 13: Otimiza˘c~ao de um Sistema de Elevadores a partir da ...estatistica.uff.br/wp-content/uploads/sites/33/2019/10/tcc_20122_Fabio... · Loureiro, Fábio Mascarenhas . Otimização de

9

1 Introducao

Ao modelar um sistema que envolve variaveis estocasticas muitas vezes e pre-

ciso optar entre um modelo mais fiel a realidade ou outro modelo que seja mais matemati-

camente tratavel. Como por exemplo, ao modelar um sistema bancario pode-se optar por

um modelo mais realista que considere chegadas nao homogeneas ao longo do dia, variacao

no tempo de atendimento entre diferentes atendentes, possıveis faltas de funcionarios ou

ate mesmo pausas durante o expediente. Porem para que esse sistema tenha uma solucao

analıtica e preciso simplifica-lo bastante, por exemplo, considerar as chegadas homogeneas

e descartar as demais complicacoes citadas.

Com o avanco da computacao surgiu uma terceira possibilidade para analisar

sistemas estocasticos. A ideia e implementar e simular sistemas considerando alguns

complicadores a fim de tornar a modelagem o mais fiel possıvel a realidade. A analise

do sistema sera feita a partir das observacoes geradas pelas simulacoes realizadas. Dessa

forma nao sera fornecida uma solucao analıtica, porem a partir dessas observacoes sera

possıvel fazer inferencias sobre o sistema. Vale ressaltar que para uma boa representacao

da realidade e recomendavel que os parametros da simulacao sejam bem estimados a partir

de um estudo previo.

O objetivo deste trabalho e implementar e simular um sistema de elevadores

a fim de estudar o tempo de espera dos clientes. Para isso serao considerados duas

alternativas: a primeira considera que todos os elevadores param em todos os andares e

existe uma unica fila, ja a segunda considera que cada elevador para em andares especıficos.

Dessa forma espera-se comparar as duas alternativas e concluir em qual delas o cliente

passa menos tempo na fila.

No Capıtulo 2 sera introduzido o conceito de numeros pseudos-aleatorios assim

como algumas formas de geracao de variaveis aleatorias. No Capıtulo 3 serao definidos

Processos de Poisson Homogeneo e nao Homogeneo e formas de geracao desses processos

estocasticos. No Capıtulo 4 serao conceituado alguns tipos de simulacao, apresentados

alguns exemplos de simulacao com filas e por fim feita uma breve discussao sobre o numero

de simulacoes a serem realizadas. No Capıtulo 5 sera apresentado o problema do elevador

Page 14: Otimiza˘c~ao de um Sistema de Elevadores a partir da ...estatistica.uff.br/wp-content/uploads/sites/33/2019/10/tcc_20122_Fabio... · Loureiro, Fábio Mascarenhas . Otimização de

1 Introducao 10

bem como os resultados obtidos. Por fim, no Capıtulo 6 serao feitas as conclusoes e as

consideracoes finais com relacao ao trabalho.

Page 15: Otimiza˘c~ao de um Sistema de Elevadores a partir da ...estatistica.uff.br/wp-content/uploads/sites/33/2019/10/tcc_20122_Fabio... · Loureiro, Fábio Mascarenhas . Otimização de

11

2 Geracao de Variaveis Aleatorias

2.1 Numeros Pseudo-Aleatorios

Uma sequencia de numeros pseudo-aleatorios e uma cadeia de valores gerados

a partir de uma regra, tal que, estes tentam “imitar” da melhor maneira possıvel uma

variavel aleatoria distribuıda uniformemente no intervalo (0, 1). O intuito disto e criar

um conjunto de valores sequenciais que, apesar de nao serem de fato aleatorios, nao

apresentem previsibilidade aparente.

Um dos metodos mais utilizados para se tentar realizar tal simulacao e o me-

todo congruencial multiplicativo (Ross, 2006; Gentle, 2003). A proposta deste gerador e

construir uma sequencia de numeros pseudo-aleatorios onde, primeiramente e gerada uma

sequencia de numeros naturais {xn}∞n=1 de acordo com a expressao (2.1), que calcula, de

forma recursiva, sucessivos valores xn, para n ≥ 1, a partir de valores iniciais x0, a e m:

xn = axn−1 mod m (2.1)

A constante x0 e chamada de semente e pode ser qualquer valor real. As

constantes a e m sao inteiras e o termo mod m representa o resto da divisao por m.

Tem-se entao que a sequencia de numeros pseudo-aleatorio no intervalo (0, 1) e definida

por

un =xnm

(2.2)

Exemplo 2.1.1. Ao definir x0 = 1, a = 5 e m = 139, os dez primeiros termos da sequencia

xn serao gerados da seguinte maneira:

Page 16: Otimiza˘c~ao de um Sistema de Elevadores a partir da ...estatistica.uff.br/wp-content/uploads/sites/33/2019/10/tcc_20122_Fabio... · Loureiro, Fábio Mascarenhas . Otimização de

2.1 Numeros Pseudo-Aleatorios 12

x1 = 5× 1 mod 139 = 5

x2 = 5× 5 mod 139 = 25

x3 = 5× 25 mod 139 = 125

x4 = 5× 125 mod 139 = 69

x5 = 5× 69 mod 139 = 67

x6 = 5× 67 mod 139 = 57

x7 = 5× 57 mod 139 = 7

x8 = 5× 7 mod 139 = 35

x9 = 5× 35 mod 139 = 36

x10 = 5× 36 mod 139 = 41

Observe que, como a funcao mod m retorna o resto da divisao por m, xn ∈

{0, 1, . . . ,m − 1}, neste caso, xn ∈ {0, 1, . . . , 138}. Posterior a isto pode-se calcular a

sequencia de valores un ∈ [0, 1). Os dez primeiros numeros pseudo-aleatorios gerados

para os parametros definidos serao:

u1 = 5/139 = 0, 0359

u2 = 25/139 = 0, 1799

u3 = 125/139 = 0, 8993

u4 = 69/139 = 0, 4964

u5 = 67/139 = 0, 4820

u6 = 57/139 = 0, 4101

u7 = 7/139 = 0, 0504

u8 = 35/139 = 0, 2518

u9 = 36/139 = 0, 2590

u10 = 41/139 = 0, 2950

Como foi visto, este metodo utiliza 3 parametros para ser inicializado e todos

devem ser fornecidos pelo programador, assim, e razoavel que se tome algumas medidas

para maior eficiencia do metodo.

Primeiramente, pela forma de calculo utilizado, acaba que em algum momento

a sequencia comece a se repetir. Desta forma, caso seja escolhido um m pequeno, a

sequencia se repetira com maior rapidez. Assim, e comum e de maior eficacia a utilizacao

Page 17: Otimiza˘c~ao de um Sistema de Elevadores a partir da ...estatistica.uff.br/wp-content/uploads/sites/33/2019/10/tcc_20122_Fabio... · Loureiro, Fábio Mascarenhas . Otimização de

2.2 Geracao de Variaveis Aleatorias 13

de um m relativamente grande. Entretanto, pode-se observar que se a divisao por m

resultar em 0, todos os outros termos da sequencia serao nulos. Logo, busca-se utilizar,

alem de m grande, m primo. Com isto, espera-se dificultar o fato da sequencia gerada

se anular a partir de um dado momento. Observe tambem que, apesar dos recursos

computacionais estarem bastante evoluıdos, por uma limitacao, Ross (2006) sugere que

seja utilizado m = 231−1, sendo este o maior valor computavel primo para computadores

de 32 bit.

Para os valores de a e x0 nao ha muitas recomendacoes, porem como x0 sera

o valor que definira toda a sequencia gerada, e natural que sejam utilizados criterios de

escolha para o mesmo de forma que, cada vez que se for gerar uma sequencia, estas sejam

diferentes umas das outras. Para a Ross (2006) sugere o valor de a = 75.

Segundo tais criterios, espera-se que a sequencia gerada seja aparentemente

derivada de uma variavel com distribuicao Uniforme (0, 1) para todo x0 escolhido e que

a mesma ira demorar um tempo consideravelmente grande ate recomecar a geracao.

Outro tipo de metodo para a geracao de numeros pseudo-aleatorios, ainda

dentro da famılia de geradores congruenciais, e o metodo misto. Neste modelo, o valor

sera gerado segundo a equacao por

xn = (axn−1 + c) mod m. (2.3)

Neste modelo, cada numero e calculado dependendo do anterior, bem como no

metodo multiplicativo, e a, c e m sao numeros inteiros, tais que a < m e c < m. Neste

caso, a divisao un = xn/(m− 1) resulta num numero pseudo-aleatorio real pertencente ao

intervalo (0, 1).

Para este trabalho so foi utilizado o metodo congruencial multiplicativo, assim,

para maiores detalhes acerca de outros metodos de geracao veja Ross (2006).

2.2 Geracao de Variaveis Aleatorias

Existem diversos metodos para geracao de variaveis aleatorias. O metodo da

transformada inversa e um deles, ele utiliza a funcao de distribuicao acumulada da variavel

aleatoria a ser gerada junto com uma sequencia de numeros pseudo-aleatorios.

Page 18: Otimiza˘c~ao de um Sistema de Elevadores a partir da ...estatistica.uff.br/wp-content/uploads/sites/33/2019/10/tcc_20122_Fabio... · Loureiro, Fábio Mascarenhas . Otimização de

2.2 Geracao de Variaveis Aleatorias 14

Neste capıtulo serao apresentados as formas de geracao de variaveis aleatorias

discretas e contınuas, utilizando o metodo da transformada inversa. Para mais detalhes

sobre este ou outros metodos de geracao, veja Ross (2006).

2.2.1 Metodo da Transformada Inversa - V. A. Discreta

Para este metodo usaremos o fato da funcao de distribuicao acumulada FX de

uma variavel aleatoria X discreta ser sempre uma funcao do tipo escada. Comecada em

0 e finalizada em 1. Logo, Im(Fx) = (0, 1). Assim, a forma de se gerar uma variavel

aleatoria discreta a partir do metodo da transformada inversa, deve-se primeiro gerar um

numero pseudo-aleatorio no intervalo (0, 1] e em seguida verificar em qual “patamar” da

distribuicao acumulada se encontra o numero gerado, ou seja, em qual intervalo xi, xi+1

se localiza a variavel U ∼ Unif(0, 1) gerada.

Figura 2.1: Funcao de distribuicao acumulada de uma variavel aleatoria discreta.

Explicitando de forma logica o metodo voltado para uma distribuicao discreta

segue que: seja X = x0, x1, x2, . . . os possıveis valores ordenados da variavel aleatoria

X que se quer gerar e P0, P1, . . . , Pn as respectivas probabilidades, podemos obter um

elemento de forma aparentemente aleatoria segundo o pseudo-codigo definido abaixo.

Gera discreta1

2

Gerar uma variavel aleatoria U ∼ Unif(0, 1), isto e, um numero pseudo-aleatorio;3

Definir i = 0 e F = P0;4

Se U < F , retorna xi;5

Page 19: Otimiza˘c~ao de um Sistema de Elevadores a partir da ...estatistica.uff.br/wp-content/uploads/sites/33/2019/10/tcc_20122_Fabio... · Loureiro, Fábio Mascarenhas . Otimização de

2.2 Geracao de Variaveis Aleatorias 15

Incrementa i : i = i+ 1;6

Incrementa F : F = F + Pi;7

Voltar para a linha 5.8

Veja que desta forma, garantimos que a probabilidade de gerar X igual a xi

e dada por Pi, ou seja P (X = xi) = Pi. A exemplo, na figura 2.1 como P0 + P1 < U <

P0 + P1 + P2, o elemento gerado seria x2.

Exemplo 2.2.1. Considere uma variavel aleatoria X com distribuicao dada por:

X 0 1 2

P(X = xj) = pj 1/4 1/2 1/4

Nesse exemplo, mostramos abaixo como pode-se gerar X usando como base o

pseudo-codigo gera discreta.

U = u, onde u ∼ Unif(0, 1)1

se U < 0.25, entao retorna x = x1 = 0, senao:2

se U < 0.75, entao retorna x = x2 = 1, senao:3

retorna x = x3 = 24

Note que para se obter uma amostra com varios elementos, basta replicar o

procedimento descrito diversas vezes.

2.2.2 Metodo da Transformada Inversa - V. A. Contınuas

O metodo da transformada inversa para a geracao de variaveis aleatorias contı-

nuas so pode ser aplicado para gerar uma variavel aleatoria quando e conhecida a inversa

da sua funcao de distribuicao acumulada, denotada por F−1. Segue entao que, seja X

uma variavel aleatoria contınua, entao Fx e uma funcao contınua nao-descrescente, tal

que Im(Fx) = (0, 1).

Page 20: Otimiza˘c~ao de um Sistema de Elevadores a partir da ...estatistica.uff.br/wp-content/uploads/sites/33/2019/10/tcc_20122_Fabio... · Loureiro, Fábio Mascarenhas . Otimização de

2.2 Geracao de Variaveis Aleatorias 16

Supondo X variavel aleatoria tal que F−1 e conhecida, pode-se utilizar o

pseudo-codigo descrito abaixo para se obter uma observacao aparentemente aleatorio de

X.

Gera contınua1

2

Gerar uma variavel aleatoria U ∼ Unif(0, 1), isto e, um numero pseudo-aleatorio;3

Retornar X = F−1(U).4

Veja que assim observacao gerada realmente vem de uma populacao cuja dis-

tribuicao acumulada e dada por F :

P (Saida ≤ x) = P (F−1(U) ≤ x) = P (U ≤ F (x)) = F (x)

Exemplo 2.2.2. Seja X uma variavel aleatoria com densidade f(x) = 2x, 0 < x < 1. Logo,

a distribuicao acumulada e dada por

F (x) =

0, se x < 0

x2, se 0 ≤ x < 1

1, se x ≥ 1

Suponha que se quer gerar um valor deX e para isso o pseudo codigo“Gera contınua”.

Primeiramente deve-se encontrar a funcao de distribuicao acumulada inversa:

X2 = U ⇒ X = U1/2

Uma vez encontrada a inversa da distribuicao acumulada, basta aplica-la na

funcao implementada.

U = u, onde u ∼ Unif(0, 1);1

Retorne x =√U2

Page 21: Otimiza˘c~ao de um Sistema de Elevadores a partir da ...estatistica.uff.br/wp-content/uploads/sites/33/2019/10/tcc_20122_Fabio... · Loureiro, Fábio Mascarenhas . Otimização de

2.2 Geracao de Variaveis Aleatorias 17

Este metodo e bastante eficaz e possui uma forma bem rapida e direta de se

gerar valores aleatorios, porem, ele exige que se saiba alem da funcao acumulada, saber

inverter a mesma. Para as distribuicoes continuas tais que a distribuicao acumulada

nao e conhecida, por exemplo a da distribuicao Normal, sao utilizados outros metodos

que tratam melhor destas especificidades, como o metodo da aceitacao e rejeicao. Neste

trabalho nos limitaremos a falar apenas do metodo da transformada inversa, ja que e mais

simples, em termos de implementacao, e funciona bem na geracao de todas as distribuicoes

aqui usadas. Para maiores detalhes acerca do modelo de aceitacao e rejeicao pode-se

verificar Ross (2006).

2.2.3 Geracao de uma exponencial

A distribuicao exponencial e um dos pilares do processo de Poisson, desta

forma, saber gerar variaveis aleatorias com tais caracterısticas e fundamental para o de-

senvolvimento deste trabalho que tem como base a simulacao de um processo de Poisson.

Esta relacao sera mais bem explicitada no capıtulo 3.

Definicao 2.2.3. Seja X uma variavel aleatoria contınua com funcao de densidade de

probabilidade dada por

f(x) = λe−λx (2.4)

Entao, diz-se que X tem distribuicao exponencial com parametro λ.

Logo, seja X ∼ Exponencial(λ), entao sua funcao de distribuicao acumulada

sera dada por

F (x) = 1− e−λx, x ≥ 0. (2.5)

Veja que a distribuicao exponencial possui uma funcao de distribuicao acumu-

lada inversıvel:

F (x) = 1− e−λx ⇒ F−1(u) =−ln(1− u)

λ.

Verifique que F−1(F (x)) = x.

Page 22: Otimiza˘c~ao de um Sistema de Elevadores a partir da ...estatistica.uff.br/wp-content/uploads/sites/33/2019/10/tcc_20122_Fabio... · Loureiro, Fábio Mascarenhas . Otimização de

2.2 Geracao de Variaveis Aleatorias 18

Vide entao que o metodo da transformada inversa pode ser facilmente utilizado

para a geracao de variaveis aleatorias com distribuicao exponencial como e mostrada no

pseudo-codigo Gera exponencial implementado a seguir.

Gera exponencial1

2

Gerar U ∼ Unif(0, 1);3

Retornar X = − ln(1−U)λ

4

Podemos simplicar ainda mais este codigo uma vez que U ∼ Unif(0, 1) ⇒

1−U ∼ Unif(0, 1). Logo, podemos alterar nosso metodo de geracao para uma forma um

pouco mais simples, computacionalmente e matematicamente. Desta forma, temos que

Gera exponencial1

2

Gerar U ∼ Unif(0, 1);3

Retornar X = − ln(U)λ

4

Page 23: Otimiza˘c~ao de um Sistema de Elevadores a partir da ...estatistica.uff.br/wp-content/uploads/sites/33/2019/10/tcc_20122_Fabio... · Loureiro, Fábio Mascarenhas . Otimização de

19

3 Geracao de um Processo de Poisson

Nesta sessao primeiro serao definidos os processos de Poisson, homogeneos e

nao-homogeneos. Em seguida serao apresentados metodos de geracao desses processos.

3.1 Processo de Poisson

Um processo de Poisson pode ser dito como um caso particular de um processo

de contagem (Ross, 1996) e por isto e fundamental entender o que e um processo de

contagem para depois sim definirmos um processo de Poisson.

Um processo estocastico {N(t), t ≥ 0} e dito como um processo de contagem

quando:

i. N(t) e o total de eventos ocorridos ate o instante t;

ii. N(t) ≥ 0;

iii. N(t) e um valor oriundo de um contagem, portanto deve ser um valor inteiro;

iv. Dado s < t, entao N(s) < N(t);

v. Dado s < t, entao N(t) − N(s) deve ser igual ao numero de eventos ocorridos no

intervalo (s, t].

Um processo de contagem e dito possuir incrementos independentes se o nu-

mero de eventos que ocorrem em intervalos de tempos disjuntos, forem variaveis aleatorias

independentes. Ou seja, se um processo de contagem possui incrementos independentes, o

numero de eventos que ocorrem ate o instante s, N(s), deve ser independente do numero

de eventos que ocorrem entre os instantes t e s, N(t)−N(s).

Definicao 3.1.1. Um processo de contagem e denominado processo de Poisson Homogeneo

com taxa λ, λ > 0, se

i. N(0) = 0;

Page 24: Otimiza˘c~ao de um Sistema de Elevadores a partir da ...estatistica.uff.br/wp-content/uploads/sites/33/2019/10/tcc_20122_Fabio... · Loureiro, Fábio Mascarenhas . Otimização de

3.1 Processo de Poisson 20

ii. O processo possui incrementos independentes;

iii. O numero de eventos em qualquer intervalo de tamanho t possui distribuicao Poisson

com media λt, ou seja, para todo s, t ≥ 0,

P{N(t+ s)−N(s) = n} = e−λt(λt)n

n!, n = 0, 1, . . .

Observe que a partir de iii temos que E[N(t)] = λt e devido a isto λ e chamado

de taxa do processo.

3.1.1 Tempo entre Eventos

Proposicao 3.1.2. Seja {N(t), t ≥ 0} um processo de Poisson homogeneo de taxa λ ≥ 0

e T1 o instante de ocorrencia do primeiro evento. Entao T1 ∼ Exp(λ).

Demonstracao:

FT1(t) = P (T1 ≤ t)

= 1− P (T1 > t)

= 1− P (nenhum evento ocorrer em (0, t))

= 1− P (N(t) = 0)

=

0 , se t < 0;

1− e−λt , se t ≥ 0.

Logo, FT1(t) = 1− e−λt, t ≥ 0. O que nos faz concluir que T1 ∼ Exp(λ)

Veremos agora um resultado mais geral.

Proposicao 3.1.3. : Seja {N(t), t ≥ 0} um processo de Poisson homogeneo de taxa λ ≥ 0

e Ti o instante de ocorrencia do i−esimo evento. Seja X1 = T1 e Xi = Ti−Ti−1 para i ≥ 2

o intervalo de tempo entre as ocorrencias de ındices i e i− 1.

Entao, Xi ∼ Exp(λ).

Esta proposicao esta enunciada e demonstrada em Taylor e Karlin (1998).

Page 25: Otimiza˘c~ao de um Sistema de Elevadores a partir da ...estatistica.uff.br/wp-content/uploads/sites/33/2019/10/tcc_20122_Fabio... · Loureiro, Fábio Mascarenhas . Otimização de

3.2 Processo de Poisson nao-Homogeneo 21

3.2 Processo de Poisson nao-Homogeneo

O processo de Poisson nao-homogeneo se faz necessario quando o numero medio

de ocorrencias varia no decorrer do tempo t.

Definicao 3.2.1. Um processo de contagem {N(t), t ≥ 0} e dito ser um processo de Poisson

nao-homogeneo com funcao de intensidade λ(·), λ(t) ≥ 0, se

i. N(0) = 0;

ii. {N(t), t ≥ 0} possui incrementos independentes;

iii. limh→0 P{exatamente 1 evento entre t e t+ h}/h = λ(t);

iv. limh→0 P{2 ou mais eventos entre t e t+ h}/h = 0.

A funcao m(t), definida por

m(t) =

∫ t

0

λ(s)ds, t ≥ 0 (3.1)

e chamada de funcao do valor medio e indica o numero medio de ocorrencias no intervalo

(0, t). Utilizando este fato, segue que: N(t + s) − N(t) e uma variavel aleatoria com

distribuicao de Poisson com media m(t+ s)−m(t).

Proposicao 3.2.2. Suponha que eventos ocoram de acordo com um processo de Poisson

homogeneo com taxa λ. Suponha tambem que, independente de qualquer coisa que tenha

acontecido, um evento que ocorra no instante t e contado com probabilidade p(t). Entao

este processo de contagem obedece um processo de Poisson nao homogeneo com funcao

de intensidade λ(t) = λp(t).

A proposicao acima esta implementada e demonstrada em Ross (2006). Esse

resultado sera de grande utilidade para gerar um processo de Poisson nao homogeneo.

3.3 Geracao de Processo de Poisson Homogeneo

Para se gerar um processo de Poisson Homogeneo, iremos utilizar como base o

fato dos intervalos entre cada ocorrencia serem variaveis aleatorias independentes e com

distribuicao Exponencial, como mostrado na Secao 3.1.1.

Page 26: Otimiza˘c~ao de um Sistema de Elevadores a partir da ...estatistica.uff.br/wp-content/uploads/sites/33/2019/10/tcc_20122_Fabio... · Loureiro, Fábio Mascarenhas . Otimização de

3.4 Geracao de Processo de Poisson nao-Homogeneo 22

Seguindo esta ideia, para gerar os instantes de ocorrencia de eventos de acordo

com o processo de Poisson Homogeneo serao efetivamente gerados os intervalos de tempo

entre ocorrencias consecutivas, que seguem o modelo exponencial.

Geracao do Proximo Instante de Tempo

Vejamos agora o pseudo-codigo de uma funcao que recebe como argumento o

tempo corrente t e retorna o instante da proxima ocorrencia de um processo de Poisson

homogeneo de taxa λ. A funcao sera denotada por “Prox t h” e e implementada abaixo.

Prox t h1

2

Entrada: t > 0;3

Gera U ∼ Unif(0, 1);4

t = t− ln(U)λ

;5

Retornar t.6

Veja que se U ∼ Unif(0, 1), entao − ln(U)λ∼ Exp(λ), como ja foi mostrado no

Capıtulo 2.

Uma vez ja implementada esta funcao, caso queira gerar n tempos de ocorren-

cia de eventos, basta utilizar esta funcao sucessivas vezes, atualizando sempre o t como o

tempo da ultima ocorrencia.

3.4 Geracao de Processo de Poisson nao-Homogeneo

Como ja citado anteriormente, nem todos os processos que se deseja modelar

sao bem ajustados a um processo de Poisson homogeneo. Alguns sistemas podem nao

possuir suas taxas de chegada constantes ao longo do tempo, mas sim variaveis.

Desta forma, suponha que se quer gerar o instante da proxima ocorrencia de

um processo de Poisson com funcao de intensidade λ(t). Primeiramente, deve-se escolher

λ tal que λ(t) ≤ λ para todo momento de tempo t.

Page 27: Otimiza˘c~ao de um Sistema de Elevadores a partir da ...estatistica.uff.br/wp-content/uploads/sites/33/2019/10/tcc_20122_Fabio... · Loureiro, Fábio Mascarenhas . Otimização de

3.4 Geracao de Processo de Poisson nao-Homogeneo 23

Posterior a isto, usaremos a Proposicao 3.2.2 para gerar os elementos de um

processo nao homogeneo a partir de um homogeneo. Ou seja, se um evento de processo de

Poisson homogeneo que ocorre com taxa λ em um tempo t e contado com probabilidade

λ(t)/λ, entao este processo de contagem de eventos sera um processo de Poisson nao-

homogeneo com funcao de intensidade dada por λ(t). Assim, utilizando a simulacao

de um processo de Poisson homogeneo e acrescentando uma probabilidade de contagem

λ(t)/λ aos eventos, ter-se-a um processo de Poisson nao-homogeneo.

Geracao do Proximo Instante de Tempo t

Vejamos agora a implementacao de uma funcao que recebe o tempo t cor-

rente no sistema e, utilizando os conceitos definidos acima, retorna o proximo instante de

tempo de ocorrencia de um evento decorrente de um processo de Poisson nao-Homogeneo.

Denotada por Prox t, veja abaixo o pseudo-codigo da mesma.

Prox t1

2

Entrada: t > 0;3

Gerar U ∼ Unif(0, 1);4

t = t− ln(U)λ

;5

Gerar V ∼ Unif(0, 1);6

Se V ≤ λ(t)/λ retorne t, senao:7

Volte para a linha 4.8

Note que os primeiros itens sao identicos a geracao do processo de Poisson

homogeneo e apenas foi acrescentada uma“chance”de contagem deste evento no processo.

Page 28: Otimiza˘c~ao de um Sistema de Elevadores a partir da ...estatistica.uff.br/wp-content/uploads/sites/33/2019/10/tcc_20122_Fabio... · Loureiro, Fábio Mascarenhas . Otimização de

24

4 Simulacao de Sistemas

Apresentando o conceito de modelo, este e, por definicao, uma representacao

estatica do mundo. A simulacao entao adiciona aspectos temporais ao “modelo” buscando

representar como o sistema modelado varia no decorrer do tempo. Assim, a simulacao

pode ser definida como uma representacao tempo-variavel do modelo (Sokolowski e Banks,

2009).

Observe tambem que a simulacao nos da a vantagem de podermos conduzir

multiplos experimentos sobre um modelo em condicoes variaveis sem termos a necessidade

de grandes recursos nem de modificar o sistema criado.

A simulacao possui basicamente duas vertentes, simulacao de eventos discretos

e simulacao contınua. A simulacao de eventos discretos decorre daqueles eventos que va-

riam de um estado para outro com o passar do tempo enquanto que na simulacao contınua

tratamos de casos que se comportam continuamente ao longo do tempo independente dos

eventos que ocorrem no sistema.

A exemplo, Sokolowski e Banks (2009) compara um semaforo a um carro.

Equanto o semaforo so pode estar nas cores verde, amarelo ou vermelho (estados 1, 2 ou

3) independente do tempo, por outro lado, o carro nao altera sua velocidade para zero

instantaneamente mas sim vai variando sua velocidade, desacelarando, no decorrer do

tempo. Esta mudanca de velocidade e contınua.

Diferenciar estes dois tipos de eventos e importante para a implementacao dos

processos que se seguirao. Neste trabalho serao abordados apenas modelos discretos e

neste capıtulo serao apresentados alguns tipos de sistemas e suas respectivas formas de

simulacao.

Alem do mais, ainda podemos classificar os modelos de simulacao em deter-

minısticos ou estocasticos (existem outros tipos, porem menos usuais). Num modelo de

simulacao determinıstico, este, nao contem nenhuma variavel aleatoria, ou seja, para um

conjunto conhecido de dados de entrada teremos um unico conjunto de resultados de saıda.

Ja nos modelos estocasticos, existem uma ou mais variaveis aleatorias como entrada, que

levam a saıdas aleatorias. E utilizado o modelo estocastico quando ao menos uma das

Page 29: Otimiza˘c~ao de um Sistema de Elevadores a partir da ...estatistica.uff.br/wp-content/uploads/sites/33/2019/10/tcc_20122_Fabio... · Loureiro, Fábio Mascarenhas . Otimização de

4.1 Conceituando Eventos Discretos 25

caracterısticas operacionais e dada por uma funcao de probabilidade.

Vide pela definicao, entao, que os modelos apresentados e os que serao imple-

mentados ao longo do trabalho sao modelos de simulacao estocastico de eventos discretos.

4.1 Conceituando Eventos Discretos

Primeiramente, vale conceituar alguns itens que serao usados frequentemente

de agora em diante. A simulacao de eventos discretos pode ser definida como a va-

riacao ocorrida num modelo devido a uma sequencia cronologica de eventos que agiram,

agem, sobre o mesmo; eventos sao ocorrencias instantaneas que causam a variacao, mu-

danca, do estado do sistema; e o estado do sistema e definido por uma ou mais variaveis

que descrevem completamente um sistema para qualquer tempo dado.

Segue entao que, o princıpio de uma simulacao deve ser a definicao das variaveis

que serao utilizadas bem como os eventos possıveis, pois serao eles que irao nortear nosso

algoritmo para uma maior proximidade da realidade. Para o sistema deste trabalho usou-

se basicamente tres tipos de variaveis:

1. Variaveis que definem o sistema - Sao representadas pelas variaveis utilizadas

na definicao do sistema. Podem ser representadas pelo tempo maximo do sistema

T e λ(t), dentre outras;

2. Variaveis de Interesse - Sao as variaveis que serao criadas durante o codigo

visando analises futuras. Aqui estao incluıdas variaveis como tamanho maximo

de uma fila, quantidade de eventos ocorridos ate o tempo T , maior tempo entre

eventos, e quaisquer outras variaveis que se tenha interesse no experimento;

3. Variaveis de Controle - Sao aquelas que definem as mudancas de estado do sis-

tema, nos ajudando a controlar e conseguir realizar a simulacao. A real utilidade

destas variaveis se tornara mais clara no decorrer do capıtulo. Entretanto, podemos

citar como exemplos desta variavel o tempo t corrente e total de pessoas no sistema

num dado instante.

Nas secoes a seguir serao vistos exemplos classicos de sistemas estocasticos

cuja simulacao e feita via eventos discretos. Muitos sistemas mais complexos, como o

Page 30: Otimiza˘c~ao de um Sistema de Elevadores a partir da ...estatistica.uff.br/wp-content/uploads/sites/33/2019/10/tcc_20122_Fabio... · Loureiro, Fábio Mascarenhas . Otimização de

4.2 Sistema com um servidor e fila unica 26

apresentado no capıtulo 5 em geral podem ser decompostos em partes mais simples, como

tais exemplos.

No decorrer deste capıtulo serao apresentados algumas aplicacoes das teorias e

algoritmos ja implementados anteriormente para simularmos sistemas de fila/servidor. Na

secao 4.2 sera apresentado como se construir a base de um algoritmo para um sistema de

servidor e fila unicos. Nas secoes 4.3 e 4.4 serao implementados algoritmos para multiplos

servidores, com filas unica e multiplas.

4.2 Sistema com um servidor e fila unica

Nesta secao sera apresentado um pseudo-codigo que realiza a simulacao de um

sistema com um unico servidor em fila unica.

Neste tipo de sistema os clientes chegam e, caso o servidor esteja desocupado,

sao imediatamente atendidos. Caso contrario, o cliente entra na fila. Assim, os clientes

serao atendidos na ordem em que chegaram. Este conceito e conhecido como FIFO (first

in-first out) e e valido para todos os casos de sistemas com fila unica. De forma simples

pode-se exemplificar este sistema como um banco onde so esteja funcionando um caixa.

Saıde de ClientesEntrada de Clientes

Figura 4.1: Sistema com um servidor em fila unica

Ao realizarmos a simulacao deste sistema podemos estar interessados em ana-

lisar o tempo que cada cliente fica no sistema ou o tamanho maximo da fila. Veja que

ambos sao variaveis aleatorias que nao conhecemos a distribuicao, uma vez que o sistema e

complexo. O que queremos com a simulacao e observar possıveis amostras dessas variaveis

para poder fazer inferencias em cima dela e com isso tomar decisoes.

Para realizar a simulacao utilizaremos as seguintes variaveis:

1. Variaveis que definem o sistema - tempo maximo T que o servidor ira funcionar;

e taxa de chegada λ(t) dos clientes no sistema;

Page 31: Otimiza˘c~ao de um Sistema de Elevadores a partir da ...estatistica.uff.br/wp-content/uploads/sites/33/2019/10/tcc_20122_Fabio... · Loureiro, Fábio Mascarenhas . Otimização de

4.2 Sistema com um servidor e fila unica 27

2. Variaveis de interesse - um array que guarda o horario de chegada dos clientes

no sistema, denominado NA; um array que guarda o horario de saıda dos clientes,

denominado ND;

3. Variaveis de controle - tempo corrente (t); quantidade de pessoas no sistema em

um dado instante t (n); tempo de chegada do proximo cliente no sistema (tc); tempo

de saıda do ultimo cliente ate o instante t (ta); e o numero de pessoas que entraram

no sistema (S).

Para a implementacao sera considerado que os clientes chegam no sistema de

acordo com um processo de Poisson, homogeneo ou nao, dependendo da modelagem.

Caso a escolha seja por chegadas de acordo com um processo homogeneo, a funcao prox t

citada no pseudo codigo a seguir deve ser implementada como prox t h da pagina 22,

caso contrario, essa funcao sera definida por prox t da pagina 23. Assim, segue abaixo o

pseudo-codigo para a simulacao de tal sistema.

Inicializacao:1

t = 0;2

ta =∞;3

tc = prox t(0);4

n = 0;5

S = 0.6

NA = ND = NULL;7

8

Caso 1: tc < ta e tc < T (um cliente chega no sistema)9

t = tc;10

S = S + 1;11

NA[S] = t;12

tc = prox t(t);13

n = n+ 1;14

se n = 1, gera ta;15

Volte para a linha 9.16

17

Caso 2: ta ≤ tc e tc, ta < T (termina o atendimento de um cliente)18

Page 32: Otimiza˘c~ao de um Sistema de Elevadores a partir da ...estatistica.uff.br/wp-content/uploads/sites/33/2019/10/tcc_20122_Fabio... · Loureiro, Fábio Mascarenhas . Otimização de

4.3 Sistema com varios servidores e fila unica 28

t = ta;19

ND[S − n] = ta;20

n = n− 1;21

se n ≥ 1, gera ta;22

se n = 0, ta =∞; Volte para a linha 9.23

24

Caso 3: T ≤ ta e T ≤ tc (sistema e esvaziado: nao entram mais clientes)25

se n = 0, FIM;26

t = ta;27

ND[S − n] = ta;28

n = n− 1;29

se n ≥ 1, gera ta e volta para a linha 27;30

se n = 0, FIM.31

No codigo mostrado nao especificamos qual a funcao para gerar ta. Isto se

deve ao fato de que este tempo pode ser qualquer funcao G definida pelo pesquisador ao

implementar o codigo. Neste caso o ideal seria fazer um estudo previo da distribuicao

mais adequada.

Note que para a obtencao de estatısticas tais como tempo medio de atendi-

mento e ou total de clientes atendidos no sistema, basta analisarmos as variaveis NA,

ND e S. A exemplo, sendo NA e ND arrays que guardam o horario de chegada e saıda

dos clientes, logo NA − ND e um array que guarda o tempo que cada cliente ficou no

sistema.

Perceba que o codigo apresentado nao possui muitas variaveis de interesse e ou

de controle, todavia, este pseudo-codigo tem a intencao de auxiliar, servindo como base,

na construcao de sistemas mais complexos com entradas e saıdas semelhantes.

4.3 Sistema com varios servidores e fila unica

Na secao anterior foi implementado o pseudo-codigo para um sistema com um

unico servidor e fila unicos. Nesta, sera construıdo a sequencia logica para implementacao

de um sistema com k servidores e uma unica fila.

Page 33: Otimiza˘c~ao de um Sistema de Elevadores a partir da ...estatistica.uff.br/wp-content/uploads/sites/33/2019/10/tcc_20122_Fabio... · Loureiro, Fábio Mascarenhas . Otimização de

4.3 Sistema com varios servidores e fila unica 29

Considere um sistema composto por k servidores. Uma vez que um cliente

chega no sistema, este entra na fila caso todos os servidores estejam ocupados ou entra

no primeiro que estiver livre.

Entrada de Clientes

Clientes

Saıda de clientes

Servidor k

...

Saıda de clientes

Servidor 1

Figura 4.2: Sistema com k servidores e fila unica

Suponha que se quer simular este sistema levando em consideracao as mesmas

afirmacoes feitas na secao 4.2. Os clientes chegam conforme um processo de Poisson nao

homogeneo com taxa λ(t) e os tempos de atendimento dos servidores e determinado por

um funcao G.

Para este tipo de sistema deve-se levar em consideracao algo que nao era im-

portante para um sistema com um unico servidor. Na secao 4.2 seguia-se um sistema

FIFO, coisa que neste tipo de sitema nao podemos afirmar. Ou seja, o i-esimo cliente que

chega ao sistema nao necessariamente sera o i-esimo cliente a sair do sistema, uma vez

que este pode demorar mais no atendimento do que outro cliente que chegue depois dele.

Para a simulacao deste sistema utilizaremos as seguintes variaveis:

1. Variaveis que Definem o Sistema - tempo maximo que o servidor ira funcionar

(T ); e taxa de chegada dos clientes no sistema (λ(t));

2. Variaveis de Interesse - horarios de chegada dos clientes no sistema, denominado

NA; horarios de saıda dos clientes, denominado ND;

3. Variaveis de Controle - tempo corrente (t); quantidade de pessoas no sistema

em um dado instante t (n); o tempo de chegada do proximo cliente no sistema (tc);

um array com os horarios de saıda dos clientes do servidor (ta); e a quantidade de

pessoas que entram no sistema, (S).

Page 34: Otimiza˘c~ao de um Sistema de Elevadores a partir da ...estatistica.uff.br/wp-content/uploads/sites/33/2019/10/tcc_20122_Fabio... · Loureiro, Fábio Mascarenhas . Otimização de

4.3 Sistema com varios servidores e fila unica 30

Supondo que se tem os mesmso interesses da secao 4.2, vejamos como pode-se

implementar um pseudo-codigo para este tipo de sistema.

Inicializacao:1

t = 0;2

ta = (∞, . . . ,∞);3

n = 0;4

S = 0;5

tc = prox t(0);6

NA = ND = NULL;7

8

Caso 1: tc < min(ta) e tc < T (um cliente entra no sistema)9

t = tc;10

S = S + 1;11

NA[S] = t;12

tc = prox t(t);13

n = n+ 1;14

se n ≤ k, seja i o ındice de um sevridor vazio, gere ta[i];15

Volte para a linha 9.16

17

Caso 2: min(ta) ≤ tc e tc,min(ta) < T (um cliente termina o atendimento)18

t = min(ta);19

ND[j] = t, onde j corresponde a ordem de chegada cliente que esta saindo do sistema;20

n = n− 1;21

seja i o ındice do servidor que terminou o atendimento;22

se n ≥ k, gere ta[i]; senao faca ta[i] =∞23

Volte para a linha 9.24

25

Caso 3: T ≤ min(ta) e T ≤ tc (sistema e esvaziado)26

se n = 0, FIM;27

t = min(ta);28

ND[j] = t, onde j corresponde a ordem de chegada do cliente que esta saindo do sistema;29

n = n− 1;30

Page 35: Otimiza˘c~ao de um Sistema de Elevadores a partir da ...estatistica.uff.br/wp-content/uploads/sites/33/2019/10/tcc_20122_Fabio... · Loureiro, Fábio Mascarenhas . Otimização de

4.4 Sistema com varios servidores e filas em paralelo 31

se n ≥ k, seja i o ındice do servidor que acabou o atendimento, gere ta[i], senao ta[i] =∞31

32

Volte para a linha 27;33

Para o sistema simulado acima vale algumas consideracoes. A variavel ta, e

vetor de tamanho k onde cada posicao corresponde a um servidor, sendo este ordenado

segundo sua posicao neste vetor. Ou seja, o tempo de atendimento do servidor i sera

representado por ta[i]. Note que as comparacoes em cada caso utiliza min(ta), isto e,

o menor valor do vetor ta. Desta forma, sabemos o proximo servidor que sera liberado.

A atualizacao de ND tambem se difere da secao 4.2, ja que, como dito, os clientes nao

necessariamente sao atendidos na mesma ordem em que entram no sistema.

Caso queira inferir em cima dos dados simulados vale as consideracoes realiza-

das na secao 4.2, basta utilizar NA, ND, S e qualquer outro tipo de variavel de interesse

que o pesquisador queira incrementar no pseudo-codigo implementado. Sao exemplos de

variaveis que nao estamos controlando neste pseudo-codigo: tamanho maximo da fila e

quantidade de pessoas atendidas por servidor. Note tambem que os servidores atendiam

todos segundo uma funcao G e caso queira tornar os sistema mais real deve-se levar

em consideracao uma distribuicao diferente para cada servidor, ja que, usualmente, os

atendentes, servidores, dificilmente atenderao de forma identica.

4.4 Sistema com varios servidores e filas em paralelo

Nesta secao iremos abordar o ultimo caso de simulacao de sistemas. O sistema

tera como base k servidores, como na secao 4.3, porem iremos considerar que cada cliente

escolhe ao chegar em qual servidor gostaria de ser atendido, criando-se desta forma uma

fila especıfica para cada servidor.

Como falado, representaremos um sistema com k servidores e k filas em para-

lelo. Considere que os clientes escolhem em qual servidor serao atendidos de acordo com

a quantidade de pessoas aguardando na fila do mesmo. Caso os servidores possuam filas

de tamanhos semelhantes, o cliente escolhe a primeira destas.

Para este sistema, tal qual na Secao 4.3, o sistema nao segue um padrao FIFO.

Entretanto, aqui o cliente opita por qual servidor sera atendido logo na sua chegada, en-

Page 36: Otimiza˘c~ao de um Sistema de Elevadores a partir da ...estatistica.uff.br/wp-content/uploads/sites/33/2019/10/tcc_20122_Fabio... · Loureiro, Fábio Mascarenhas . Otimização de

4.4 Sistema com varios servidores e filas em paralelo 32

quanto que, no sistema da secao 4.3, os clientes escolhiam isto na exata hora do atendi-

mento.

Entrada de clientes

Fila 1

...

Entrada de clientes

Fila k

Saıda de clientes

Servidor k

...

Saıda de clientes

Servidor 1

Figura 4.3: Sistema com k servidores e k filas

Com isto, para realizarmos a confeccao do pseudo-codigo deste sistema utili-

zaremos as seguintes variaveis:

1. Variaveis que definem o sistema - tempo maximo que o servidor ira funcionar

(T ); e taxa de chegada dos clientes no sistema λ(t);

2. Variaveis de interesse - horario de chegada dos clientes no sistema (NA); e horario

de saıda dos clientes (ND);

3. Variaveis de controle - tempo corrente (t); quantidade de pessoas no sistema em

um dado instante (n); tempo de chegada do proximo cliente no sistema (tc); vetor

com horarios de saıdas dos clientes do sistema (ta); vetor que indica a quantidade

de pessoas na fila de cada servidor (fila).

Com as variaveis definidas, tem-se que o pseudo-codigo para este tipo de sis-

tema pode ser implementado como e mostrado a seguir.

Inicializacao:1

t = 0;2

ta = (∞, . . . ,∞);3

n = 0;4

Page 37: Otimiza˘c~ao de um Sistema de Elevadores a partir da ...estatistica.uff.br/wp-content/uploads/sites/33/2019/10/tcc_20122_Fabio... · Loureiro, Fábio Mascarenhas . Otimização de

4.4 Sistema com varios servidores e filas em paralelo 33

S = 0;5

fila = (0, . . . , 0);6

NA = ND = NULL;7

tc = prox t(0);8

9

Caso 1: tc < min(ta) e tc < T (um cliente entra no sistema)10

t = tc;11

S = S + 1;12

NA[S] = t;13

n = n+ 1;14

seja i o ındice do servidor com fila menor;15

fila[i] = fila[i] + 1; se fila[i] = 1, gera ta[i];16

Volte para a linha 10.17

18

Caso 2: min(ta) ≤ tc e min(ta) < T (um cliente termina o atendimento)19

t = min(ta);20

ND[j] = t, onde j corresponde a ordem de chegada do cliente que esta saindo do sistema;21

n = n− 1;22

seja i o ındice do servidor que terminou o atendimento;23

fila[i] = fila[i]− 1;24

se fila[i] ≥ 1, gera ta[i];25

senao ta[i] =∞;26

Volte para a linha 10.27

28

Caso 3: T ≤ min(ta) e T ≤ tc (sistema e esvaziado)29

se n = 0, FIM;30

t = min(ta);31

ND[j] = t, onde j corresponde ao ındice de chegada do cliente que esta saindo do sistema;32

n = n− 1;33

seja i o ındice do servidor que terminou o atendimento;34

fila[i] = fila[i]− 1;35

se fila[i] ≥ 1, gera ta[i]; senao, ta[i] =∞;36

Volte para a linha 3037

Page 38: Otimiza˘c~ao de um Sistema de Elevadores a partir da ...estatistica.uff.br/wp-content/uploads/sites/33/2019/10/tcc_20122_Fabio... · Loureiro, Fábio Mascarenhas . Otimização de

4.5 Determinando o numero de simulacoes realizadas 34

Acerca deste sistema, valem os mesmos comentarios feitos nas Secoes 4.2 e 4.3.

No entanto, ao simularmos os sistemas com k servidores atendendo com um unica fila ou

com filas em paralelo podemos obter um resultado bastante conhecido.

Se mantivermos a mesma funcao de atendimento G e chegada dos clientes

com mesmo λ(t) para ambos os sistemas, podemos realizar comparacoes em relacao a

performance de cada um. Observando os tempos de espera no sistema, os tamanhos

maximos da fila e ou os tempos que cada servidor fica ocioso, dentre outras posıveis

variaveis, pode-se constatar um resultado bastante conhecido que e a preferencia pela

escolha de uma unica fila.

Alcancar tal resultado seria bastante complexo, talvez ate impossıvel, analiti-

camente devido a dificuldade em trabalhar com taxas de chegada nao homogeneas, por

exemplo.

4.5 Determinando o numero de simulacoes realizadas

Um ponto importante quando se usa a simulacao para a tomada de decisoes e

o numero de simulacoes que garantem que o resultado obtido e confiavel. Como em geral

estamos analisando a media de alguma variavel aleatoria podemos nos basear na lei dos

grandes numeros.

Lei dos Grandes Numeros

A Lei dos Grandes numeros e uma das aplicacoes de convergencia de variaveis

aleatorias, alem de um resultado muito importante em probabilidade. De forma geral o

teorema mostra que uma sequencia de variaveis aleatorias definida pela media amostral

de variaveis aleatorias identicamente distribuıdas e com esperanca finita converge para a

variavel aleatoria degenerada dada pela media populacional.

Existem duas versoes principais dessa lei, a versao fraca e a forte. A dife-

renca entre elas e o tipo de convergencia usada: a lei fraca garante a convergencia em

probabilidade enquanto a versao forte garante a convergencia quase certa.

Teorema 4.5.1. Lei Fraca dos Grandes Numeros de Khintchin

Seja {Xn} uma sequencia de variaveis aleatorias independentes, identicamente distribuıdas

Page 39: Otimiza˘c~ao de um Sistema de Elevadores a partir da ...estatistica.uff.br/wp-content/uploads/sites/33/2019/10/tcc_20122_Fabio... · Loureiro, Fábio Mascarenhas . Otimização de

4.5 Determinando o numero de simulacoes realizadas 35

tais que E[Xn] = µ <∞. Entao,

XnP−−−→

n→∞µ,

onde Xn =∑n

i=1Xi

n.

Teorema 4.5.2. Lei Forte dos Grandes Numeros de Kolmogorov

Seja {Xn} uma sequencia de variaveis aleatorias independentes, identicamente distribuıdas

tais que E[Xn] = µ <∞. Entao,

Xnq.c.−−−→n→∞

µ,

onde Xn =∑n

i=1Xi

n.

4.5.1 Criterio de Parada das Simulacoes

Seja T a variavel para a qual queremos determinar a sua media e seja Ti a

observacao dessa variavel na simulacao i. Defina Wi = T1+T2+...+Tii

, ou seja, Wi e a media

amostral das primeiras i observacoes da variavel T .

Pela lei dos grandes numeros podemos garantir que Wi −−−→i→∞

E[T ]. Dessa

forma o numero de simulacoes sera determinado pela variavel Wi. Enquanto Wi varia

muito, deve-se continuar simulando. A partir do momento que Wi varia pouco com a

atualizacao feita devido a novas simulacoes, podemos assumir que Wi ja esta proximo do

seu limite, logo proximo de E[T ]. Nesse caso assumimos que o ultimo Wi calculado e uma

boa aproximacao para o valor procurado E[T ].

Page 40: Otimiza˘c~ao de um Sistema de Elevadores a partir da ...estatistica.uff.br/wp-content/uploads/sites/33/2019/10/tcc_20122_Fabio... · Loureiro, Fábio Mascarenhas . Otimização de

36

5 Aplicacao Pratica: Simulando um Sistema

de Elevadores

Nos capıtulos anteriores, vimos que a simulacao e bastante empregada quando

nao podemos resolver de forma analıtica nossos problemas. Entretanto, vimos diversos

modelos isolados que poderiam auxiliar um futuro programador a realizar a simulacao de

um dado sistema.

Neste capıtulo sera apresentada uma aplicacao dos conceitos falados ate agora

para simular um sistema de elevadores. Nas Secoes 5.2 e 5.3 serao apresentadas desde

a implementacao do pseudo-codigo utilizado na simulacao do sistema ate a extracao das

informacoes e posterior analise das mesmas. Serao realizada tambem comparacoes acerca

das melhores formas de disposicao do sistema, visando otimizar os tempos de espera dos

clientes.

5.1 Introducao

Atualmente, devido a quantidade de predios e ate mesmo pela pratcidade,

vemos uma grande utilizacao dos elevadores. Entretanto, nem sempre sao realizados

estudos para se saber como alocar ou quantos elevadores utilizar.

Devido a isto, e comum nos depararmos com longas filas ou uma grande quanti-

dade de elevadores que ficam em desuso por nao considerar a taxa de chegada dos clientes

naquele local.

Tendo em vista tais problemas, neste capıtulo iremos abordar algumas manei-

ras de se dispor um sistema de elevadores, de modo a poder otimizar o tempo gasto pelas

pessoas na fila e a quantidade de elevadores otima.

Os sistemas levados em consideracao foram dois:

� Sistema 1: n elevadores parando em todos os andares; e

� Sistema 2: n elevadores parando em andares especıficos.

Page 41: Otimiza˘c~ao de um Sistema de Elevadores a partir da ...estatistica.uff.br/wp-content/uploads/sites/33/2019/10/tcc_20122_Fabio... · Loureiro, Fábio Mascarenhas . Otimização de

5.2 Algoritmo 37

Para o sistema 1, foi levado em consideracao uma fila unica, ja que, como

falado na Secao 4.4, um servidor com fila unica e mais eficiente do que um com filas em

paralelo. Para o sistema 2 foi considerada uma fila para cada elevador.

Na secao seguinte serao explicitadas algumas consideracoes feitas acerca dos

sistemas simulados e como foram implementados.

5.2 Algoritmo

Nesta secao sera mostrado como foram implementados os codigos de ambos os

sistemas e as compracoes, analises e discussoes acerca dos dados obtidos serao realizados

na secao 5.3.

Veja que para as simulacoes seguintes foram incluıdas uma lista de funcoes

uteis para a implementacao do algoritmo. Tais funcoes servirao para descrever de forma

mais realıtica o fenomeno que se quer simular.

Para ambos os sistemas, tambem nao foi levado em consideracao a entrada de

passageiros nos andares superiores. Ou seja, os passageiros entram no sistema apenas pelo

andar terreo e sao levados de elvador para os andares desejados. Porem nao esta sendo

considerado que eles peguem o elevador para descer e sair do sistema.

5.2.1 Sistema 1: n elevadores parando em todos os andares

Para a simulacao deste sistema, levou-se em consideracao a utilizacao de n

elevadores onde todos podem parar em qualquer andar. Para a implementacao do mesmo,

foram utilizadas as funcoes prox t e prox t h.

Para a realizacao da simulacao foram utilizadas as seguintes variaveis:

1. Variaveis que definem o sistema - tempo maximo que o servidor ira funcionar

(T ); taxa de chegada dos clientes no sistema (λ); numero maximo de pessoas por

elevador, (max elevador); quantidade de elevadores no sistema (n elevadores); e

numero de andares (n andares);

2. Variaveis de interesse - vetor com as horas de chegada de cada pessoa (NA);

numero de pessoas por dia no elevador (Nc); vetor com as horas de embarques de

Page 42: Otimiza˘c~ao de um Sistema de Elevadores a partir da ...estatistica.uff.br/wp-content/uploads/sites/33/2019/10/tcc_20122_Fabio... · Loureiro, Fábio Mascarenhas . Otimização de

5.2 Algoritmo 38

cada passageiro (ND); e o numero de pessageiros que ja embarcaram (Ne);

3. Variaveis de controle - tempo corrente (t); uma matriz n andares×n elevadores

em que guarda a quantidade pessoas que irao saltar em cada andar de modo que

em cada linha guarda-se o vetor de andares de cada elevador (andares); vetor que

indica quando os elevadores acabam a viagem (temp viag); vetor com os instantes

que os elevadores retornam ao terreo (temp volta); instante que o proximo cliente

chega na fila (tc); e o numero de pessoas na fila num dado instante t (n fila).

Alem das variaveis, foram utilizadas algumas funcoes uteis durante a simulacao

com o intuito de gerar os andares escolhidos pelos passageiros, atualizar o tempo de viagem

dos elevadores dentre outras.

Veja abaixo o pseudo-codigo para a implementacao do sistema simulado.

Inicializacao:1

2

NA = ND = NULL;3

Nc = Ne = 0;4

max fila = 0;5

andaresn andares×n elevadores = 0;6

tc = prox t(0);7

temp volta = (∞, . . . ,∞);8

temp viag = (∞, . . . ,∞);9

n fila = 0;10

11

Caso 1: tc < min(temp viag) e tc < min(temp volta) (um passageiro chega na fila)12

13

t = tc;14

Nc = Nc + 1;15

NA[Nc] = t;16

Se existe algum elevador no terreo e seja i o seu ındice:17

- - Ne = Ne + 1;18

- - ND[Ne] = t;19

Page 43: Otimiza˘c~ao de um Sistema de Elevadores a partir da ...estatistica.uff.br/wp-content/uploads/sites/33/2019/10/tcc_20122_Fabio... · Loureiro, Fábio Mascarenhas . Otimização de

5.2 Algoritmo 39

- - Atualizar o vetor andares[i, ] com o andar escolhido pelo passageiro;20

- - Atualizar temp viag[i];21

- - tc = prox t(t);22

Caso nao exista elevador no terreo, e seja k o elevador que ira descer primeiro;23

- - Se n fila = 0, entao:24

- - - Atualizar temp volta[k];25

t c = prox t(t);26

n fila = n fila+ 1;27

28

Caso 2: min(temp viag) < tc , min(temp viag) < min(temp volta) (o elevador vai29

parar)30

31

Seja k o elevador que ira parar, t = temp viag[k];32

temp viag[k] =∞;33

34

Caso 3: min(temp volta) < tc) e min(temp volta) < min(temp viag) (o elevador sera35

recarregado)36

37

Seja k o elevador que sera recarregado, t = temp volta[k];38

andares[k, ] = 0, ou seja, toda a linha k da matriz andares sera zerada;39

Se n fila > max elevador, entao:40

- - atualizar andares[k, ] segundo os andares escolhidos pelos passageiros;41

- - ND[Ne, Ne + 1, . . . , Ne +max elevador] = t;42

- - Ne = Ne +max elevador;43

- - n fila = n fila−max elevador;44

- - atualizar temp viag[k];45

- - atualizar temp volta[k];46

Senao: – atualizar andares[k, ] segundo os andares esocolhidos pelos passageiros;47

– ND[Ne, Ne + 1, . . . , Ne +max elevador] = t;48

– Ne = Ne +max elevador;49

– n fila = 0;50

– atualizar temp viag[k];51

– temp volta[k] =∞;52

Page 44: Otimiza˘c~ao de um Sistema de Elevadores a partir da ...estatistica.uff.br/wp-content/uploads/sites/33/2019/10/tcc_20122_Fabio... · Loureiro, Fábio Mascarenhas . Otimização de

5.2 Algoritmo 40

Note que este pseudo-codigo e bem mais complexo do que os apresentados ate

aqui. Entretanto, sua implementacao e embasada no outros mais simples realizados no

Capıtulo 4.

5.2.2 Sistema 2: n elevadores parando em andares intercalados

Nesta secao, iremos apresentar a simulacao de um sistema bastante seme-

lhante com o anterior, entretanto, cada elevador parara em andares especıficos e pre-

determinados. Elaborar este outro tipo de sistema tem como fim observarmos o compor-

tamento do tempo medio de espera dos passageiros em relacao ao primeiro sistema.

Para a definicao dos intervalos de parada foi utilizada a divisao mais igualitaria

possıvel dentre a quantidade de elevadores disponıveis. Assim, supondo um sistema com

tres elevadores e onze andares, os intervalos seriam elevador1 = [1, 2, 3, 4], elevador2 =

[5, 6, 7, 8] e elevador3 = [9, 10, 11]. Note que o intervalo de andares e formado de forma

consecutiva.

Para as realizacao da simulacao utilizou-se as seguintes variaveis:

1. Variaveis que definem o sistema - tempo maximo que o servidor ira funcionar

(T ); taxa de chegada dos clientes no sistema (λ); numero maximo de pessoas por

elevador (max elevador); quantidade de elevadores no sistema (n elevadores); e o

numero de andares (n andares).

2. Variaveis de interesse - lista com as horas de chegada de cada pessoa em cada

fila (NA); vetor com o numero de pessoas por dia em cada elevador (Nc); lista com

as horas de embarques de cada passageiro em cada elevador, (ND); e vetor com o

numero de pessageiros que ja embarcaram em cada elevador (Ne);

3. Variaveis de controle - tempo corrente (t); uma matriz n andares×n elevadores

em que guarda a quantidade pessoas que irao saltar em cada andar de modo que

em cada linha guarda-se o vetor de andares de cada elevador (andares); vetor que

indica quando os elevadores acabam a viagem (temp viag); vetor com os instantes

que os elevadores retornam ao terreo (temp volta); instante que o proximo cliente

chega na fila (tc); e o numero de pessoas na fila num dado instante t (n fila).

Veja que as variaveis utilizadas neste sistema se assemelham as utilizadas no

Page 45: Otimiza˘c~ao de um Sistema de Elevadores a partir da ...estatistica.uff.br/wp-content/uploads/sites/33/2019/10/tcc_20122_Fabio... · Loureiro, Fábio Mascarenhas . Otimização de

5.2 Algoritmo 41

primeiro. Isto ocorre pois estamos buscando otimizar o tempo medio de espera dos passa-

geiros alterando apenas o comprtamento dos elevadores, mantendo os mesmos parametros

e definicoes para ambos os sistemas.

Visto isso a atualizacao dos tempos de viagem do elevador, entrada de passa-

geiros no sistema, escolha de andares, dentre outros parametros, sao os mesmos usados

no sistema 1.

Abaixo segue o pseudo-codigo utilizado para a implementacao do sistema 2.

Inicializacao:1

2

andares = 0, lembre que andares e um lista;3

temp viag = (∞, . . . ,∞);4

temp volta = (∞, . . . ,∞);5

tc = prox th(0);6

n fila = (0, . . . , 0);7

NA = ND = NULL, note que ambos sao listas;8

Nc = Ne = (0, . . . , 0);9

t = 0;10

11

Caso 1: tc < min(temp viag) e tc < min(temp volta) (Chega um passageiro na fila)12

13

t = tc;14

Nc[j] = Nc[j] + 1, onde j corresponde ao elevador que o passageiro usara;15

NA[[j]] = t, atualiza NA de acordo com o elevador escolhido;16

Se existe algum elevador no terreo (passageiro entra direto):17

- - Ne[j] = Ne[j] + 1;18

- - ND[[j]] = t, atualiza ND de acordo com o elevador escolhido;19

- - atualiza andares[[j]] de acordo com o andar escolhido;20

- - atualiza temp viag[j];21

- - tc = prox t(t);22

Senao:23

- - atualiza temp volta;24

Page 46: Otimiza˘c~ao de um Sistema de Elevadores a partir da ...estatistica.uff.br/wp-content/uploads/sites/33/2019/10/tcc_20122_Fabio... · Loureiro, Fábio Mascarenhas . Otimização de

5.2 Algoritmo 42

- - tc = prox t(t);25

- - n fila[j] = n fila[j] + 1;26

27

Caso 2: min(temp viag) < tc) e min(temp viag) < min(temp volta) (Um elevador28

vai parar)29

30

Seja o elevador k com menor temp viag;31

t = temp viag[k];32

temp viag[k] =∞;33

34

Caso 3: min(temp volta) < tc e min(temp volta) < min(temp viag) (Um elevador35

sera recarregado)36

37

Seja o elevador k com menor temp viag;38

t = temp volta[k];39

andares[[k]] = 0, zera a posicao k da lista;40

Se n fila[k] > max elevador:41

- - atualiza andares[[k]] de acordo com os andares escolhidos;42

- - ND[[k]][Ne[k], . . . , Ne[k] +max elevador] = t;43

- - incrementar Ne mais max elevador elementos;44

- - n fila[k] = n fila[k]−max elevador;45

- - atualiza temp viag[k];46

- - atualiza temp volta[k];47

Senao:48

- - atualiza andares[[k]] de acordo com os andares escolhidos;49

- - ND[[k]][Ne[k], . . . , Ne[k] +max elevador] = t;50

- - incrementar Ne mais max elevador elementos;51

- - n fila[k] = 0;52

- - atualiza temp viag[k];53

- - temp volta[k] =∞;54

Page 47: Otimiza˘c~ao de um Sistema de Elevadores a partir da ...estatistica.uff.br/wp-content/uploads/sites/33/2019/10/tcc_20122_Fabio... · Loureiro, Fábio Mascarenhas . Otimização de

5.2 Algoritmo 43

5.2.3 Comentarios

Primeiramente, note que nao foi enunciado sobre o tipo de fila utilizado no

sistema 2. Isto se deve ao fato de, no sistema 2, o indivıduo ao escolher o andar desejado,

ja escolhe automaticamente o elevador que lhe atendera, criando diretamente uma fila

para cada elevador.

Alem disto, visando aproximar a simulacao de um sistema mais realıstico,

incluımos ainda alguns tempos estimados que podem incidir neste tipo de fenomeno. Veja

na Tabela 5.1 os os tempos e eventos que foram levados em consideracao.

Tabela 5.1: Tempos que incidem sobre os modelos simulados.

Descricao do Parametro Valor Estimado

Tempo entre cada andar 7 segundos

Tempo de entrada de cada passageiro 2 segundos

Tempo de abertura do elevador 5 segundos

Tempo de fechamento do elevador 5 segundos

Em relacao aos parametros das variaveis que definem os sistemas, veja na

Tabela 5.2 os valores usados.

Vale ressaltar que a complexidade do sistema 2 e bem maior do que a do

sistema 1, entretanto seria ainda mais difıcil implementa-lo caso nao tivessemos comecado

pelo sistema mais simples, parando em todos os andares.

Dito isto, foi utilizado o software estatıstico R, versao 2.15.1 para realizarmos

a simulacao e podermos analisar cada modelo.

Tabela 5.2: Variaveis que definem os sistemas.

Variaveis que definem Sistema Sistema

os Sistemas 1 2

T 600 minutos

max elevador 6 pessoas

n elevadores 1, 2, 3, 4 e 5 elevadores

n andares 20 andares

Page 48: Otimiza˘c~ao de um Sistema de Elevadores a partir da ...estatistica.uff.br/wp-content/uploads/sites/33/2019/10/tcc_20122_Fabio... · Loureiro, Fábio Mascarenhas . Otimização de

5.3 Resultados da Simulacao 44

5.3 Resultados da Simulacao

Ao analisarmos cada sistema simulado, nos deparamos com duas questoes:

- Qual o tempo gasto pelos passageiros ate saltarem no andar desejado ?; e

- A quantidade de dias simulados seria suficiente para afirmarmos que os resultados

obtidos de fato retratam o real problema?

Ao visar isto, criamos duas variaveis. Um vetor T - onde Ti corresponde ao

tempo medio gasto pelos passageiros dentro do sistema no i-esimo dia simulado - e outro

vetor W - onde Wi = T1+T2+...+Tii

.

Com base na Lei dos Grandes Numeros apresentada na Secao 4.5, utilizaremos

o vetor W para checarmos se a quantidade de dias simulados foi suficiente e qual o tempo

medio dentro de sistema por passageiro.

Entretanto, como ja foi apresentado, a chegada dos passageiros no sistema pode

se comportar de forma homogenea ou nao homogenea. Por isto, realizamos simulacoes

distintas para cada tipo de taxa de chegada.

Inicialmente foram gerados para cada sistema cem iteracoes com a quantidade

de elevadores variando de um a cinco.

5.4 Modelo simulado para λ homogeneo

Para representarmos este tipo de sistema, onde a taxa de chegadas e constante,

buscamos simular todos os casos para λ ∈ {2, 3, 4, 5, 6, 7, 8}.

Os valores de convergencia de W em cada sistema simulado estao expostos nas

Tabelas 5.3 e 5.4, onde E corresponde a quantidade de elevadores utilizados. Lembre-se

que tal valor pode ser interpretado como o tempo medio que cada passageiro demorou

dentro do sistema, ou seja, o tempo medio desde sua chegada na fila ate saltar no andar

desejado.

Primeiramente, verifica-se que independente da taxa de chegada, os sistemas

1 e 2 apresentam resultados semelhantes para um unico elevador. Isto nos da confianca

de que os sistemas simulados estao de acordo com as expectativas e a implementacao esta

Page 49: Otimiza˘c~ao de um Sistema de Elevadores a partir da ...estatistica.uff.br/wp-content/uploads/sites/33/2019/10/tcc_20122_Fabio... · Loureiro, Fábio Mascarenhas . Otimização de

5.4 Modelo simulado para λ homogeneo 45

Tabela 5.3: Tempo medio (minutos) no sistema 1 para λ homogeneo.

E

λ2 3 4 5 6 7 8

1 41.695 132.761 230.337 324.331 418.957 514.106 608.711

2 0.952 3.457 43.576 90.672 138.307 185.859 233.248

3 0.703 0.785 1.364 16.574 49.006 80.570 113.154

4 0.693 0.738 0.929 3.321 26.281 52.836 79.196

5 0.685 0.735 0.930 3.312 25.211 49.693 72.886

Tabela 5.4: Tempo medio (minutos) no sistema 2 para λ homogeneo.

E

λ2 3 4 5 6 7 8

1 42.156 132.784 230.115 323.746 418.567 514.1801 609.400

2 1.243 3.488 24.218 53.521 91.702 132.000 172.005

3 0.966 1.133 1.471 2.298 13.223 30.344 49.700

4 0.888 0.982 1.097 1.344 2.189 6.500 13.809

5 0.843 0.908 0.980 1.064 1.206 1.531 2.674

correta, uma vez que os dois sistemas sao identicos para este caso. Por outro lado, nao

podemos generalizar quando nos referimos ao melhor sistema.

Ao observarmos os resultados obtidos para as taxas de chegada λ ∈ {2, 3}

notamos que o sistema 1 apresenta tempos menores que os do sistema 2. Ou seja, neste

caso poderıamos dizer que o melhor sistema, com menor tempo de atendimento, seria o

primeiro.

Entretanto, conforme aumentamos a taxa λ, o sistema 2 passa a se mostrar

bem mais eficiente. Note que para o caso de cinco elevadores e λ = 7, a diferenca

dos tempos medios estimados no sistema 1 (49,7 minutos) em relacao ao sistema 2 (1,5

Page 50: Otimiza˘c~ao de um Sistema de Elevadores a partir da ...estatistica.uff.br/wp-content/uploads/sites/33/2019/10/tcc_20122_Fabio... · Loureiro, Fábio Mascarenhas . Otimização de

5.4 Modelo simulado para λ homogeneo 46

minutos) e de mais de 40 minutos. E conforme fomos aumentando as taxas de chegada o

segundo sistema continuou se mostrando bem mais eficiente, aumentando cada vez mais

esta diferenca dos tempos.

Como ja falado anteriormente, os valores obtidos nas Tabelas 5.3 e 5.4, foram

obtidos atraves do vetor W . Assim, dispomos nas Figuras 5.1, 5.2, 5.3 e 5.4 os graficos

dos vetores W ’s obtidos para os sistemas cujo λ ∈ {2, 3, 4, 5} e possuiam tres elevadores.

(a) Sistema 1. (b) Sistema 2.

Figura 5.1: W resultante da simulacao de 3 elevadores e λ = 2.

(a) Sistema 1. (b) Sistema 2.

Figura 5.2: W resultante da simulacao de 3 elevadores e λ = 3.

Veja que nos graficos apresentados, os valores de convergencia ate λ = 3 de fato

apontam para o sistema 1 como melhor modelo e, conforme incrementamos λ, o sistema

2 passa a ser bem mais eficaz do que o primeiro. De fato, ja havıamos constatado isto

atraves das Tabelas 5.3 e 5.4.

Page 51: Otimiza˘c~ao de um Sistema de Elevadores a partir da ...estatistica.uff.br/wp-content/uploads/sites/33/2019/10/tcc_20122_Fabio... · Loureiro, Fábio Mascarenhas . Otimização de

5.5 Modelo simulado para λ nao homogeneo 47

(a) Sistema 1. (b) Sistema 2.

Figura 5.3: W resultante da simulacao de 3 elevadores e λ = 4.

(a) Sistema 1. (b) Sistema 2.

Figura 5.4: W resultante da simulacao de 3 elevadores e λ = 5.

Os graficos apresentados sao apenas um exemplo do comportamento dos sis-

temas ao longo das iteracoes, dias simulados, e apesar de estarem exposto apenas alguns

modelos, todos obtiveram o mesmo comportamento. Todos os sistemas, independente da

quantidade de elevadores ou da taxa de chegada, apresentaram convergencia clara bem

antes dos cem dias simulados.

5.5 Modelo simulado para λ nao homogeneo

Diferente do caso homogeneo, nao podemos adotar um λ especıfico para rea-

lizar as compracoes. Assim, implementamos duas possıveis funcoes λ(t) e realizamos as

simulacoes com o mesmo numero de iteracoes, dias simulados, e quantidade de elevadores

utilizados para λ homogeneo. As funcoes criadas para λ(t) estao explicitadas na figura

Page 52: Otimiza˘c~ao de um Sistema de Elevadores a partir da ...estatistica.uff.br/wp-content/uploads/sites/33/2019/10/tcc_20122_Fabio... · Loureiro, Fábio Mascarenhas . Otimização de

5.5 Modelo simulado para λ nao homogeneo 48

5.5, de modo que:

λ1(t) =

3.75, se t < 120;

3(320− t)/160, se t < 300;

3(t− 270)/240, se t < 480;

3(4200− 7t)/960, se t ≤ 600.

λ2(t) =

7.5, se t < 120;

3(320− t)/80, se t < 300;

3(t− 270)/120, se t < 480;

3(4200− 7t)/480, se t ≤ 600.

(a) Funcao λ1(t).

(b) Funcao λ2(t).

Figura 5.5: Curvas das funcoes das taxas de chegada λ(t).

Nas tabelas 5.5 e 5.6 estao alocados os tempos medios de permanencia dos

passageiros em cada combinacao E × λ para os sistemas 1 e 2.

Primeiramente, os valores obtidos para um unico elevador sao semelhantes para

ambas as funcoes, tal qual no modelo homogeneo.

Page 53: Otimiza˘c~ao de um Sistema de Elevadores a partir da ...estatistica.uff.br/wp-content/uploads/sites/33/2019/10/tcc_20122_Fabio... · Loureiro, Fábio Mascarenhas . Otimização de

5.5 Modelo simulado para λ nao homogeneo 49

Ao analisarmos as tabelas citadas, vemos que para funcao λ1(t), independente

do numero de elevadores o sistema 1 apresentou-se mais eficaz. Entretanto, como ja vimos

no caso homogeneo, para λ = 4, o sistema 1 havia se mostrado mais eficaz e ja que λ1(t)

possui seus valores menores ou iguais a 3.75, este resultado ja era esperado.

Por outro lado quando comparamos os resultados obtidos para λ2(t), notori-

amente o sistema 2 foi o mais eficiente. De forma similar a λ1(t), este resultado ja era

esperado pois os possıveis valores da funcao λ2(t) se encontram em um intervalo mais

amplo e como ja havıamos visto para o caso homogeneo, conforme vamos aumentando a

taxa de chegada, o sistema 2 passa a ser mais eficaz.

Tabela 5.5: Tempo medio (minutos) no sistema 1 para λ nao homogeneo.

E λ1(t) λ2(t)

1 141.537 799.131

2 17.345 328.891

3 0.938 178.035

4 0.793 129.446

5 0.797 117.931

Tabela 5.6: Tempo medio (minutos) no sistema 2 para λ nao homogeneo.

E λ1(t) λ2(t)

1 141.440 798.419

2 10.236 253.235

3 1.212 96.832

4 1.001 36.606

5 0.931 11.729

Alem dos valores estimados do tempo de atendimento, bem como no caso

descrito para λ homogeneo, foi disposto nas Figuras 5.6 e 5.7 o comportamento do vetor

W ao longo das iteracoes, dias simulados.

Page 54: Otimiza˘c~ao de um Sistema de Elevadores a partir da ...estatistica.uff.br/wp-content/uploads/sites/33/2019/10/tcc_20122_Fabio... · Loureiro, Fábio Mascarenhas . Otimização de

5.5 Modelo simulado para λ nao homogeneo 50

Atraves dos graficos esbocados, podemos ver que os valores de convergencia de

W sao nitidamente distinto quando comparamos os sistemas.

Note que como ja foi dito, nos graficos de 5.6 o melhor sistema e notoriamente

melhor do que o segundo, ou seja, o sistema parando em todos os andares nos retorna um

tempo medio estimado de atendimento dos passageiros menor do que o caso de elevadores

parando em intervalos de andares. Entretanto, quando olha-se para os graficos de 5.7,

o melhor modelo de fato passa ser o segundo, com o elevador parando em intervalo de

andares.

Assim, verificamos que como na secao 5.4, para um λ nao homogeneo, obtemos

diferentes “sistemas otimos”, variando de acordo com a quantidade de elevadores e funcao

λ(t) usada.

(a) Sistema 1. (b) Sistema 2.

Figura 5.6: W resultante da simulacao de 4 elevadores e λ1(t).

(a) Sistema 1. (b) Sistema 2.

Figura 5.7: W resultante da simulacao de 4 elevadores e λ2(t).

Page 55: Otimiza˘c~ao de um Sistema de Elevadores a partir da ...estatistica.uff.br/wp-content/uploads/sites/33/2019/10/tcc_20122_Fabio... · Loureiro, Fábio Mascarenhas . Otimização de

51

6 Conclusoes

O intuito deste trabalho foi analisar o tempo medio de passageiros em um

sistema de elevadores. Para isso, usamos duas abordagens: uma com os elevadores pa-

rando em todos os andares e outra com cada elevador parando em andares especıficos.

As simulacoes foram realizadas com numero de elevadores variados e taxas de chegada

homogeneas e nao homogeneas.

Ao observarmos os resultados, vimos que nao podemos afirmar a existencia

de um sistema otimo para todos os casos. Ou seja, para cada combinacao de taxas de

chegada e numero de elevadores, um sistema se mostrou mais eficiente.

De maneira geral, o sistema onde os elevadores paravam em andares especı-

ficos apresentou resultados melhores quando o sistema estava saturado, isto e, muitas

chegadas para poucos elevadores. Ja o outro modelo mostrou-se mais eficaz para sistemas

menos saturados. Uma sugestao para trabalhos futuros seria estudar para quais valores

de E, numeros de elevadores, e λ, taxa media de chegada para um processo de Poisson

homogeneo, cada um dos dois sistemas tem melhores resultados.

Alem disso, para encontrar o sistema otimo supondo a taxa nao homogenea

vale a pena tambem testar o uso de um sistema misto, onde a partir de um certo instante

o funcionamento dos elevadores se inverte de uma abordagem para a outra. Por exemplo,

de manha quando a taxa de chegada e alta os elevadores funcionariam como no sistema

2 e depois de um certo horario passariam a funcionar de acordo com o sistema 1.

Mais sugestoes de trabalhos futuros seria a inclusao de complicadores a fim

de tornar a modelagem ainda mais real. Exemplos de complicadores seriam: possibilitar

elevadores parando em andares pares e ımpares, em vez de em intervalos contınuos; incluir

a possibilidade de um passageiro pegar um elevador que nao seja o seu e descer um andar,

caso a fila compense; e passageiros solicitando elevadores em andares diferente do terreo.

Page 56: Otimiza˘c~ao de um Sistema de Elevadores a partir da ...estatistica.uff.br/wp-content/uploads/sites/33/2019/10/tcc_20122_Fabio... · Loureiro, Fábio Mascarenhas . Otimização de

52

Referencias Bibliograficas

Gentle, J. E. (2003) Random Number Generation and Monte Carlo Methods. Springer, 2

edn.

Ross, S. (2006) Simulation. Academic Press, 4 edn.

Ross, S. M. (1996) Stochastic Process. John Wiley & Sons, Inc.

Sokolowski, J. A. e Banks, C. M. (2009) Principles of Modeling and Simulation. John

Wiley & Sons.

Taylor, H. M. e Karlin, S. (1998) An Introduction to Stochastics Modeling. Academic

Press, 3 edn.