• Nenhum resultado encontrado

Otimização de um sistema de elevadores a partir da simulação de eventos discretos

N/A
N/A
Protected

Academic year: 2021

Share "Otimização de um sistema de elevadores a partir da simulação de eventos discretos"

Copied!
56
0
0

Texto

(1)

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

(2)

Fabio Mascarenhas Loureiro

Otimiza¸

ao de um Sistema de Elevadores `

a partir da

Simula¸

ao de Eventos Discretos

Monografia apresentada ao Curso de Estat´ıstica da UFF, como requisito para a obten¸c˜ao do grau de BACHAREL em Estat´ıstica.

Orientadora: Jessica Quintanilha Kubrusly

Doutora em Matem´atica

Niter´oi 2013

(3)

Otimiza¸

ao de um Sistema de Elevadores `

a partir da

Simula¸

ao de Eventos Discretos

Monografia apresentada ao Curso de Estat´ıstica da UFF, como requisito para a obten¸c˜ao do grau de BACHAREL em Estat´ıstica.

Aprovado em Mar¸co de 2013

BANCA EXAMINADORA

Jessica Quintanilha Kubrusly

Doutora em Matem´atica

Valentin Sisko

Doutor em Estat´ıstica

Victor Hugo de Carvalho Gouvˆea

(4)

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.

(5)

ajudaram e me apoiaram at´e aqui mas que n˜ao resistiram para compartilhar deste momento junto a mim.

(6)

Resumo

Quando se lida com problemas de modelagem estoc´astica ´e comum nos depa-rarmos com sistemas complexos que, em alguns caso, s˜ao imposs´ıveis de se resolver de forma anal´ıtica. Diante disto, ´e comum usarmos a simula¸c˜ao para entender e estudar fenˆomenos 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, j´a na segunda, cada elevador para em andares espec´ıficos. O objetivo principal do trabalho ´e decidir em qual dos dois sistemas o tempo m´edio de espera dos passageiros ´e menor. Palavras-chaves: Processos Estoc´asticos, Gera¸c˜ao de Vari´aveis Aleat´orios, Gera¸c˜ao de Processo de Poisson Homogˆeneo e n˜ao Homogˆeneo, Simula¸c˜ao, Simula¸c˜ao de Sistemas de Filas.

(7)

Gostaria de agradecer primeiramente `a minha m˜ae (Nadia), por todo o apoio que me foi dado. Sei que passamos tempos dif´ıceis e talvez n˜ao seja t˜ao mais f´acil daqui em diante, mas tenho certeza que poderei sempre contar com a sra.

Agrade¸co tamb´em 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.

N˜ao 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, Gar¸com da Mineira, China, Orelha, Nariz, Paulista, Ub´a, Jos´e, Natan e Lage.

Agrade¸co tamb´em aos que ajudaram no meu crescimento acadˆemico: Linda novamente, Bruna, Fernanda, Kiese, Carol, Marcela, Evelyne, Guilherme, Clark e Lex.

Ao falar dos meus conhecimento acadˆemicos, nunca poderia deixar de agra-decer minha orientadora (Jessica). Agrade¸co por todo o tempo dedicado, paciˆencia e pux˜oes de orelha que me deu. Aprendi muito com a sra. e espero podermos trabalhar juntos novamente.

Gostaria ainda de n˜ao s´o agradecer, mas tamb´em dedicar este trabalho a quatro pessoas. Pessoas que foram e continuar˜ao sendo muito importantes na minha vida.

Pai (H´elio), 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, vocˆe pode n˜ao ver o t´ermino desta etapa da minha vida, n˜ao fisica-mente, mas sei que est´a 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 l´a te ver formando!”. Tenho certeza que estar´a!

Tia (Ben´e), nunca esquecerei a sra. Vocˆe tinha um sentimento por mim e pela minha m˜ae que inexplicavelmente ´e maior do que o de muitas pessoas que j´a passaram

(8)

por nossas vidas. N˜ao s´o agrade¸co, mas afirmo que sempre lembrarei do aux´ılio e “dicas” que me deu em vida. Obrigado!

Por ´ultimo, mas n˜ao menos importante, gostaria de agradecer a pessoa que me incentivou e acreditou desde sempre na minha capacidade, meu avˆo (Carlos). ´E com uma alegria, seguida de profunda tristeza, que escrevo este agradecimento. Vˆo, infelizmente n˜ao est´a 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, paciˆencia, dedica¸c˜ao e incentivo que me deste serei eternamente grato. Vocˆe teve a mim como um filho e eu o considero como tal! N˜ao poderei abra¸c´a-lo ap´os minha apresenta¸c˜ao nem ap´os meu ´ultimo dia na faculdade, mas sempre lembrarei de vocˆe. Por isso, mesmo n˜ao estando comigo fisicamente, estar´a sempre presenta na minha vida.

(9)

Lista de Figuras 7

Lista de Tabelas 8

1 Introdu¸c˜ao 9

2 Gera¸c˜ao de Vari´aveis Aleat´orias 11

2.1 N´umeros Pseudo-Aleat´orios . . . 11

2.2 Gera¸c˜ao de Vari´aveis Aleat´orias . . . 13

2.2.1 M´etodo da Transformada Inversa - V. A. Discreta . . . 14

2.2.2 M´etodo da Transformada Inversa - V. A. Cont´ınuas . . . 15

2.2.3 Gera¸c˜ao de uma exponencial . . . 17

3 Gera¸c˜ao de um Processo de Poisson 19 3.1 Processo de Poisson . . . 19

3.1.1 Tempo entre Eventos . . . 20

3.2 Processo de Poisson n˜ao-Homogˆeneo . . . 21

3.3 Gera¸c˜ao de Processo de Poisson Homogˆeneo . . . 21

3.4 Gera¸c˜ao de Processo de Poisson n˜ao-Homogˆeneo . . . 22

4 Simula¸c˜ao de Sistemas 24 4.1 Conceituando Eventos Discretos . . . 25

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

4.3 Sistema com v´arios servidores e fila ´unica . . . 28

(10)

4.5 Determinando o n´umero de simula¸c˜oes realizadas . . . 34

4.5.1 Crit´erio de Parada das Simula¸c˜oes . . . 35

5 Aplica¸c˜ao Pr´atica: Simulando um Sistema de Elevadores 36 5.1 Introdu¸c˜ao . . . 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 Coment´arios . . . 43

5.3 Resultados da Simula¸c˜ao . . . 44

5.4 Modelo simulado para λ homogˆeneo . . . 44

5.5 Modelo simulado para λ n˜ao homogˆeneo . . . 47

(11)

2.1 Fun¸c˜ao de distribui¸c˜ao acumulada de uma vari´avel aleat´oria 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 simula¸c˜ao de 3 elevadores e λ = 2. . . 46

5.2 W resultante da simula¸c˜ao de 3 elevadores e λ = 3. . . 46

5.3 W resultante da simula¸c˜ao de 3 elevadores e λ = 4. . . 47

5.4 W resultante da simula¸c˜ao de 3 elevadores e λ = 5. . . 47

5.5 Curvas das fun¸c˜oes das taxas de chegada λ(t). . . 48

5.6 W resultante da simula¸c˜ao de 4 elevadores e λ1(t). . . 50

(12)

Lista de Tabelas

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

5.2 Vari´aveis que definem os sistemas. . . 43

5.3 Tempo m´edio (minutos) no sistema 1 para λ homogˆeneo. . . 45

5.4 Tempo m´edio (minutos) no sistema 2 para λ homogˆeneo. . . 45

5.5 Tempo m´edio (minutos) no sistema 1 para λ n˜ao homogˆeneo. . . 49

(13)

1 Introdu¸

ao

Ao modelar um sistema que envolve vari´aveis estoc´asticas muitas vezes ´e pre-ciso optar entre um modelo mais fiel `a realidade ou outro modelo que seja mais matemati-camente trat´avel. Como por exemplo, ao modelar um sistema banc´ario pode-se optar por um modelo mais realista que considere chegadas n˜ao homogˆeneas ao longo do dia, varia¸c˜ao no tempo de atendimento entre diferentes atendentes, poss´ıveis faltas de funcion´arios ou at´e mesmo pausas durante o expediente. Por´em para que esse sistema tenha uma solu¸c˜ao anal´ıtica ´e preciso simplific´a-lo bastante, por exemplo, considerar as chegadas homogˆeneas e descartar as demais complica¸c˜oes citadas.

Com o avan¸co da computa¸c˜ao surgiu uma terceira possibilidade para analisar sistemas estoc´asticos. A ideia ´e implementar e simular sistemas considerando alguns complicadores a fim de tornar a modelagem o mais fiel poss´ıvel `a realidade. A an´alise do sistema ser´a feita a partir das observa¸c˜oes geradas pelas simula¸c˜oes realizadas. Dessa forma n˜ao ser´a fornecida uma solu¸c˜ao anal´ıtica, por´em a partir dessas observa¸c˜oes ser´a poss´ıvel fazer inferˆencias sobre o sistema. Vale ressaltar que para uma boa representa¸c˜ao da realidade ´e recomend´avel que os parˆametros da simula¸c˜ao sejam bem estimados a partir de um estudo pr´evio.

O objetivo deste trabalho ´e implementar e simular um sistema de elevadores a fim de estudar o tempo de espera dos clientes. Para isso ser˜ao considerados duas alternativas: a primeira considera que todos os elevadores param em todos os andares e existe uma ´unica fila, j´a 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 ser´a introduzido o conceito de n´umeros pseudos-aleat´orios assim como algumas formas de gera¸c˜ao de vari´aveis aleat´orias. No Cap´ıtulo 3 ser˜ao definidos Processos de Poisson Homogˆeneo e n˜ao Homogˆeneo e formas de gera¸c˜ao desses processos estoc´asticos. No Cap´ıtulo 4 ser˜ao conceituado alguns tipos de simula¸c˜ao, apresentados alguns exemplos de simula¸c˜ao com filas e por fim feita uma breve discuss˜ao sobre o n´umero de simula¸c˜oes a serem realizadas. No Cap´ıtulo 5 ser´a apresentado o problema do elevador

(14)

1 Introdu¸c˜ao 10 bem como os resultados obtidos. Por fim, no Cap´ıtulo 6 ser˜ao feitas as conclus˜oes e as considera¸c˜oes finais com rela¸c˜ao ao trabalho.

(15)

2 Gera¸

ao de Vari´

aveis Aleat´

orias

2.1

umeros Pseudo-Aleat´

orios

Uma sequˆencia de n´umeros pseudo-aleat´orios ´e uma cadeia de valores gerados `

a partir de uma regra, tal que, estes tentam “imitar” da melhor maneira poss´ıvel uma vari´avel aleat´oria distribu´ıda uniformemente no intervalo (0, 1). O intuito disto ´e criar um conjunto de valores sequenciais que, apesar de n˜ao serem de fato aleat´orios, n˜ao apresentem previsibilidade aparente.

Um dos m´etodos mais utilizados para se tentar realizar tal simula¸c˜ao ´e o m´ e-todo congruencial multiplicativo (Ross, 2006; Gentle, 2003). A proposta deste gerador ´e construir uma sequˆencia de n´umeros pseudo-aleat´orios onde, primeiramente ´e gerada uma sequˆencia de n´umeros naturais {xn}∞n=1 de acordo com a express˜ao (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 s˜ao inteiras e o termo mod m representa o resto da divis˜ao por m. Tem-se ent˜ao que a sequˆencia de n´umeros pseudo-aleat´orio no intervalo (0, 1) ´e definida por

un =

xn

m (2.2)

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

(16)

2.1 N´umeros Pseudo-Aleat´orios 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 fun¸c˜ao mod m retorna o resto da divis˜ao por m, xn ∈

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

sequˆencia de valores un ∈ [0, 1). Os dez primeiros n´umeros pseudo-aleat´orios gerados

para os parˆametros definidos ser˜ao:

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 m´etodo utiliza 3 parˆametros para ser inicializado e todos devem ser fornecidos pelo programador, assim, ´e razo´avel que se tome algumas medidas para maior eficiˆencia do m´etodo.

Primeiramente, pela forma de c´alculo utilizado, acaba que em algum momento a sequˆencia comece a se repetir. Desta forma, caso seja escolhido um m pequeno, a sequˆencia se repetir´a com maior rapidez. Assim, ´e comum e de maior efic´acia a utiliza¸c˜ao

(17)

de um m relativamente grande. Entretanto, pode-se observar que se a divis˜ao por m resultar em 0, todos os outros termos da sequˆencia ser˜ao nulos. Logo, busca-se utilizar, al´em de m grande, m primo. Com isto, espera-se dificultar o fato da sequˆencia gerada se anular `a partir de um dado momento. Observe tamb´em que, apesar dos recursos computacionais estarem bastante evolu´ıdos, por uma limita¸c˜ao, Ross (2006) sugere que seja utilizado m = 231− 1, sendo este o maior valor comput´avel primo para computadores

de 32 bit.

Para os valores de a e x0 n˜ao h´a muitas recomenda¸c˜oes, por´em como x0 ser´a

o valor que definir´a toda a sequˆencia gerada, ´e natural que sejam utilizados crit´erios de escolha para o mesmo de forma que, cada vez que se for gerar uma sequˆencia, estas sejam diferentes umas das outras. Para a Ross (2006) sugere o valor de a = 75.

Segundo tais crit´erios, espera-se que a sequˆencia gerada seja aparentemente derivada de uma vari´avel com distribui¸c˜ao U nif orme (0, 1) para todo x0 escolhido e que

a mesma ir´a demorar um tempo consideravelmente grande at´e recome¸car a gera¸c˜ao. Outro tipo de m´etodo para a gera¸c˜ao de n´umeros pseudo-aleat´orios, ainda dentro da fam´ılia de geradores congruenciais, ´e o m´etodo misto. Neste modelo, o valor ser´a gerado segundo a equa¸c˜ao por

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

Neste modelo, cada n´umero ´e calculado dependendo do anterior, bem como no m´etodo multiplicativo, e a, c e m s˜ao n´umeros inteiros, tais que a < m e c < m. Neste caso, a divis˜ao un = xn/(m − 1) resulta num n´umero pseudo-aleat´orio real pertencente ao

intervalo (0, 1).

Para este trabalho s´o foi utilizado o m´etodo congruencial multiplicativo, assim, para maiores detalhes acerca de outros m´etodos de gera¸c˜ao veja Ross (2006).

2.2

Gera¸

ao de Vari´

aveis Aleat´

orias

Existem diversos m´etodos para gera¸c˜ao de vari´aveis aleat´orias. O m´etodo da transformada inversa ´e um deles, ele utiliza a fun¸c˜ao de distribui¸c˜ao acumulada da vari´avel aleat´oria a ser gerada junto com uma sequˆencia de n´umeros pseudo-aleat´orios.

(18)

2.2 Gera¸c˜ao de Vari´aveis Aleat´orias 14 Neste cap´ıtulo ser˜ao apresentados as formas de gera¸c˜ao de vari´aveis aleat´orias discretas e cont´ınuas, utilizando o m´etodo da transformada inversa. Para mais detalhes sobre este ou outros m´etodos de gera¸c˜ao, veja Ross (2006).

2.2.1

etodo da Transformada Inversa - V. A. Discreta

Para este m´etodo usaremos o fato da fun¸c˜ao de distribui¸c˜ao acumulada FX de

uma vari´avel aleat´oria X discreta ser sempre uma fun¸c˜ao do tipo escada. Come¸cada em 0 e finalizada em 1. Logo, Im(Fx) = (0, 1). Assim, a forma de se gerar uma vari´avel

aleat´oria discreta a partir do m´etodo da transformada inversa, deve-se primeiro gerar um n´umero pseudo-aleat´orio no intervalo (0, 1] e em seguida verificar em qual “patamar” da distribui¸c˜ao acumulada se encontra o n´umero gerado, ou seja, em qual intervalo xi, xi+1

se localiza a vari´avel U ∼ U nif (0, 1) gerada.

Figura 2.1: Fun¸c˜ao de distribui¸c˜ao acumulada de uma vari´avel aleat´oria discreta.

Explicitando de forma l´ogica o m´etodo voltado para uma distribui¸c˜ao discreta segue que: seja X = x0, x1, x2, . . . os poss´ıveis valores ordenados da vari´avel aleat´oria

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

elemento de forma aparentemente aleat´oria segundo o pseudo-c´odigo definido abaixo.

Gera discreta

1

2

Gerar uma vari´avel aleat´oria U ∼ U nif (0, 1), isto ´e, um n´umero pseudo-aleat´orio;

3

Definir i = 0 e F = P0;

4

Se U < F , retorna xi;

(19)

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 vari´avel aleat´oria X com distribui¸c˜ao 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-c´odigo gera discreta.

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

1

se U < 0.25, ent˜ao retorna x = x1 = 0, sen˜ao:

2

se U < 0.75, ent˜ao retorna x = x2 = 1, sen˜ao:

3

retorna x = x3 = 2

4

Note que para se obter uma amostra com v´arios elementos, basta replicar o procedimento descrito diversas vezes.

2.2.2

etodo da Transformada Inversa - V. A. Cont´ınuas

O m´etodo da transformada inversa para a gera¸c˜ao de vari´aveis aleat´orias cont´ı-nuas s´o pode ser aplicado para gerar uma vari´avel aleat´oria quando ´e conhecida a inversa da sua fun¸c˜ao de distribui¸c˜ao acumulada, denotada por F−1. Segue ent˜ao que, seja X uma vari´avel aleat´oria cont´ınua, ent˜ao Fx ´e uma fun¸c˜ao cont´ınua n˜ao-descrescente, tal

(20)

2.2 Gera¸c˜ao de Vari´aveis Aleat´orias 16 Supondo X vari´avel aleat´oria tal que F−1 ´e conhecida, pode-se utilizar o pseudo-c´odigo descrito abaixo para se obter uma observa¸c˜ao aparentemente aleat´orio de X.

Gera cont´ınua

1

2

Gerar uma vari´avel aleat´oria U ∼ U nif (0, 1), isto ´e, um n´umero pseudo-aleat´orio;

3

Retornar X = F−1(U ).

4

Veja que assim observa¸c˜ao gerada realmente vem de uma popula¸c˜ao cuja dis-tribui¸c˜ao 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 vari´avel aleat´oria com densidade f (x) = 2x, 0 < x < 1. Logo, a distribui¸c˜ao 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 de X e para isso o pseudo c´odigo “Gera cont´ınua”. Primeiramente deve-se encontrar a fun¸c˜ao de distribui¸c˜ao acumulada inversa:

X2 = U ⇒ X = U1/2

Uma vez encontrada a inversa da distribui¸c˜ao acumulada, basta aplic´a-la na fun¸c˜ao implementada.

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

1

Retorne x =√U

(21)

Este m´etodo ´e bastante eficaz e possui uma forma bem r´apida e direta de se gerar valores aleat´orios, por´em, ele exige que se saiba al´em da fun¸c˜ao acumulada, saber inverter a mesma. Para as distribui¸c˜oes continuas tais que a distribui¸c˜ao acumulada n˜ao ´e conhecida, por exemplo a da distribui¸c˜ao Normal, s˜ao utilizados outros m´etodos que tratam melhor destas especificidades, como o m´etodo da aceita¸c˜ao e rejei¸c˜ao. Neste trabalho nos limitaremos a falar apenas do m´etodo da transformada inversa, j´a que ´e mais simples, em termos de implementa¸c˜ao, e funciona bem na gera¸c˜ao de todas as distribui¸c˜oes aqui usadas. Para maiores detalhes acerca do modelo de aceita¸c˜ao e rejei¸c˜ao pode-se verificar Ross (2006).

2.2.3

Gera¸

ao de uma exponencial

A distribui¸c˜ao exponencial ´e um dos pilares do processo de Poisson, desta forma, saber gerar vari´aveis aleat´orias com tais caracter´ısticas ´e fundamental para o de-senvolvimento deste trabalho que tem como base a simula¸c˜ao de um processo de Poisson. Esta rela¸c˜ao ser´a mais bem explicitada no cap´ıtulo 3.

Defini¸c˜ao 2.2.3. Seja X uma vari´avel aleat´oria cont´ınua com fun¸c˜ao de densidade de probabilidade dada por

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

Ent˜ao, diz-se que X tem distribui¸c˜ao exponencial com parˆametro λ.

Logo, seja X ∼ Exponencial(λ), ent˜ao sua fun¸c˜ao de distribui¸c˜ao acumulada ser´a dada por

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

Veja que a distribui¸c˜ao exponencial possui uma fun¸c˜ao de distribui¸c˜ao acumu-lada invers´ıvel:

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

λ .

(22)

2.2 Gera¸c˜ao de Vari´aveis Aleat´orias 18

Vide ent˜ao que o m´etodo da transformada inversa pode ser facilmente utilizado para a gera¸c˜ao de vari´aveis aleat´orias com distribui¸c˜ao exponencial como ´e mostrada no pseudo-c´odigo Gera exponencial implementado a seguir.

Gera exponencial 1 2 Gerar U ∼ U nif (0, 1); 3 Retornar X = −ln(1−U )λ 4

Podemos simplicar ainda mais este c´odigo uma vez que U ∼ U nif (0, 1) ⇒ 1 − U ∼ U nif (0, 1). Logo, podemos alterar nosso m´etodo de gera¸c˜ao para uma forma um pouco mais simples, computacionalmente e matematicamente. Desta forma, temos que

Gera exponencial 1 2 Gerar U ∼ U nif (0, 1); 3 Retornar X = −ln(U )λ 4

(23)

3 Gera¸

ao de um Processo de Poisson

Nesta sess˜ao primeiro ser˜ao definidos os processos de Poisson, homogˆeneos e n˜ao-homogˆeneos. Em seguida ser˜ao apresentados m´etodos de gera¸c˜ao 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 estoc´astico {N (t), t ≥ 0} ´e dito como um processo de contagem quando:

i. N (t) ´e o total de eventos ocorridos at´e 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, ent˜ao N (s) < N (t);

v. Dado s < t, ent˜ao N (t) − N (s) deve ser igual ao n´umero de eventos ocorridos no intervalo (s, t].

Um processo de contagem ´e dito possuir incrementos independentes se o n´ u-mero de eventos que ocorrem em intervalos de tempos disjuntos, forem vari´aveis aleat´orias independentes. Ou seja, se um processo de contagem possui incrementos independentes, o n´umero de eventos que ocorrem at´e o instante s, N (s), deve ser independente do n´umero de eventos que ocorrem entre os instantes t e s, N (t) − N (s).

Defini¸c˜ao 3.1.1. Um processo de contagem ´e denominado processo de Poisson Homogˆeneo com taxa λ, λ > 0, se

(24)

3.1 Processo de Poisson 20 ii. O processo possui incrementos independentes;

iii. O n´umero de eventos em qualquer intervalo de tamanho t possui distribui¸c˜ao Poisson com m´edia λ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

Proposi¸c˜ao 3.1.2. Seja {N (t), t ≥ 0} um processo de Poisson homogˆeneo de taxa λ ≥ 0 e T1 o instante de ocorrˆencia do primeiro evento. Ent˜ao T1 ∼ Exp(λ).

Demonstra¸c˜ao:

FT 1(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 T

1 ∼ Exp(λ)

Veremos agora um resultado mais geral.

Proposi¸c˜ao 3.1.3. : Seja {N (t), t ≥ 0} um processo de Poisson homogˆeneo de taxa λ ≥ 0 e Ti o instante de ocorrˆencia do i−´esimo evento. Seja X1 = T1 e Xi = Ti− Ti−1para i ≥ 2

o intervalo de tempo entre as ocorrˆencias de ´ındices i e i − 1. Ent˜ao, Xi ∼ Exp(λ).

(25)

3.2

Processo de Poisson n˜

ao-Homogˆ

eneo

O processo de Poisson n˜ao-homogˆeneo se faz necess´ario quando o n´umero m´edio de ocorrˆencias varia no decorrer do tempo t.

Defini¸c˜ao 3.2.1. Um processo de contagem {N (t), t ≥ 0} ´e dito ser um processo de Poisson n˜ao-homogˆeneo com fun¸c˜ao de intensidade λ(·), λ(t) ≥ 0, se

i. N (0) = 0;

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

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

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

A fun¸c˜ao m(t), definida por m(t) =

Z t

0

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

´

e chamada de fun¸c˜ao do valor m´edio e indica o n´umero m´edio de ocorrˆencias no intervalo (0, t). Utilizando este fato, segue que: N (t + s) − N (t) ´e uma vari´avel aleat´oria com distribui¸c˜ao de Poisson com m´edia m(t + s) − m(t).

Proposi¸c˜ao 3.2.2. Suponha que eventos ocoram de acordo com um processo de Poisson homogˆeneo com taxa λ. Suponha tamb´em que, independente de qualquer coisa que tenha acontecido, um evento que ocorra no instante t ´e contado com probabilidade p(t). Ent˜ao este processo de contagem obedece um processo de Poisson n˜ao homogˆeneo com fun¸c˜ao de intensidade λ(t) = λp(t).

A proposi¸c˜ao acima est´a implementada e demonstrada em Ross (2006). Esse resultado ser´a de grande utilidade para gerar um processo de Poisson n˜ao homogˆeneo.

3.3

Gera¸

ao de Processo de Poisson Homogˆ

eneo

Para se gerar um processo de Poisson Homogˆeneo, iremos utilizar como base o fato dos intervalos entre cada ocorrˆencia serem vari´aveis aleat´orias independentes e com distribui¸c˜ao Exponencial, como mostrado na Se¸c˜ao 3.1.1.

(26)

3.4 Gera¸c˜ao de Processo de Poisson n˜ao-Homogˆeneo 22 Seguindo esta ideia, para gerar os instantes de ocorrˆencia de eventos de acordo com o processo de Poisson Homogˆeneo ser˜ao efetivamente gerados os intervalos de tempo entre ocorrˆencias consecutivas, que seguem o modelo exponencial.

Gera¸c˜ao do Pr´oximo Instante de Tempo

Vejamos agora o pseudo-c´odigo de uma fun¸c˜ao que recebe como argumento o tempo corrente t e retorna o instante da pr´oxima ocorrˆencia de um processo de Poisson homogˆeneo de taxa λ. A fun¸c˜ao ser´a denotada por “Prox t h” e ´e implementada abaixo.

Prox t h 1 2 Entrada: t > 0; 3 Gera U ∼ U nif (0, 1); 4 t = t − ln(U )λ ; 5 Retornar t. 6

Veja que se U ∼ U nif (0, 1), ent˜ao −ln(U )λ ∼ Exp(λ), como j´a foi mostrado no Cap´ıtulo 2.

Uma vez j´a implementada esta fun¸c˜ao, caso queira gerar n tempos de ocorrˆ en-cia de eventos, basta utilizar esta fun¸c˜ao sucessivas vezes, atualizando sempre o t como o tempo da ´ultima ocorrˆencia.

3.4

Gera¸

ao de Processo de Poisson n˜

ao-Homogˆ

eneo

Como j´a citado anteriormente, nem todos os processos que se deseja modelar s˜ao bem ajustados a um processo de Poisson homogˆeneo. Alguns sistemas podem n˜ao possuir suas taxas de chegada constantes ao longo do tempo, mas sim vari´aveis.

Desta forma, suponha que se quer gerar o instante da pr´oxima ocorrˆencia de um processo de Poisson com fun¸c˜ao de intensidade λ(t). Primeiramente, deve-se escolher λ tal que λ(t) ≤ λ para todo momento de tempo t.

(27)

Posterior a isto, usaremos a Proposi¸c˜ao 3.2.2 para gerar os elementos de um processo n˜ao homogˆeneo `a partir de um homogˆeneo. Ou seja, se um evento de processo de Poisson homogˆeneo que ocorre com taxa λ em um tempo t ´e contado com probabilidade λ(t)/λ, ent˜ao este processo de contagem de eventos ser´a um processo de Poisson n˜ ao-homogˆeneo com fun¸c˜ao de intensidade dada por λ(t). Assim, utilizando a simula¸c˜ao de um processo de Poisson homogˆeneo e acrescentando uma probabilidade de contagem λ(t)/λ aos eventos, ter-se-´a um processo de Poisson n˜ao-homogˆeneo.

Gera¸c˜ao do Pr´oximo Instante de Tempo t

Vejamos agora a implementa¸c˜ao de uma fun¸c˜ao que recebe o tempo t cor-rente no sistema e, utilizando os conceitos definidos acima, retorna o pr´oximo instante de tempo de ocorrˆencia de um evento decorrente de um processo de Poisson n˜ao-Homogˆeneo. Denotada por Prox t, veja abaixo o pseudo-c´odigo da mesma.

Prox t 1 2 Entrada: t > 0; 3 Gerar U ∼ U nif (0, 1); 4 t = t − ln(U )λ ; 5 Gerar V ∼ U nif (0, 1); 6

Se V ≤ λ(t)/λ retorne t, sen˜ao:

7

Volte para a linha 4.

8

Note que os primeiros itens s˜ao idˆenticos `a gera¸c˜ao do processo de Poisson homogˆeneo e apenas foi acrescentada uma “chance” de contagem deste evento no processo.

(28)

24

4 Simula¸

ao de Sistemas

Apresentando o conceito de modelo, este ´e, por defini¸c˜ao, uma representa¸c˜ao est´atica do mundo. A simula¸c˜ao ent˜ao adiciona aspectos temporais ao “modelo” buscando representar como o sistema modelado varia no decorrer do tempo. Assim, a simula¸c˜ao pode ser definida como uma representa¸c˜ao tempo-vari´avel do modelo (Sokolowski e Banks, 2009).

Observe tamb´em que a simula¸c˜ao nos d´a a vantagem de podermos conduzir m´ultiplos experimentos sobre um modelo em condi¸c˜oes vari´aveis sem termos a necessidade de grandes recursos nem de modificar o sistema criado.

A simula¸c˜ao possui basicamente duas vertentes, simula¸c˜ao de eventos discretos e simula¸c˜ao cont´ınua. A simula¸c˜ao de eventos discretos decorre daqueles eventos que va-riam de um estado para outro com o passar do tempo enquanto que na simula¸c˜ao 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 sem´aforo a um carro. Equanto o sem´aforo s´o pode estar nas cores verde, amarelo ou vermelho (estados 1, 2 ou 3) independente do tempo, por outro lado, o carro n˜ao altera sua velocidade para zero instantaneamente mas sim vai variando sua velocidade, desacelarando, no decorrer do tempo. Esta mudan¸ca de velocidade ´e cont´ınua.

Diferenciar estes dois tipos de eventos ´e importante para a implementa¸c˜ao dos processos que se seguir˜ao. Neste trabalho ser˜ao abordados apenas modelos discretos e neste cap´ıtulo ser˜ao apresentados alguns tipos de sistemas e suas respectivas formas de simula¸c˜ao.

Al´em do mais, ainda podemos classificar os modelos de simula¸c˜ao em deter-min´ısticos ou estoc´asticos (existem outros tipos, por´em menos usuais). Num modelo de simula¸c˜ao determin´ıstico, este, n˜ao cont´em nenhuma vari´avel aleat´oria, ou seja, para um conjunto conhecido de dados de entrada teremos um ´unico conjunto de resultados de sa´ıda. J´a nos modelos estoc´asticos, existem uma ou mais vari´aveis aleat´orias como entrada, que levam a sa´ıdas aleat´orias. ´E utilizado o modelo estoc´astico quando ao menos uma das

(29)

caracter´ısticas operacionais ´e dada por uma fun¸c˜ao de probabilidade.

Vide pela defini¸c˜ao, ent˜ao, que os modelos apresentados e os que ser˜ao imple-mentados ao longo do trabalho s˜ao modelos de simula¸c˜ao estoc´astico de eventos discretos.

4.1

Conceituando Eventos Discretos

Primeiramente, vale conceituar alguns itens que ser˜ao usados frequentemente de agora em diante. A simula¸c˜ao de eventos discretos pode ser definida como a va-ria¸c˜ao ocorrida num modelo devido a uma sequencia cronol´ogica de eventos que agiram, agem, sobre o mesmo; eventos s˜ao ocorrˆencias instantˆaneas que causam a varia¸c˜ao, mu-dan¸ca, do estado do sistema; e o estado do sistema ´e definido por uma ou mais vari´aveis que descrevem completamente um sistema para qualquer tempo dado.

Segue ent˜ao que, o princ´ıpio de uma simula¸c˜ao deve ser a defini¸c˜ao das vari´aveis que ser˜ao utilizadas bem como os eventos poss´ıveis, pois ser˜ao eles que ir˜ao nortear nosso algoritmo para uma maior proximidade da realidade. Para o sistema deste trabalho usou-se basicamente trˆes tipos de vari´aveis:

1. Vari´aveis que definem o sistema - S˜ao representadas pelas vari´aveis utilizadas na defini¸c˜ao do sistema. Podem ser representadas pelo tempo m´aximo do sistema T e λ(t), dentre outras;

2. Vari´aveis de Interesse - S˜ao as vari´aveis que ser˜ao criadas durante o c´odigo visando an´alises futuras. Aqui est˜ao inclu´ıdas vari´aveis como tamanho m´aximo de uma fila, quantidade de eventos ocorridos at´e o tempo T , maior tempo entre eventos, e quaisquer outras vari´aveis que se tenha interesse no experimento;

3. Vari´aveis de Controle - S˜ao aquelas que definem as mudan¸cas de estado do sis-tema, nos ajudando a controlar e conseguir realizar a simula¸c˜ao. A real utilidade destas vari´aveis se tornar´a mais clara no decorrer do cap´ıtulo. Entretanto, podemos citar como exemplos desta vari´avel o tempo t corrente e total de pessoas no sistema num dado instante.

Nas se¸c˜oes a seguir ser˜ao vistos exemplos cl´assicos de sistemas estoc´asticos cuja simula¸c˜ao ´e feita via eventos discretos. Muitos sistemas mais complexos, como o

(30)

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 ser˜ao apresentados algumas aplica¸c˜oes das teorias e algoritmos j´a implementados anteriormente para simularmos sistemas de fila/servidor. Na se¸c˜ao 4.2 ser´a apresentado como se construir a base de um algoritmo para um sistema de servidor e fila ´unicos. Nas se¸c˜oes 4.3 e 4.4 ser˜ao implementados algoritmos para m´ultiplos servidores, com filas ´unica e m´ultiplas.

4.2

Sistema com um servidor e fila ´

unica

Nesta se¸c˜ao ser´a apresentado um pseudo-c´odigo que realiza a simula¸c˜ao de um sistema com um ´unico servidor em fila ´unica.

Neste tipo de sistema os clientes chegam e, caso o servidor esteja desocupado, s˜ao imediatamente atendidos. Caso contr´ario, o cliente entra na fila. Assim, os clientes ser˜ao atendidos na ordem em que chegaram. Este conceito ´e conhecido como FIFO (first in-first out) e ´e v´alido para todos os casos de sistemas com fila ´unica. De forma simples pode-se exemplificar este sistema como um banco onde s´o esteja funcionando um caixa.

Sa´ıde de Clientes Entrada de Clientes

Figura 4.1: Sistema com um servidor em fila ´unica

Ao realizarmos a simula¸c˜ao deste sistema podemos estar interessados em ana-lisar o tempo que cada cliente fica no sistema ou o tamanho m´aximo da fila. Veja que ambos s˜ao vari´aveis aleat´orias que n˜ao conhecemos a distribui¸c˜ao, uma vez que o sistema ´e complexo. O que queremos com a simula¸c˜ao ´e observar poss´ıveis amostras dessas vari´aveis para poder fazer inferˆencias em cima dela e com isso tomar decis˜oes.

Para realizar a simula¸c˜ao utilizaremos as seguintes vari´aveis:

1. Vari´aveis que definem o sistema - tempo m´aximo T que o servidor ir´a funcionar; e taxa de chegada λ(t) dos clientes no sistema;

(31)

2. Vari´aveis de interesse - um array que guarda o hor´ario de chegada dos clientes no sistema, denominado N A; um array que guarda o hor´ario de sa´ıda dos clientes, denominado N D;

3. Vari´aveis de controle - tempo corrente (t); quantidade de pessoas no sistema em um dado instante t (n); tempo de chegada do pr´oximo cliente no sistema (tc); tempo

de sa´ıda do ´ultimo cliente at´e o instante t (ta); e o n´umero de pessoas que entraram

no sistema (S).

Para a implementa¸c˜ao ser´a considerado que os clientes chegam no sistema de acordo com um processo de Poisson, homogˆeneo ou n˜ao, dependendo da modelagem. Caso a escolha seja por chegadas de acordo com um processo homogˆeneo, a fun¸c˜ao prox t citada no pseudo c´odigo a seguir deve ser implementada como prox t h da p´agina 22, caso contr´ario, essa fun¸c˜ao ser´a definida por prox t da p´agina 23. Assim, segue abaixo o pseudo-c´odigo para a simula¸c˜ao de tal sistema.

Inicializa¸c˜ao: 1 t = 0; 2 ta= ∞; 3 tc= prox t(0); 4 n = 0; 5 S = 0. 6 N A = N D = N U LL; 7 8

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

9 t = tc; 10 S = S + 1; 11 N A[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)

(32)

4.3 Sistema com v´arios servidores e fila ´unica 28 t = ta; 19 N D[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: n˜ao entram mais clientes)

25 se n = 0, FIM; 26 t = ta; 27 N D[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 c´odigo mostrado n˜ao especificamos qual a fun¸c˜ao para gerar ta. Isto se

deve ao fato de que este tempo pode ser qualquer fun¸c˜ao G definida pelo pesquisador ao implementar o c´odigo. Neste caso o ideal seria fazer um estudo pr´evio da distribui¸c˜ao mais adequada.

Note que para a obten¸c˜ao de estat´ısticas tais como tempo m´edio de atendi-mento e ou total de clientes atendidos no sistema, basta analisarmos as vari´aveis N A, N D e S. A exemplo, sendo N A e N D arrays que guardam o hor´ario de chegada e sa´ıda dos clientes, logo N A − N D ´e um array que guarda o tempo que cada cliente ficou no sistema.

Perceba que o c´odigo apresentado n˜ao possui muitas vari´aveis de interesse e ou de controle, todavia, este pseudo-c´odigo tem a inten¸c˜ao de auxiliar, servindo como base, na constru¸c˜ao de sistemas mais complexos com entradas e sa´ıdas semelhantes.

4.3

Sistema com v´

arios servidores e fila ´

unica

Na se¸c˜ao anterior foi implementado o pseudo-c´odigo para um sistema com um ´

unico servidor e fila ´unicos. Nesta, ser´a constru´ıdo a sequˆencia l´ogica para implementa¸c˜ao de um sistema com k servidores e uma ´unica fila.

(33)

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 considera¸c˜ao as mesmas afirma¸c˜oes feitas na se¸c˜ao 4.2. Os clientes chegam conforme um processo de Poisson n˜ao homogˆeneo com taxa λ(t) e os tempos de atendimento dos servidores ´e determinado por um fun¸c˜ao G.

Para este tipo de sistema deve-se levar em considera¸c˜ao algo que n˜ao era im-portante para um sistema com um ´unico servidor. Na se¸c˜ao 4.2 seguia-se um sistema FIFO, coisa que neste tipo de sitema n˜ao podemos afirmar. Ou seja, o i-´esimo cliente que chega ao sistema n˜ao necessariamente ser´a 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 simula¸c˜ao deste sistema utilizaremos as seguintes vari´aveis:

1. Vari´aveis que Definem o Sistema - tempo m´aximo que o servidor ir´a funcionar (T ); e taxa de chegada dos clientes no sistema (λ(t));

2. Vari´aveis de Interesse - hor´arios de chegada dos clientes no sistema, denominado N A; hor´arios de sa´ıda dos clientes, denominado N D;

3. Vari´aveis de Controle - tempo corrente (t); quantidade de pessoas no sistema em um dado instante t (n); o tempo de chegada do pr´oximo cliente no sistema (tc);

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

(34)

4.3 Sistema com v´arios servidores e fila ´unica 30 Supondo que se tem os mesmso interesses da se¸c˜ao 4.2, vejamos como pode-se implementar um pseudo-c´odigo para este tipo de sistema.

Inicializa¸c˜ao: 1 t = 0; 2 ta= (∞, . . . , ∞); 3 n = 0; 4 S = 0; 5 tc= prox t(0); 6 N A = N D = N U LL; 7 8

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

9 t = tc; 10 S = S + 1; 11 N A[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

N D[j] = t, onde j corresponde a ordem de chegada cliente que est´a 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]; sen˜ao fa¸ca 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

N D[j] = t, onde j corresponde a ordem de chegada do cliente que est´a saindo do sistema;

29

n = n − 1;

(35)

se n ≥ k, seja i o ´ındice do servidor que acabou o atendimento, gere ta[i], sen˜ao ta[i] = ∞

31

32

Volte para a linha 27;

33

Para o sistema simulado acima vale algumas considera¸c˜oes. A vari´avel ta, ´e

vetor de tamanho k onde cada posi¸c˜ao corresponde a um servidor, sendo este ordenado segundo sua posi¸c˜ao neste vetor. Ou seja, o tempo de atendimento do servidor i ser´a representado por ta[i]. Note que as compara¸c˜oes em cada caso utiliza min(ta), isto ´e,

o menor valor do vetor ta. Desta forma, sabemos o pr´oximo servidor que ser´a liberado.

A atualiza¸c˜ao de N D tambem se difere da se¸c˜ao 4.2, j´a que, como dito, os clientes n˜ao necessariamente s˜ao atendidos na mesma ordem em que entram no sistema.

Caso queira inferir em cima dos dados simulados vale as considera¸c˜oes realiza-das na se¸c˜ao 4.2, basta utilizar N A, N D, S e qualquer outro tipo de vari´avel de interesse que o pesquisador queira incrementar no pseudo-c´odigo implementado. S˜ao exemplos de vari´aveis que n˜ao estamos controlando neste pseudo-c´odigo: tamanho m´aximo da fila e quantidade de pessoas atendidas por servidor. Note tamb´em que os servidores atendiam todos segundo uma fun¸c˜ao G e caso queira tornar os sistema mais real deve-se levar em considera¸c˜ao uma distribui¸c˜ao diferente para cada servidor, j´a que, usualmente, os atendentes, servidores, dificilmente atender˜ao de forma idˆentica.

4.4

Sistema com v´

arios servidores e filas em paralelo

Nesta se¸c˜ao iremos abordar o ´ultimo caso de simula¸c˜ao de sistemas. O sistema ter´a como base k servidores, como na se¸c˜ao 4.3, por´em 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 ser˜ao 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 Se¸c˜ao 4.3, o sistema n˜ao segue um padr˜ao F IF O. Entretanto, aqui o cliente opita por qual servidor ser´a atendido logo na sua chegada,

(36)

en-4.4 Sistema com v´arios servidores e filas em paralelo 32 quanto que, no sistema da se¸c˜ao 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 confec¸c˜ao do pseudo-c´odigo deste sistema utili-zaremos as seguintes vari´aveis:

1. Vari´aveis que definem o sistema - tempo m´aximo que o servidor ir´a funcionar (T ); e taxa de chegada dos clientes no sistema λ(t);

2. Vari´aveis de interesse - hor´ario de chegada dos clientes no sistema (N A); e hor´ario de sa´ıda dos clientes (N D);

3. Vari´aveis de controle - tempo corrente (t); quantidade de pessoas no sistema em um dado instante (n); tempo de chegada do pr´oximo cliente no sistema (tc); vetor

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

de pessoas na fila de cada servidor (f ila).

Com as vari´aveis definidas, tem-se que o pseudo-c´odigo para este tipo de sis-tema pode ser implementado como ´e mostrado a seguir.

Inicializa¸c˜ao: 1 t = 0; 2 ta= (∞, . . . , ∞); 3 n = 0; 4

(37)

S = 0; 5 f ila = (0, . . . , 0); 6 N A = N D = N U LL; 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 N A[S] = t; 13 n = n + 1; 14

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

15

f ila[i] = f ila[i] + 1; se f ila[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

N D[j] = t, onde j corresponde a ordem de chegada do cliente que est´a saindo do sistema;

21

n = n − 1;

22

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

23

f ila[i] = f ila[i] − 1;

24

se f ila[i] ≥ 1, gera ta[i];

25

sen˜ao 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

N D[j] = t, onde j corresponde ao ´ındice de chegada do cliente que est´a saindo do sistema;

32

n = n − 1;

33

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

34

f ila[i] = f ila[i] − 1;

35

se f ila[i] ≥ 1, gera ta[i]; sen˜ao, ta[i] = ∞;

36

Volte para a linha 30

(38)

4.5 Determinando o n´umero de simula¸c˜oes realizadas 34 Acerca deste sistema, valem os mesmos coment´arios feitos nas Se¸c˜oes 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 fun¸c˜ao de atendimento G e chegada dos clientes com mesmo λ(t) para ambos os sistemas, podemos realizar compara¸c˜oes em rela¸c˜ao a performance de cada um. Observando os tempos de espera no sistema, os tamanhos m´aximos da fila e ou os tempos que cada servidor fica ocioso, dentre outras pos´ıveis vari´aveis, pode-se constatar um resultado bastante conhecido que ´e a preferˆencia pela escolha de uma ´unica fila.

Alcan¸car tal resultado seria bastante complexo, talvez at´e imposs´ıvel, analiti-camente devido a dificuldade em trabalhar com taxas de chegada n˜ao homogˆeneas, por exemplo.

4.5

Determinando o n´

umero de simula¸

oes realizadas

Um ponto importante quando se usa a simula¸c˜ao para a tomada de decis˜oes ´e o n´umero de simula¸c˜oes que garantem que o resultado obtido ´e confi´avel. Como em geral estamos analisando a m´edia de alguma vari´avel aleat´oria podemos nos basear na lei dos grandes n´umeros.

Lei dos Grandes N´umeros

A Lei dos Grandes n´umeros ´e uma das aplica¸c˜oes de convergˆencia de vari´aveis aleat´orias, al´em de um resultado muito importante em probabilidade. De forma geral o teorema mostra que uma sequˆencia de vari´aveis aleat´orias definida pela m´edia amostral de vari´aveis aleat´orias identicamente distribu´ıdas e com esperan¸ca finita converge para a vari´avel aleat´oria degenerada dada pela m´edia populacional.

Existem duas vers˜oes principais dessa lei, a vers˜ao fraca e a forte. A dife-ren¸ca entre elas ´e o tipo de convergˆencia usada: a lei fraca garante a convergˆencia em probabilidade enquanto a vers˜ao forte garante a convergˆencia quase certa.

Teorema 4.5.1. Lei Fraca dos Grandes N´umeros de Khintchin

(39)

tais que E[Xn] = µ < ∞. Ent˜ao, ¯ Xn P −−−→ n→∞ µ, onde ¯Xn= Pn i=1Xi n .

Teorema 4.5.2. Lei Forte dos Grandes N´umeros de Kolmogorov

Seja {Xn} uma sequˆencia de vari´aveis aleat´orias independentes, identicamente distribu´ıdas

tais que E[Xn] = µ < ∞. Ent˜ao,

¯ Xn q.c. −−−→ n→∞ µ, onde ¯Xn= Pn i=1Xi n .

4.5.1

Crit´

erio de Parada das Simula¸

oes

Seja T a vari´avel para a qual queremos determinar a sua m´edia e seja Ti a

observa¸c˜ao dessa vari´avel na simula¸c˜ao i. Defina Wi = T1+T2+...+Ti i, ou seja, Wi ´e a m´edia

amostral das primeiras i observa¸c˜oes da vari´avel T .

Pela lei dos grandes n´umeros podemos garantir que Wi −−−→

i→∞ E[T ]. Dessa

forma o n´umero de simula¸c˜oes ser´a determinado pela vari´avel Wi. Enquanto Wi varia

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

atualiza¸c˜ao feita devido a novas simula¸c˜oes, podemos assumir que Wi j´a est´a pr´oximo do

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

(40)

36

5 Aplica¸

ao Pr´

atica: Simulando um Sistema

de Elevadores

Nos cap´ıtulos anteriores, vimos que a simula¸c˜ao ´e bastante empregada quando n˜ao podemos resolver de forma anal´ıtica nossos problemas. Entretanto, vimos diversos modelos isolados que poderiam auxiliar um futuro programador a realizar a simula¸c˜ao de um dado sistema.

Neste cap´ıtulo ser´a apresentada uma aplica¸c˜ao dos conceitos falados at´e agora para simular um sistema de elevadores. Nas Se¸c˜oes 5.2 e 5.3 ser˜ao apresentadas desde a implementa¸c˜ao do pseudo-c´odigo utilizado na simula¸c˜ao do sistema at´e a extra¸c˜ao das informa¸c˜oes e posterior an´alise das mesmas. Ser˜ao realizada tamb´em compara¸c˜oes acerca das melhores formas de disposi¸c˜ao do sistema, visando otimizar os tempos de espera dos clientes.

5.1

Introdu¸

ao

Atualmente, devido a quantidade de pr´edios e at´e mesmo pela pratcidade, vemos uma grande utiliza¸c˜ao dos elevadores. Entretanto, nem sempre s˜ao 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 n˜ao 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 considera¸c˜ao foram dois:

ˆ Sistema 1: n elevadores parando em todos os andares; e ˆ Sistema 2: n elevadores parando em andares espec´ıficos.

(41)

Para o sistema 1, foi levado em considera¸c˜ao uma fila ´unica, j´a que, como falado na Se¸c˜ao 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 se¸c˜ao seguinte ser˜ao explicitadas algumas considera¸c˜oes feitas acerca dos sistemas simulados e como foram implementados.

5.2

Algoritmo

Nesta se¸c˜ao ser´a mostrado como foram implementados os c´odigos de ambos os sistemas e as compra¸c˜oes, an´alises e discuss˜oes acerca dos dados obtidos ser˜ao realizados na se¸c˜ao 5.3.

Veja que para as simula¸c˜oes seguintes foram inclu´ıdas uma lista de fun¸c˜oes ´

uteis para a implementa¸c˜ao do algoritmo. Tais fun¸c˜oes servir˜ao para descrever de forma mais real´ıtica o fenˆomeno que se quer simular.

Para ambos os sistemas, tamb´em n˜ao foi levado em considera¸c˜ao a entrada de passageiros nos andares superiores. Ou seja, os passageiros entram no sistema apenas pelo andar t´erreo e s˜ao levados de elvador para os andares desejados. Por´em n˜ao est´a 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 simula¸c˜ao deste sistema, levou-se em considera¸c˜ao a utiliza¸c˜ao de n elevadores onde todos podem parar em qualquer andar. Para a implementa¸c˜ao do mesmo, foram utilizadas as fun¸c˜oes prox t e prox t h.

Para a realiza¸c˜ao da simula¸c˜ao foram utilizadas as seguintes vari´aveis:

1. Vari´aveis que definem o sistema - tempo m´aximo que o servidor ir´a funcionar (T ); taxa de chegada dos clientes no sistema (λ); n´umero m´aximo de pessoas por elevador, (max elevador); quantidade de elevadores no sistema (n elevadores); e n´umero de andares (n andares);

2. Vari´aveis de interesse - vetor com as horas de chegada de cada pessoa (N A); n´umero de pessoas por dia no elevador (Nc); vetor com as horas de embarques de

(42)

5.2 Algoritmo 38 cada passageiro (N D); e o n´umero de pessageiros que j´a embarcaram (Ne);

3. Vari´aveis de controle - tempo corrente (t); uma matriz n andares × n elevadores em que guarda a quantidade pessoas que ir˜ao 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 t´erreo (temp volta); instante que o pr´oximo cliente chega na fila (tc); e o n´umero de pessoas na fila num dado instante t (n f ila).

Al´em das vari´aveis, foram utilizadas algumas fun¸c˜oes ´uteis durante a simula¸c˜ao com o intuito de gerar os andares escolhidos pelos passageiros, atualizar o tempo de viagem dos elevadores dentre outras.

Veja abaixo o pseudo-c´odigo para a implementa¸c˜ao do sistema simulado.

Inicializa¸c˜ao: 1 2 N A = N D = N U LL; 3 Nc = Ne = 0; 4 max f ila = 0; 5

andaresn andares×n elevadores = 0;

6 tc= prox t(0); 7 temp volta = (∞, . . . , ∞); 8 temp viag = (∞, . . . , ∞); 9 n f ila = 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 N A[Nc] = t; 16

Se existe algum elevador no t´erreo e seja i o seu ´ındice:

17

- - Ne= Ne+ 1;

18

- - N D[Ne] = t;

(43)

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

20

- - Atualizar temp viag[i];

21

- - tc= prox t(t);

22

Caso n˜ao exista elevador no t´erreo, e seja k o elevador que ir´a descer primeiro;

23

- - Se n f ila = 0, ent˜ao:

24

- - - Atualizar temp volta[k];

25 t c = prox t(t); 26 n f ila = n f ila + 1; 27 28

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

29

parar)

30

31

Seja k o elevador que ir´a 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 ser´a

35

recarregado)

36

37

Seja k o elevador que ser´a recarregado, t = temp volta[k];

38

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

39

Se n f ila > max elevador, ent˜ao:

40

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

41

- - N D[Ne, Ne+ 1, . . . , Ne+ max elevador] = t;

42

- - Ne= Ne+ max elevador;

43

- - n f ila = n f ila − max elevador;

44

- - atualizar temp viag[k];

45

- - atualizar temp volta[k];

46

Sen˜ao: – atualizar andares[k, ] segundo os andares esocolhidos pelos passageiros;

47 – N D[Ne, Ne+ 1, . . . , Ne+ max elevador] = t; 48 – Ne = Ne+ max elevador; 49 – n f ila = 0; 50

– atualizar temp viag[k];

51

– temp volta[k] = ∞;

(44)

5.2 Algoritmo 40 Note que este pseudo-c´odigo ´e bem mais complexo do que os apresentados at´e aqui. Entretanto, sua implementa¸c˜ao ´e embasada no outros mais simples realizados no Cap´ıtulo 4.

5.2.2

Sistema 2: n elevadores parando em andares intercalados

Nesta se¸c˜ao, iremos apresentar a simula¸c˜ao de um sistema bastante seme-lhante com o anterior, entretanto, cada elevador parar´a em andares espec´ıficos ´e pr´ e-determinados. Elaborar este outro tipo de sistema tem como fim observarmos o compor-tamento do tempo m´edio de espera dos passageiros em rela¸c˜ao ao primeiro sistema.

Para a defini¸c˜ao dos intervalos de parada foi utilizada a divis˜ao mais igualit´aria poss´ıvel dentre a quantidade de elevadores dispon´ıveis. Assim, supondo um sistema com trˆes 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 realiza¸c˜ao da simula¸c˜ao utilizou-se as seguintes vari´aveis:

1. Vari´aveis que definem o sistema - tempo m´aximo que o servidor ir´a funcionar (T ); taxa de chegada dos clientes no sistema (λ); n´umero m´aximo de pessoas por elevador (max elevador); quantidade de elevadores no sistema (n elevadores); e o n´umero de andares (n andares).

2. Vari´aveis de interesse - lista com as horas de chegada de cada pessoa em cada fila (N A); vetor com o n´umero de pessoas por dia em cada elevador (Nc); lista com

as horas de embarques de cada passageiro em cada elevador, (N D); e vetor com o n´umero de pessageiros que j´a embarcaram em cada elevador (Ne);

3. Vari´aveis de controle - tempo corrente (t); uma matriz n andares × n elevadores em que guarda a quantidade pessoas que ir˜ao 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 t´erreo (temp volta); instante que o pr´oximo cliente chega na fila (tc); e o n´umero de pessoas na fila num dado instante t (n f ila).

(45)

primeiro. Isto ocorre pois estamos buscando otimizar o tempo m´edio de espera dos passa-geiros alterando apenas o comprtamento dos elevadores, mantendo os mesmos parˆametros e defini¸c˜oes para ambos os sistemas.

Visto isso a atualiza¸c˜ao dos tempos de viagem do elevador, entrada de passa-geiros no sistema, escolha de andares, dentre outros parˆametros, s˜ao os mesmos usados no sistema 1.

Abaixo segue o pseudo-c´odigo utilizado para a implementa¸c˜ao do sistema 2.

Inicializa¸c˜ao:

1

2

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

3 temp viag = (∞, . . . , ∞); 4 temp volta = (∞, . . . , ∞); 5 tc= prox th(0); 6 n f ila = (0, . . . , 0); 7

N A = N D = N U LL, note que ambos s˜ao 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 usar´a;

15

N A[[j]] = t, atualiza N A de acordo com o elevador escolhido;

16

Se existe algum elevador no t´erreo (passageiro entra direto):

17

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

18

- - N D[[j]] = t, atualiza N D 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

Sen˜ao:

23

- - atualiza temp volta;

(46)

5.2 Algoritmo 42 - - tc= prox t(t); 25 - - n f ila[j] = n f ila[j] + 1; 26 27

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

28

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 elevador

35

ser´a recarregado)

36

37

Seja o elevador k com menor temp viag;

38

t = temp volta[k];

39

andares[[k]] = 0, zera a posi¸c˜ao k da lista;

40

Se n f ila[k] > max elevador:

41

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

42

- - N D[[k]][Ne[k], . . . , Ne[k] + max elevador] = t;

43

- - incrementar Ne mais max elevador elementos;

44

- - n f ila[k] = n f ila[k] − max elevador;

45

- - atualiza temp viag[k];

46

- - atualiza temp volta[k];

47

Sen˜ao:

48

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

49

- - N D[[k]][Ne[k], . . . , Ne[k] + max elevador] = t;

50

- - incrementar Ne mais max elevador elementos;

51

- - n f ila[k] = 0;

52

- - atualiza temp viag[k];

53

- - temp volta[k] = ∞;

(47)

5.2.3

Coment´

arios

Primeiramente, note que n˜ao 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, j´a escolhe automaticamente o elevador que lhe atender´a, criando diretamente uma fila para cada elevador.

Al´em disto, visando aproximar a simula¸c˜ao de um sistema mais real´ıstico, inclu´ımos ainda alguns tempos estimados que podem incidir neste tipo de fenˆomeno. Veja na Tabela 5.1 os os tempos e eventos que foram levados em considera¸c˜ao.

Tabela 5.1: Tempos que incidem sobre os modelos simulados. Descri¸c˜ao do Parˆametro 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 rela¸c˜ao aos parˆametros das vari´aveis 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 implement´a-lo caso n˜ao tivessemos come¸cado pelo sistema mais simples, parando em todos os andares.

Dito isto, foi utilizado o software estat´ıstico R, vers˜ao 2.15.1 para realizarmos a simula¸c˜ao e podermos analisar cada modelo.

Tabela 5.2: Vari´aveis que definem os sistemas. Vari´aveis que definem Sistema Sistema

os Sistemas 1 2

T 600 minutos

max elevador 6 pessoas

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

(48)

5.3 Resultados da Simula¸c˜ao 44

5.3

Resultados da Simula¸

ao

Ao analisarmos cada sistema simulado, nos deparamos com duas quest˜oes:

- Qual o tempo gasto pelos passageiros at´e 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 vari´aveis. Um vetor T - onde Ti corresponde ao

tempo m´edio gasto pelos passageiros dentro do sistema no i-´esimo dia simulado - e outro vetor W - onde Wi = T1+T2+...+Ti i.

Com base na Lei dos Grandes N´umeros apresentada na Se¸c˜ao 4.5, utilizaremos o vetor W para checarmos se a quantidade de dias simulados foi suficiente e qual o tempo m´edio dentro de sistema por passageiro.

Entretanto, como j´a foi apresentado, a chegada dos passageiros no sistema pode se comportar de forma homogˆenea ou n˜ao homogˆenea. Por isto, realizamos simula¸c˜oes distintas para cada tipo de taxa de chegada.

Inicialmente foram gerados para cada sistema cem itera¸c˜oes com a quantidade de elevadores variando de um `a cinco.

5.4

Modelo simulado para λ homogˆ

eneo

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 convergˆencia de W em cada sistema simulado est˜ao 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 m´edio que cada passageiro demorou dentro do sistema, ou seja, o tempo m´edio desde sua chegada na fila at´e 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 d´a confian¸ca de que os sistemas simulados est˜ao de acordo com as expectativas e a implementa¸c˜ao esta

(49)

Tabela 5.3: Tempo m´edio (minutos) no sistema 1 para λ homogˆeneo. 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 m´edio (minutos) no sistema 2 para λ homogˆeneo.

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 s˜ao idˆenticos para este caso. Por outro lado, n˜ao 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 diferen¸ca dos tempos m´edios estimados no sistema 1 (49,7 minutos) em rela¸c˜ao ao sistema 2 (1,5

(50)

5.4 Modelo simulado para λ homogˆeneo 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 diferen¸ca dos tempos.

Como j´a falado anteriormente, os valores obtidos nas Tabelas 5.3 e 5.4, foram obtidos atrav´es do vetor W . Assim, dispomos nas Figuras 5.1, 5.2, 5.3 e 5.4 os gr´aficos dos vetores W ’s obtidos para os sistemas cujo λ ∈ {2, 3, 4, 5} e possuiam trˆes elevadores.

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

Figura 5.1: W resultante da simula¸c˜ao de 3 elevadores e λ = 2.

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

Figura 5.2: W resultante da simula¸c˜ao de 3 elevadores e λ = 3.

Veja que nos gr´aficos apresentados, os valores de convergˆencia at´e λ = 3 de fato apontam para o sistema 1 como melhor modelo e, conforme incrementamos λ, o sistema 2 passa a ser bem mais efic´az do que o primeiro. De fato, j´a hav´ıamos constatado isto atrav´es das Tabelas 5.3 e 5.4.

(51)

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

Figura 5.3: W resultante da simula¸c˜ao de 3 elevadores e λ = 4.

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

Figura 5.4: W resultante da simula¸c˜ao de 3 elevadores e λ = 5.

Os gr´aficos apresentados s˜ao apenas um exemplo do comportamento dos sis-temas ao longo das itera¸c˜oes, 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 convergˆencia clara bem antes dos cem dias simulados.

5.5

Modelo simulado para λ n˜

ao homogˆ

eneo

Diferente do caso homogˆeneo, n˜ao podemos adotar um λ espec´ıfico para rea-lizar as compra¸c˜oes. Assim, implementamos duas poss´ıveis fun¸c˜oes λ(t) e realizamos as simula¸c˜oes com o mesmo n´umero de itera¸c˜oes, dias simulados, e quantidade de elevadores utilizados para λ homogˆeneo. As fun¸c˜oes criadas para λ(t) est˜ao explicitadas na figura

(52)

5.5 Modelo simulado para λ n˜ao homogˆeneo 48 5.5, de modo que: λ1(t) =                            3.75, set < 120; 3(320 − t)/160, set < 300; 3(t − 270)/240, set < 480; 3(4200 − 7t)/960, set ≤ 600. λ2(t) =                            7.5, set < 120; 3(320 − t)/80, set < 300; 3(t − 270)/120, set < 480; 3(4200 − 7t)/480, set ≤ 600. (a) Fun¸c˜ao λ1(t). (b) Fun¸c˜ao λ2(t).

Figura 5.5: Curvas das fun¸c˜oes das taxas de chegada λ(t).

Nas tabelas 5.5 e 5.6 est˜ao alocados os tempos m´edios de permanˆencia dos passageiros em cada combina¸c˜ao E × λ para os sistemas 1 e 2.

Primeiramente, os valores obtidos para um ´unico elevador s˜ao semelhantes para ambas as fun¸c˜oes, tal qual no modelo homogˆeneo.

Referências

Documentos relacionados

Se tiver quaisquer efeitos secundários, incluindo possíveis efeitos secundários não indicados neste folheto, fale com o seu médico ou farmacêutico.. O que precisa de saber antes

Os autores relatam a primeira ocorrência de Lymnaea columella (Say, 1817) no Estado de Goiás, ressaltando a importância da espécie como hospedeiro intermediário de vários parasitos

1 - A instituição pode ser remunerada por serviços prestados ou possuir relações comerciais com a(s) empresa(s) analisada(s) neste relatório ou com pessoa

c) O Reino Unido assegurará que a coluna vertebral e os produtos dela derivados com origem em bovinos nascidos ou criados no Reino Unido após 31 de Julho de 1996 e abatidos antes

O capítulo 3 compreende o desenvolvimento da pesquisa e apresenta de forma detalhada a descrição dos processos e subprocessos de implementação e manutenção de segurança

Este trabalho teve por objetivo o estudo da dimensão das doenças crônicas, especificamente o diabetes mellitus, visando à elaboração de um modelo de processo

TRAYENTA DUO é indicado como adjuvante da dieta e do exercício, para melhorar o controle glicêmico em pacientes com diabetes mellitus tipo 2 (DM2), em que a dose máxima tolerada

1 Conceitos B´ asicos de Teoria das Probabilidades 2 Vari´ aveis Aleat´ orias Discretas.. 3 Vari´ aveis Aleat´ orias Cont´ınuas 4 Duas Vari´ aveis Aleat´ orias 5 Vetores de