trabalho de simulação final

63
UNIVERSIDADE FEDERAL DO TRIÂNGULO MINEIRO LUIZ FELIPE DE OLIVEIRA MOURA SANTOS MARIA EUGÊNIA DE OLIVEIRA RIBEIRO MARIANA LEDA RODRIGUES TELES DE OLIVEIRA RAISA MESSIAS SILVA PROJETO DE SIMULAÇÃO SIMULAÇÃO DE ATENDIMENTO EM UMA LOTÉRICA

Upload: luizfelipemoura

Post on 05-Dec-2015

219 views

Category:

Documents


1 download

DESCRIPTION

Trabalho de Simulação FINAL

TRANSCRIPT

UNIVERSIDADE FEDERAL DO TRIÂNGULO MINEIRO

LUIZ FELIPE DE OLIVEIRA MOURA SANTOSMARIA EUGÊNIA DE OLIVEIRA RIBEIRO

MARIANA LEDA RODRIGUES TELES DE OLIVEIRARAISA MESSIAS SILVA

PROJETO DE SIMULAÇÃOSIMULAÇÃO DE ATENDIMENTO EM UMA LOTÉRICA

UBERABA – MG2015

LUIZ FELIPE DE OLIVEIRA MOURA SANTOSMARIA EUGÊNIA DE OLIVEIRA RIBEIRO

MARIANA LEDA RODRIGUES TELES DE OLIVEIRARAISA MESSIAS SILVA

PROJETO DE SIMULAÇÃOSIMULAÇÃO DE ATENDIMENTO EM UMA LOTÉRICA

UBERABA – MG2015

Trabalho apresentado a Universidade

Federal do Triângulo Mineiro, para

disciplina de Simulação do 7º período do

curso de Engenharia de Produção.

Prof.Dr. Victor Claudio Bento de Camargo

J.A.R.V.I.S. Ltda.Rua Senador Pena, 39Bloco 2. Sala 12Fone: (34) 3312-9599E-mail: Uberaba, 11 de junho de 2015

AProf.Dr. Victor Claudio Bento de Camargo.

Prezado Senhor,

Encaminhamos o Relatório Técnico do estudo do funcionamento de uma lotérica e o

desempenho de atendimento.

As principais conclusões foram que:

O caixa preferencial possui o maior tempo médio de atendimento e o caixa de jogos o

menor.

Para melhorar o desempenho do sistema é necessário diminuir o tempo de

atendimento de todos os caixas e consequentemente, diminuir a fila de espera.

Contratação de um funcionário para auxiliar o atendimento.

Os demais detalhes do projeto estão descritos a seguir.

Atenciosamente,

Luiz Felipe Moura,Maria Eugênia de Oliveira Ribeiro,Mariana Rodrigues Teles,Raisa Messias Silva.

Engenheiros do Projeto.

Sumário

Síntese do Relatório...................................................................................5

1. Introdução............................................................................................6

2. Descrição do Sistema Estudado............................................................6

3. Objetivo................................................................................................8

4. Resultados Obtidos...............................................................................8

4.1. Coleta de Dados.............................................................................8

4.2. Tratamento de Dados...................................................................12

4.3. Inferência......................................................................................16

4.4. Teste de Aderência........................................................................19

5. Modelo Computacional........................................................................20

6. Validação e Verificação........................................................................21

7. Dimensionamento de Corridas.............................................................22

8. Conclusões e Recomendações...............................................................25

Anexos.....................................................................................................27

Referências Bibliográficas..........................................................................50

Síntese do Relatório

Data de Entrega: 11 de junho de 2015

Projeto: Simulador do funcionamento de uma lotérica durante o período de pico, na cidade

de Uberaba – MG.

Objetivo: O objetivo é analisar o simulador para as filas e o atendimento da loteria,

compará-lo com o sistema real, identificar problemas e propor melhorias.

Descrição do sistema inicial: Possui uma fila com um caixa para jogos, uma fila com

um caixa para clientes preferenciais e uma fila com dois caixas para clientes comuns.

Solução proposta: Treinamento com atendentes para diminuir o tempo médio de

atendimento; um funcionário para auxiliar no atendimento enquanto os clientes ainda estão na

fila; aumentar o número de caixas.

Conclusões: Os tempos de atendimento são altos e possuem desvios-padrão altos, o caixa

preferencial possui maior tempo médio de atendimento e o menor tempo médio foi o do caixa

de jogos.

Softwares utilizados: Code Blocks® e Excel®

5

1. Introdução

O modelo de simulação apresentado neste relatório foi constituído porque se

suspeitava que o atendimento de uma casa lotérica localizada na cidade de Uberaba-MG, não

era eficiente o bastante, sendo assim, as filas eram sempre “grandes”, em qualquer dia e

horário. Desse modo, foi analisada a eficiência de cada atendimento e, ao final, melhorias

foram propostas.

2. Descrição do Sistema Estudado

O sistema é composto por quatro atendentes e por três filas, sendo uma para clientes

preferenciais, uma dedicada apenas para jogos e uma fila única atendida pelos demais caixas,

para prestação de serviços oferecidos pela lotérica.

Quando os caixas preferenciais e de jogos estão desocupados, funcionam como caixas

de atendimento normal, sendo assim, quando chega algum cliente preferencial ou de jogos

nessas filas, eles entram como os próximos clientes a serem atendidos.

O fluxo do sistema pode ser representado pelo diagrama na figura 1, representando o

fluxo de atividades para as três filas (preferencial, única e de jogos):

Figura 1 – Diagrama de ciclo de atividades

Desta forma, quando o cliente chega ao sistema, tem a opção de escolher entre a fila

preferencial, se ele se encaixar nessa categoria e esperar pelo atendimento, fila de jogos, se for

apenas fazer apostas, ou pode entrar na fila única e esperar ser atendido pelos outros dois

6

caixas e, eventualmente, pelos caixas de jogos ou preferencial, se estiverem livres. Ou ir

direto ao caixa, se estiver livre. Depois do atendimento, o cliente sai do sistema e o próximo

da fila de espera é atendido. O fluxograma abaixo explica o funcionamento do sistema de

forma simplificada.

Figura 2 – Fluxograma do Processo

A figura 3 mostra a configuração do sistema para o cliente comum, ou seja, o que

espera na fila única pelo atendimento. As demais filas são semelhantes, porém com apenas

um caixa de atendimento, mostrado na figura 4.

Figura 3 – Configuração da Fila Única

7

Figura 4 – Configuração das Filas de Jogos e Preferencial

Foram coletados dados do sistema, como tempo de entrada dos clientes e tempo de

atendimento, para o funcionamento da casa lotérica para que a simulação pudesse ser feita.

3. Objetivo

O objetivo deste trabalho é colocar em prática os conceitos teóricos de simulação

aprendidos em aula realizando a coleta e tratamento de dados e a inferência, assim como a

validação e verificação de um modelo conceitual e computacional, e compará-lo com um

sistema real, identificando possíveis problemas e encontrando melhorias.

4. Resultados Obtidos

Para que fosse possível faze a comparação entre o modelo de simulação e o sistema

real e para entender melhor o funcionamento do sistema, foi realizada a modelagem de dados

do sistema, assim tornando possível simular o processo, analisar outros cenários e propor

melhorias.

4.1. Coleta de Dados

A coleta de dados foi realizada em um dia de grande movimento, por ser uma sexta-

feira e início de mês, sendo assim, propício para jogos e pagamentos de contas. A amostra foi

obtida no intervalo das 09h00min às 12h00min e das 15h00min às 18h00min.

Foram coletados dados de tempo de chegada à fila e tempo de atendimento nos três

tipos de caixa. O tempo de chegada foi coletado de forma que analisasse o intervalo entre

clientes, de todos os clientes que entram no sistema, independente de qual fila iria pertencer, e

o tempo de atendimento foi coletado individualmente para cada tipo de caixa. Abaixo, as

tabelas 1, 2, 3, 4 e 5 mostram o tempo entre chegadas e tempo de atendimento,

respectivamente.

Tabela 1 – Tempo entre chegada dos clientes

8

142 16 17 47 86 25 7 32 75

9

34 43 15 120 44 517 582 74 211140 21 43 109 31 351 214 59 8627 99 154 80 255 207 118 106 3125 25 20 55 162 211 7 75 23392 31 6 178 188 8 33 24 1773 101 8 34 187 32 490 116 491 4 23 199 56 215 79 79 1601 73 24 42 815 172 84 47 101

21 82 11 14 57 142 23 41 946 44 58 246 236 782 35 28 67

200 107 81 164 216 287 577 13 10866 84 17 79 378 723 52 25 44

129 37 89 103 103 174 131 89 41163 175 208 194 253 135 200 184 127118 38 37 37 102 28 110 418 37973 37 77 52 242 370 86 57 5333 67 24 37 448 39 191 138 1083 10 54 242 246 27 23 133 11514 22 60 31 211 42 169 107 10347 5 82 108 55 66 55 66 228

171 141 36 153 219 58 93 37 43639 94 116 61 278 14 66 214 1872 25 16 126 262 49 213 39 3587 109 142 134 29 292 215 47 809 34 64 23 90 142 113 3 31

123 128 15 255 4 68 147 147 10530 22 70 118 268 1044 18 39 55111 69 67 45 43 187 201 85 3295 42 41 157 259 124 662 62 21345 47 43 151 45 89 131 10 4915 25 153 101 81 116 53 103 31525 15 17 385 77 157 210 89 7349 9 2 241 242 286 192 99 4834 91 4 18 129 110 127 164 82

224 24 143 9 118 127 50 118 211 236 140 98 95 22 187 53 99

181 35 245 129 152 557 84 65 37356 15 41 187 5 148 193 577 12655 40 24 31 478 315 67 21 19040 234 118 330 45 201 31 49 35

455 98 8 31 43 259 1147 2929 144 22 234 221 403 205 140

133 104 2 154 32 1 192 3169 119 31 184 125 170 49 193

146 131 33 397 128 195 694 16115 145 35 28 67 364 196 420

10

Tabela 2 – Tempo de atendimento do caixa de jogos

210 109 44 104 72198 99 125 235 5466 90 34 292 2713 95 145 56 7737 316 83 101 16941 84 135 256 12236 378 63 347 74

107 104 174 95 30045 22 190 69 89

155 51 80 56 2350 135 250 142 3550 206 55 185 8725 43 176 46 128

322 108 183 179 102250 109 141 208 15249 30 65 121 2048 136 215 84 5313 265 46 171 83

158 292 577 54 45162 59 59 71 53108 127 197 65 21989 25 214 163 9697 72 37 131 60

458 238 142 93 16162 24 209 81 261

Tabela 3 – Tempo de atendimento do caixa 2

51 456 175 113 14130 406 38 256 210

313 102 166 179 91184 71 35 275 303305 414 286 329 621129 190 86 416 257

11

78 351 135 90 146101 30 136 132 9762 29 26 228 32146 146 156 260 173

109 256 149 122 192106 284 250 178 300259 135 173 360 182422 344 104 253 118115 121 124 61 32554 181 108 110 241

135 68 148 221 201212 360 138 310 225384 176 511 486 187129 190 50 207 235

Tabela 4 – Tempo de atendimento do caixa 3

123 164 139 194174 74 379 70132 362 282 6685 46 139 382

295 40 347 8155 178 145 75

125 144 142 550208 307 68 116110 195 155 14853 231 73 257

120 94 276 19895 227 830 165

192 205 195 127106 269 100 21130 62 69 127

251 129 310 286229 121 95 22262 230 267 194

109 242 553 157234 54 110 154255 75 61 203292 200 162 96228 115 13015 178 117

Tabela 5 – Tempo de atendimento do caixa preferencial

12

422 311 40 100 187132 327 215 76 429174 253 116 68 57377 144 104 138 374235 177 65 269 300143 226 256 21 64260 276 484 130 71326 54 166 150 490321 342 658 211 38184 188 253 272 148305 206 109 65 329111 478 147 73 255681 165 189 239 54474 66 268 48 91198 179 29 389 212149 255 68 154 364120 181 93 126 470614 292 94 86 10472 281 219 215 80

503 474 167 294 158253

4.2. Tratamento de Dados

Após obter os dados através da coleta, pode-se fazer o tratamento usando ferramenta

de Estatística Descritiva pelo programa Excel®. Nesta etapa todos os dados foram analisados

e foi feita a análise estatística:

Tabela 6 – Análise Estatística para chegada à fila

ANÁLISE ESTATÍSTICA - COM OUTLIERS

Medidas de Posição

Média 126,5Mediana 84Modo 31Mínimo 1Máximo 1147

Medidas de Dispersão

Amplitude 1146Desvio padrão 145,04

Variância da amostra21037,6

7Coeficiente de Variação 115%Coeficiente de Assimetria 3,00

13

Tabela 7 – Análise Estatística para o caixa de Jogos

ANÁLISE ESTATÍSTICA - COM OUTLIERS

Medidas de Posição

Média 125,4Mediana 97Modo 13Mínimo 13Máximo 577

Medidas de dispersão

Amplitude 564Desvio padrão 95,19

Variância da amostra9061,0

4Coeficiente de Variação 76%Coeficiente de Assimetria 1,70

Tabela 8 – Análise Estatística para o caixa 1

ANÁLISE ESTATÍSTICA - COM OUTLIERS

Medidas de Posição

Média 196,8Mediana 175,5Modo 135Mínimo 26Máximo 621

Medidas de dispersão

Amplitude 595Desvio padrão 120,55

Variância da amostra14533,4

5Coeficiente de Variação 61%Coeficiente de Assimetria 0,96

Tabela 9 – Análise Estatística para o caixa 2

ANÁLISE ESTATÍSTICA - COM OUTLIERSMedidas de Posição Média 178,1

14

Mediana 151Modo 110Mínimo 15

Máximo 830

Medidas de dispersão

Amplitude 815Desvio padrão 121,91Variância da amostra 14863,01Coeficiente de Variação 68%Coeficiente de Assimetria 2,32

Tabela 10 – Análise Estatística para o caixa preferencial

ANÁLISE ESTATÍSTICA - COM OUTLIERS

Medidas de Posição

Média 218,495Mediana 187Modo 253Mínimo 21Máximo 681

Medidas de dispersão

Amplitude 660Desvio padrão 144,40Variância da amostra 20851,07coeficiente de variação 66%coeficiente de assimetria 1,07

Os dados são separados em quartis (Q1, Q2, Q3, Q4), é calculada a amplitude pela

fórmula A=Q3-Q1 e assim encontram-se os outliers moderados e extremos, os cálculos estão

no Anexo 1. No trabalho, optou-se por eliminar todos os outliers moderados. As tabelas

abaixo mostram as análises estatísticas, com os outliers eliminados.

Tabela 11 – Análise Estatística para chegada à fila

ANÁLISE ESTATÍSTICA - SEM OUTLIERS

Medidas de Posição

Média 96,0Mediana 77Modo 31Mínimo 1Máximo 351

Medidas de Dispersão

Amplitude 350Desvio padrão 76,32Variância da amostra 5825,34Coeficiente de Variação 80%

15

Coeficiente de Assimetria 0,90

Tabela 12 – Análise Estatística para o caixa de jogos

ANÁLISE ESTATÍSTICA - SEM OUTLIERS

Medidas de Posição

Média 116,9Mediana 95,5Modo 13Mínimo 13Máximo 347

Medidas de dispersão

Amplitude 334Desvio padrão 78,01Variância da amostra 6085,41Coeficiente de Variação 67%Coeficiente de Assimetria 0,93

Tabela 13 – Análise Estatística para o caixa 1

ANÁLISE ESTATÍSTICA - SEM OUTLIERS

Medidas de Posição

Média 186,2Mediana 173Modo 135Mínimo 26Máximo 456

Medidas de dispersão

Amplitude 430Desvio padrão 105,36Variância da amostra 11100,23Coeficiente de Variação 57%Coeficiente de Assimetria 0,59

Tabela 14 – Análise Estatística para o caixa 2

ANÁLISE ESTATÍSTICA - SEM OUTLIERS

Medidas de Posição

Média 162,75Mediana 145Modo 110Mínimo 15Máximo 382

Medidas de dispersãoAmplitude 367Desvio padrão 85,44Variância da amostra 7299,75

16

Coeficiente de Variação 52%Coeficiente de Assimetria 0,59

Tabela 15 – Análise Estatística para o caixa preferencial

ANÁLISE ESTATÍSTICA - SEM OUTLIERS

Medidas de Posição

Média 205,26Mediana 182,5Modo 253Mínimo 21Máximo 503

Medidas de dispersão

Amplitude 482Desvio padrão 124,54Variância da amostra 15509,57Coeficiente de Variação 61%Coeficiente de Assimetria 0,70

Em seguida, foi feito o diagrama de dispersão para a chegada e para todos os

atendimentos notando-se que não há correlação entre os dados.

4.3. Inferência

Com a amostra determinada, construíram-se os histogramas para o intervalo de

chegada e atendimento de cada caixa. O número de classes foi encontrado pela regra de

Sturges, K=1+3,3log n, sendo n o número de dados, definiu-se o tamanho do intervalo, a

tabela de frequência, para por fim construir os histogramas abaixo:

17

1 2 3 4 5 6 7 8 9 100

20

40

60

80

100

120

Histograma de Tempo de chegada

Classes

Freq

uênc

ias

Figura

5 – Histograma de tempo chegada dos Clientes à fila

1 2 3 4 5 6 7 80

5

10

15

20

25

30

35

40Histograma do Tempo do Caixa de Jogos

Classes

Freq

uênc

ias

Figura 6 – Histograma do tempo de atendimento do caixa de jogos

18

1 2 3 4 5 6 7 80

5

10

15

20

25 Histograma do Tempo do Caixa 1

Classes

Freq

uênc

ia

Figura 7 – Histograma do tempo de atendimento do Caixa 1

1 2 3 4 5 6 7 80

5

10

15

20

25

Histograma do Tempo do Caixa 2

Classes

Freq

uenc

ias

Figura 8 – Histograma do tempo de atendimento do Caixa 2

19

1 2 3 4 5 6 7 80

5

10

15

20

25

Histograma do Tempo do Caixa Preferencial

Classes

freq

uenc

ias

Figura 9 – Histograma do tempo de atendimento do Caixa Preferencial

Observando os histogramas, percebe-se que o tempo entre chegadas se assemelha a

uma distribuição exponencial e os demais se assemelham a uma distribuição lognormal. Os

cálculos desta etapa estão demonstrados no Anexo 2

4.4. Teste de Aderência

Nesta etapa, serão testadas as hipóteses citadas acima.

H0: o modelo segue a distribuição testadaH1: o modelo não segue a distribuição testada

Foi escolhido o teste qui-quadrado utilizando nível de significância 5%. Para cada

distribuição é calculada a probabilidade acumulada para cada intervalo de classe e assim

encontrar o valor das frequências teóricas e posteriormente, os valores de E k.

Ek=(O¿¿k−T k) ²

T k

¿ , k=1,2,...,K

Sendo, Ok, a frequência observada e o T k a frequência teórica.

O somatório de E k determina a estatística Ecalc com K-1-n graus de liberdade, onde n

é o número de parâmetros estimados (n=1). Com o nível de significância e o grau de

liberdade, obtêm-se o valor Ecrítico na tabela de distribuição do qui-quadrado.

20

Para todas as hipóteses testadas, Ecalc foi menor que o Ecrítico, aceitando o H0, os

cálculos estão demonstrados no Anexo 3.

5. Modelo Computacional

O simulador foi construído utilizando-se a abordagem por atividades, e retrata a realidade

de funcionamento do sistema da lotérica analisada.

A simulação funciona da seguinte forma: é criado um primeiro cliente no estado exterior

esperando para entrar no sistema no tempo inicial de simulação, bem como, os quatro caixas

encontram-se livres. O programa simula, inicialmente, as chegadas dos usuários através de

uma função exponencial, e a partir de uma função probabilidade, resultante dos dados

coletados em campo, as entidades temporárias do sistema (clientes) foram alocados em cada

uma das três filas (normal, jogos e preferencial). Logo após, o primeiro cliente entra em

atendimento, já que o caixa está livre, em consequência, este passa para o estado ocupado. O

tempo de atendimento é dado por uma função lognormal, e ao fim deste atendimento

específico, o caixa fica livre novamente e chama o próximo cliente em espera. A ordenação da

fila de espera é do tipo FIFO – first in, first out. Já o amostrador é uma entidade fictícia do

sistema que quando solicitado pelo programador é executado e gera as medidas de

desempenho do sistema.

Os dados de entrada do programa são: a semente inicial, o tempo total de simulação, e as

medidas de desempenho obtidas pela coleta de dados em campo (média e desvio padrão). As

saídas do programa é um relatório final que apresenta a quantidade de pessoas em cada fila no

fim do tempo de simulação, o intervalo entre chegadas e o intervalo de atendimento de todas

as entidades do programa. Finalmente, há a saída dos indicadores de desempenho: o tempo

médio de atendimento de cada caixa, o número médio de pessoas atendidas por cada caixa e o

número de pessoas na fila no final do tempo de simulação, foi estabelecido que o

recolhimento de dados será a cada trinta segundos no tempo de simulação.

O código do simulador encontra-se no Anexo 4, bem como as definições de índices

para cada entidade do sistema.

21

6. Validação e Verificação

A etapa de validação e verificação é essencial para que o modelo seja bem

executado. A verificação é uma atividade, a qual envolve a análise de um sistema para

certificar se este atende aos requisitos funcionais e não funcionais. Já a validação, é a

certificação de que o sistema atende as necessidades e expectativas do cliente. Assim, podem-

se detectar problemas antes da finalização do produto, acompanhá-los e disponibilizar os

resultados obtidos.

Ao validar o modelo, pode-se deparar com três erros: o modelo ser válido, mas ser

rejeitado; o modelo ser inválido, mas aceito e o modelo se desviar dos objetivos em questão.

Nesta fase foi feita a comparação com modelos anteriores para analisar se o modelo

conceitual representa de maneira adequada o sistema real. Foi concluído que o modelo

conceitual é aceitável e pode-se validar para, posteriormente, implementá-lo.

Já na verificação foram utilizadas as técnicas de implementação modular, revisão em

grupo e inspeção. Com isso pode-se detectar alguns bugs do sistema e corrigi-los. Segundo

Moreno (2014), o processo de inspeção de sistema pode ser descrito da seguinte forma:

Figura 10 – Inspeção do sistema

Além disso, para auxiliar a verificação, foi feita a comparação entre os tempos médios

de cada atividade para os valores simulados e reais.

Tabela 16 – Comparação entre tempo médio real e simulado

AtividadeTempo médio

real (seg)

Tempo médio

simulado (seg)Erro (%)

Atendimento Caixa 1 186,21 195,33% 4,90%

Atendimento Caixa 2 162,75 167,94 3,19%

Atendimento Caixa

Jogos 116,88130,36 11,53%

Atendimento Caixa

Preferencial205,26 220,88 7,61%

Chegada 95,96 98,35 2,49%

22

A diferença entre os valores são relativamente pequenas, apenas o atendimento do

caixa de jogos (11,53%) e do caixa preferencial (7,61%) deram uma variação maior. Contudo

isto pode ocorrer devido ao alto desvio padrão destes dois caixas.

7. Dimensionamento de Corridas

Após a validação e verificação conceitual, analisa-se o comportamento do sistema do modelo conceitual que se tornou operacional. Como as condições iniciais não afetam o comportamento do sistema, ele está em regime permanente. A simulação pode ser considerada terminal, uma vez que a Lotérica tem um horário de funcionamento definido (8h às 18h). Para diferenciar parâmetros de entrada dos parâmetros de desempenho ou saída e analisar os resultados, foi escolhida como medida de desempenho o tempo médio de atendimento em cada caixa.

Para construir uma amostra piloto, o modelo será rodado com 20 replicações e o tempo médio de atendimento para cada replicação encontra-se na tabela 17 abaixo:

Tabela 17 – Média do tempo de atendimento para cada replicação

Tempo Médio de Atendimento

Replicação Caixa 1 Caixa 2Caixa de

JogosCaixa

Preferencial1 192,4 164,9 124,8 214,12 184,1 176,3 132 226,63 195,7 167,5 128,4 221,34 182,1 159,1 120,9 210,65 202,5 172,9 132,7 2286 187,4 170,4 128,1 220,87 197,7 160,6 117,9 205,88 201,2 166,8 124,1 219,19 190,6 158,7 127,1 210,2

10 192 174,2 126,1 224,411 198,2 160,8 126,1 211,312 204,3 167,2 131,1 221,713 197,8 173 128,5 221,614 185,8 165,1 123,7 212,715 192,4 164,2 127,2 219,616 199,1 169,7 122,5 217,617 203,3 174,9 128 227,118 186,5 170,3 132,7 217,419 197,8 159 122,3 21120 204 164,6 121 217,7

Média 194,75 167,01 126,26 217,93Desvio Padrão 6,966 5,610 4,145 6,279

23

Após a amostra-piloto, determina-se o intervalo de confiança, considerando que a confiança estatística é de 95 % (α = 5%), n = 20 replicações e deseja-se uma precisão tal que h* seja no máximo 2 segundos, através da distribuição de t de Student:

t n−1; α /2=t2 0−1 ;0,05 /2=2, 09 (1)

O tamanho da metade do intervalo é calculado da seguinte forma:

h=t n−1 ;α /2s

√n (2)

A partir deste valor o intervalo de confiança para a média encontrado é:

x−h ≤ μ ≤ x+h (3)

Abaixo se encontra a tabela 18 com os resultados encontrados:

Tabela 17-Intervalos de confiança

Caixa 1 Caixa 2 Caixa de

JogosCaixa

Preferencial

h3,25556

92,62169

71,93708

32,93428149

5intervalo

menor191,49 164,39 124,32 215,00

intervalo maior

198,00 169,63 128,20 220,86

A precisão desejada não foi atingida em todos os caixas, apenas o caixa de jogos conseguiu atingi-la. Logo, será determinado o número de replicações necessárias para os demais caixas através da fórmula:

n¿=⌈ n( hh¿ )

2

⌉(4)

Assim, os resultados encontrados seguem na tabela 18 abaixo:

Tabela 18 – Número de replicações necessárias

Caixa 1 Caixa 2 Caixa

PreferencialReplicaçõe

s 53 35 44

O modelo será rodado novamente para cada caixa segundo as replicações necessárias acima. Os novos dados de saída estão na tabela 19 abaixo:

24

Tabela 19 – Média do tempo de atendimento para cada replicação

ReplicaçõesTempo médio de atendimento

Caixa 1 Caixa 2 Caixa preferencial

1 203,2 173,7 219,52 192,1 164 215,53 192,3 165,4 215,74 203 171,8 226,15 187,9 162 209,36 183,5 158,22 205,27 202,4 172,8 228,58 197 170,1 219,99 197,9 168,4 221,4

10 199,1 169,6 22511 204,4 174,8 212,212 199,5 171 22113 198,8 171,6 220,714 200 166,6 217,715 186,4 163,3 216,216 201,9 168,7 225,717 191,7 168 210,918 195,3 168,2 213,119 184,3 153,4 205,320 182,8 159,7 201,421 190,5 160,4 21322 200,7 168,7 222,623 205,6 179,2 224,824 190,6 162,1 21425 198,1 168,1 220,226 195,7 168,1 22227 199 174,3 221,928 196,9 172,7 216,129 198,7 166,6 220,330 188,6 163,9 213,831 194,1 162,7 21732 196,7 170,8 219,133 192,7 166,3 217,434 207 170 233,835 196,5 173,7 22336 203,5 228,337 210,1 224,238 194,3 212,439 193,3 219,340 200,1 22041 198 225,5

25

42 201,8 218,643 203,5 213,744 198,5 215,845 199 46 200,7 47 209,8 48 200,1 49 193,2 50 196,6 51 185,4 52 195,4 53 197,5

Média 196,90 167,68 218,34Desvio padrão 6,290 5,361 6,509

Após encontrar o número de replicações necessárias calcula-se um novo intervalo de confiança para probabilidade de 95%. Segue abaixo na tabela 20 os resultados encontrados:

Tabela 20 – Intervalo de confiança para cada caixa

Caixa n t h Intervalo menor

Intervalo maior

Caixa 1 53 2,01 1,736723154

195,16 198,64

Caixa 2 35 2,03 1,839571547

165,84 169,52

Caixa preferencial

44 2,02 1,982121082

216,36 220,33

8. Conclusões e Recomendações

Foi analisado um tempo de simulação de 28800 segundos que corresponde a 8h de

serviço.

Depois de todo o processo de análise, testes, construção do simulador, validação e

verificação e dimensionamento de corridas com confiabilidade de 95%, foi possível observar

que o caixa de jogos é o que possui menor intervalo de tempo médio de atendimento [124,32;

128,20]. Já o caixa preferencial apresentou o maior intervalo de tempo médio de atendimento

[216,36; 220,33]. Os intervalos dos caixas para atendimento normal variam, o caixa 1 possui

intervalo de [195,16; 198,64] e o caixa 2 [165,84; 169,52].

26

Durante a fase de tratamento de dados, pode-se perceber que há uma grande variação

entre os tempos, tanto de chegada quanto de atendimento, que é comprovado pelos altos

valores dos desvios-padrão.

Para melhorar o desempenho do sistema é recomendado que faça um treinamento com

os atendentes para que consigam diminuir o seu tempo de atendimento sem que ocorra queda

da qualidade. Assim, é possível diminuir a quantidade de pessoas em espera sem que tenha

geração de custos significativos. Contudo, foi constatado que a lotérica pretende ampliar sua

área abrindo mais caixas de atendimento, porém é uma medida em longo prazo e seria

necessária a análise deste cenário para comprovar se realmente haveria melhoria. Outra

proposta seria a contratação de um funcionário para auxiliar os clientes no atendimento

enquanto ainda estão na fila de espera, com este auxílio o atendimento ocorreria de forma

mais rápida e simplificada.

27

Anexos

Anexo 1: Quartis

1. Cálculo dos quartis para chegada de clientes na fila

Quartis Q1 35Q2 84Q3 162,5Q4 782

Amplitude InterquartilA = Q3 - Q1 127,5

2. Cálculo dos quartis para caixa de jogos

QuartisQ1 54,5Q2 97Q3 172,5Q4 577

Amplitude InterquartilA = Q3 - Q1 118

3. Cálculo dos quartis para caixa 1

QuartisQ1 109,25Q2 175,5Q3 259,75Q4 621

Amplitude InterquartilA = Q3 - Q1 150,54. Cálculo dos quartis para caixa 2

QuartisQ1 95,75Q2 151Q3 229,25

28

Outliers ModeradosQ1-1,5*A -156,25Q3+1,5*A 353,75

Outliers ExtremosQ1-3*A -347,5Q3+3*A 545

Outliers ModeradosQ1-1,5*A -122,5Q3+1,5*A 349,5

Outliers ExtremosQ1-3*A -299,5Q3+3*A 526,5

Outliers ModeradosQ1-1,5*A -116,5Q3+1,5*A 485,5

Outliers ExtremosQ1-3*A -342,25Q3+3*A 711,25

Q4 830

Amplitude InterquartilA = Q3 - Q1 133,5

5. Cálculo dos quartis para caixa preferencial

QuartisQ1 104Q2 187Q3 292Q4 681

Amplitude Interquartil

A = Q3 - Q1 188

Anexo 2: Tabela de valores para a regra de Sturges e Tabela de Frequência

1. Para a chegada de clientes à fila

Regra de Sturgesk 10n 389h 35,00

k

Classes Frequência a B

1 0 35 1062 35 70 803 70 105 564 105 140 475 140 175 316 175 210 277 210 245 248 245 280 109 280 315 5

10 315 Infinito 3

2. Para o atendimento no caixa de jogos

Regra de Sturgues29

Outliers ModeradosQ1-1,5*A -104,5Q3+1,5*A 429,5

Outliers ExtremosQ1-3*A -305,75Q3+3*A 629,75

Outliers ModeradosQ1-1,5*A -178Q3+1,5*A 574

Outliers ExtremosQ1-3*A -460Q3+3*A 856

K 8n 122h 41,75

kClasses

Frequência

a B 1 0 41,75 162 41,75 83,5 363 83,5 125,25 244 125,25 167 165 167 208 126 208,75 250,5 97 250,5 292,25 98 292,25 Infinito 4

3. Para o atendimento no caixa 1

Regra de SturguesK 8n 53,75h 97

kClasses

Frequência

a B 1 0 53,75 92 53,75 107,5 143 107,5 161,25 234 161,25 215 175 215 268,75 126 268,75 322,5 97 322,5 376,25 68 376,25 Infinito 6

4. Para o atendimento no caixa 2

Regra de SturguesK 8n 91h 45,875

30

k Classes Frequência

A B1 0 45,875 32 45,875 91,75 173 91,75 137,625 214 137,625 183,5 155 183,5 229,375 156 229,375 275,25 97 275,25 321,125 78 321,125 Infinito 4

5. Para o atendimento no caixa preferencial

Regra de Sturgesk 8n 98h 60,25

k Classes Frequência

A B1 0 60,25 82 60,25 120,5 223 120,50 180,75 194 180,75 241 145 241,00 301,25 156 301,25 361,5 77 361,50 421,75 58 421,75 Infinito 8

Anexo 3: Teste de Aderência: Qui-Quadrado

1. Para a chegada de clientes à fila

Parâmetros

31

Média 95,96lambda 0,010

graus de liberdade 8alfa 0,05

Teste qui-quadrado

k Pk Tk Ok Ok-Tk(Ok - Tk)² /

Tk

10,30561

6118,884

5106 -12,8845 1,396407759

20,21221

582,5515

5 80 -2,55155 0,07886456

30,14735

957,3224

9 56 -1,32249 0,030511315

40,10232

339,8038

3 477,19616

6 1,301000429

50,07105

227,6391

5 313,36084

6 0,408669639

60,04933

719,1921

9 277,80780

7 3,176388151

70,03425

913,3267

6 2410,6732

4 8,548077333

80,02378

99,25388

9 100,74611

1 0,060156498

9 0,0176,42575

5 5 -1,42575 0,316348229

100,03753

214,5998

4 3 -11,5998 9,216288768E cal 15,31642391

E crítico 15,507

2. Para o atendimento no caixa de jogos

Parâmetros

Graus de Liberdade 5Média ln(x)* 4,52Desvio ln(x)* 0,73Alfa 0,05

Teste qui-quadrado

k Pk Tk Ok Ok - Tk(Ok - Tk)² /

Tk

10,14036490

6 17,124519 16 -1,12451853 0,073843941

32

2 0,30703475 37,45824 36 -1,4582395 0,056768884

30,21586971

1 26,336105 24 -2,33610474 0,207220674

40,12896933

2 15,734259 16 0,265741496 0,004488203

50,07617024

4 9,2927698 12 2,707230232 0,788687949

60,04591151

8 5,6012052 9 3,398794804 2,062378669

70,08567953

9 10,452904 9 -1,45290376 0,201946691

E-calc 3,395335011

E-crítico 11,07

3. Para o atendimento no caixa 1

ParâmetrosGraus de Liberdade 6Média ln(x)* 5,03525672Desvio ln(x)* 0,675462037Alfa 0,05

Teste qui-quadrado

k Pk Tk Ok Ok - Tk(Ok - Tk)² /

Tk

1 0,0598726855,80765044

5 93,19234955

51,75477084

5

2 0,23830082423,1151799

3 14

-9,11517992

83,59445634

3

3 0,22997527922,3076020

6 230,69239793

7 0,0214911

4 0,1620878915,7225253

3 17 1,27747467 0,1037964

5 0,10561028210,2441973

5 121,75580264

60,30093552

7

6 0,0677885126,57548566

4 92,42451433

60,89396739

1

7 0,0437813814,24679395

7 61,75320604

30,72377691

58 0,092583146 8,98056516 6 - 0,98922156

33

22,98056516

2 1

E-calc8,38241608

3

E-crítico 12,59

4. Para o atendimento no caixa 2

ParâmetrosGraus de Liberdade 4

Média ln(x) 4,933311801Desvio ln(x) 0,609286932

Alfa 0,05

Teste qui-quadrado

k Pk Tk Ok Ok - Tk(Ok - Tk)² /

Tk

1 0,034568726 3,145754 3 -0,145754070,00675330

9

2 0,213720295 19,44855 17 -2,448546850,30826887

5

3 0,245962826 22,38262 21 -1,382617170,08540691

3

4 0,182584592 16,6152 15 -1,615197870,15701673

8

5 0,118592402 10,79191 15 4,2080914181,64086206

3

6 0,074302188 6,761499 9 2,2385008920,74109101

6

7 0,0462951 4,212854 7 2,78714591,84392387

8

8 0,084375295 7,678152 4 -3,678151851,76198664

3

E-calc6,54530943

4

E-crítico 9,49

5. Para o atendimento no caixa preferencial

ParâmetrosGraus de 6

34

LiberdadeMédia ln(x)* 5,11Desvio ln(x)* 0,70Alfa 0,05

Teste qui-quadrado

k Pk Tk Ok Ok - Tk(Ok - Tk)² /

Tk1 0,074850919 7,335390062 8 0,664609938 0,0602157982 0,249724862 24,47303648 22 -2,473036476 0,2499039883 0,223825721 21,93492066 19 -2,934920658 0,3926961674 0,153786225 15,07105005 14 -1,07105005 0,0761160115 0,099595979 9,760405942 15 5,239594058 2,8127258296 0,06412726 6,28447148 7 0,71552852 0,081467647 0,041746642 4,091170916 5 0,908829084 0,2018909318 0,092342392 9,049554416 8 -1,049554416 0,121725824

E-calc 3,996742189

E-crítico 12,59

* x é o intervalo de tempo da amostra

Anexo 4: Modelo Computacional – Código C

1 #include <stdio.h> 2 #include <math.h> 3 #include <stdlib.h> 4 5 #define M 2147438647 6 7 #define FALSE 0 8 #define TRUE 1 9 10 #define CL_EXTERIOR 0 11 #define CL_ESP 1 12 #define CL_ESP_J 2 13 #define CL_ESP_P 3 14 #define CL_AT_J 4 15 #define CL_AT_1 5 16 #define CL_AT_2 6 17 #define CL_AT_P 7 18 #define CL_ELIMINADO 8 19 #define CX_J_OCUP 9 20 #define CX_J_LIVRE 10 21 #define CX_1_OCUP 11 22 #define CX_1_LIVRE 12 23 #define CX_2_OCUP 13 24 #define CX_2_LIVRE 14 25 #define CX_P_OCUP 15 26 #define CX_P_LIVRE 16 27 #define AMOSTRADOR 17

35

28 29 #define TEMPO 0 30 #define ESTADO 1 31 32 #define CAIXAJ 0 33 #define CAIXA1 1 34 #define CAIXA2 2 35 #define CAIXAP 3 36 #define AMOST 4 37 38 float congruencia(unsigned long int *x) 39 { 40 float y; 41 int a = 16807; 42 int c = 1; 43 float k; 44 45 *x = (float)(((a*(*x)+c)%M)); 46 k = *x; 47 y = k/M; 48 49 return y; 50 } 51 52 float lognormal(float media, float desvio, unsigned long int *seed) 53 { 54 float r1; 55 float r2; 56 float x; 57 float y; 58 float z; 59 60 do 61 { 62 r1 = congruencia(seed); 63 r2 = congruencia(seed); 64 x = sqrt(-2*log(r1))*(cos(2*M_PI*r2)); 65 z = x*(desvio)+(media); 66 } 67 while(z<0); 68 69 y = log(z); 70 71 return y; 72 } 73 74 float exponencial(float taxa, unsigned long int *seed) 75 { 76 float x; 77 float r; 78 79 do 80 { 81 r = congruencia(seed); 82 x = -(1/(taxa))*log(1-r); 83 } 84 while(x<0); 85 86 return x; 87 } 88

36

89 int entrada(int tsim, int indiceEntAtual, int **ent, unsigned long int *seed, float taxa, int *espera, int *espera_J, int *espera_P) 90 { 91 int i; 92 int tnext; 93 float roleta; 94 95 /* ANALISA A ENTIDADE ATUAL QUE FOI PASSADA NO TEMPO DE SIMULAÇÃO tsim */ 96 if((ent[indiceEntAtual][ESTADO]==CL_EXTERIOR)&&(ent[indiceEntAtual][TEMPO]==tsim)) 97 { 98 roleta = congruencia(seed); 99 100 if ((roleta>=0)&&(roleta<=0.4886))101 {102 ent[indiceEntAtual][ESTADO]=CL_ESP;103 *espera=*espera+1;104 }105 106 if ((roleta>0.4886)&&(roleta<=0.7595))107 {108 ent[indiceEntAtual][ESTADO]=CL_ESP_J;109 *espera_J=*espera_J+1;110 }111 112 if ((roleta>0.7595)&&(roleta<=1))113 {114 ent[indiceEntAtual][ESTADO]=CL_ESP_P;115 *espera_P=*espera_P+1;116 }117 118 /*119 CRIA NOVO CLIENTE120 ARMAZENA NA PRIMEIRA LINHA VAZIA DA LISTA DE ENTIDADES121 ATRIBUI UM TEMPO E UM ESTADO A ESSE NOVO CLIENTE122 */123 for(i=6;i<1006;i++)124 {125 if ((ent[i][ESTADO]<0)||(ent[i][ESTADO]>17))126 {127 tnext = (int) exponencial(taxa,seed);128 ent[i][TEMPO]=tnext+tsim;129 ent[i][ESTADO]=CL_EXTERIOR;130 break;131 }132 }133 }134 return 0;135 }136 137 int atendimento_1(int tsim, int indiceEntAtual, int **ent, unsigned long int *seed, float media, float desvio, int *espera, int *soma, int *contador)138 {139 int i;140 int tnext;141 142 if((ent[indiceEntAtual][ESTADO]==CL_AT_1)&&(indiceEntAtual>=5)&&(ent[indiceEntAtual][TEMPO]==tsim)&&(indiceEntAtual!=-1))

37

143 {144 ent[indiceEntAtual][ESTADO]=CL_ELIMINADO;145 ent[CAIXA1][ESTADO]=CX_1_LIVRE;146 }147 148 if ((*espera>0)&&(ent[CAIXA1][ESTADO]==CX_1_LIVRE)&&(indiceEntAtual!=-1))149 {150 151 if (ent[indiceEntAtual][ESTADO]==CL_ESP)152 {153 ent[indiceEntAtual][ESTADO]=CL_AT_1;154 ent[CAIXA1][ESTADO]=CX_1_OCUP;155 *espera=*espera-1;156 tnext = (int)exp(lognormal(media,desvio,seed));157 ent[CAIXA1][TEMPO]=tsim+tnext;158 ent[indiceEntAtual][TEMPO]=tsim+tnext;159 *soma = *soma + tnext;160 *contador = *contador + 1;161 }162 }163 return 0;164 }165 166 int atendimento_2(int tsim, int indiceEntAtual, int **ent, unsigned long int *seed, float media, float desvio, int *espera, int *soma, int *contador)167 {168 int i;169 int tnext;170 171 if((ent[indiceEntAtual][ESTADO]==CL_AT_2)&&(indiceEntAtual>=5)&&(ent[indiceEntAtual][TEMPO]==tsim)&&(indiceEntAtual!=-1))172 {173 ent[indiceEntAtual][ESTADO]=CL_ELIMINADO;174 ent[CAIXA2][ESTADO]=CX_2_LIVRE;175 }176 177 if ((*espera>0)&&(ent[CAIXA2][ESTADO]==CX_2_LIVRE)&&(indiceEntAtual!=-1))178 {179 180 if (ent[indiceEntAtual][ESTADO]==CL_ESP)181 {182 ent[indiceEntAtual][ESTADO]=CL_AT_2;183 ent[CAIXA2][ESTADO]=CX_2_OCUP;184 *espera=*espera-1;185 tnext = (int)exp(lognormal(media,desvio,seed));186 ent[CAIXA2][TEMPO]=tsim+tnext;187 ent[indiceEntAtual][TEMPO]=tsim+tnext;188 *soma = *soma + tnext;189 *contador = *contador + 1;190 }191 }192 return 0;193 }194 195 int atendimento_P(int tsim, int indiceEntAtual, int **ent, unsigned long int *seed, float media, float desvio, int *espera_P, int *soma, int *contador)

38

196 {197 int i;198 int tnext;199 200 if((ent[indiceEntAtual][ESTADO]==CL_AT_P)&&(indiceEntAtual>=5)&&(ent[indiceEntAtual][TEMPO]==tsim)&&(indiceEntAtual!=-1))201 {202 ent[indiceEntAtual][ESTADO]=CL_ELIMINADO;203 ent[CAIXAP][ESTADO]=CX_P_LIVRE;204 }205 206 if ((*espera_P>0)&&(ent[CAIXAP][ESTADO]==CX_P_LIVRE)&&(indiceEntAtual!=-1))207 {208 209 if (ent[indiceEntAtual][ESTADO]==CL_ESP_P)210 {211 ent[indiceEntAtual][ESTADO]=CL_AT_P;212 ent[CAIXAP][ESTADO]=CX_P_OCUP;213 *espera_P=*espera_P-1;214 tnext = (int)exp(lognormal(media,desvio,seed));215 ent[CAIXAP][TEMPO]=tsim+tnext;216 ent[indiceEntAtual][TEMPO]=tsim+tnext;217 *soma = *soma + tnext;218 *contador = *contador + 1;219 }220 }221 return 0;222 }223 224 int atendimento_J(int tsim, int indiceEntAtual, int **ent, unsigned long int *seed, float media, float desvio, int *espera_J, int *espera, int *soma, int *contador)225 {226 int i;227 int tnext;228 229 if((ent[indiceEntAtual][ESTADO]==CL_AT_J)&&(indiceEntAtual>=5)&&(ent[indiceEntAtual][TEMPO]==tsim)&&(indiceEntAtual!=-1))230 {231 ent[indiceEntAtual][ESTADO]=CL_ELIMINADO;232 ent[CAIXAJ][ESTADO]=CX_J_LIVRE;233 }234 235 if ((*espera_J>0)&&(ent[CAIXAJ][ESTADO]==CX_J_LIVRE)&&(indiceEntAtual!=-1))236 {237 238 if (ent[indiceEntAtual][ESTADO]==CL_ESP_J)239 {240 ent[indiceEntAtual][ESTADO]=CL_AT_J;241 ent[CAIXAJ][ESTADO]=CX_J_OCUP;242 *espera_J=*espera_J-1;243 tnext = (int)exp(lognormal(media,desvio,seed));244 ent[CAIXAJ][TEMPO]=tsim+tnext;245 ent[indiceEntAtual][TEMPO]=tsim+tnext;246 *soma = *soma + tnext;247 *contador = *contador + 1;248 }

39

249 }250 251 if ((*espera_J==0)&&(ent[CAIXAJ][ESTADO]==CX_J_LIVRE)&&(indiceEntAtual!=-1))252 {253 254 if (ent[indiceEntAtual][ESTADO]==CL_ESP)255 {256 ent[indiceEntAtual][ESTADO]=CL_AT_J;257 ent[CAIXAJ][ESTADO]=CX_J_OCUP;258 *espera=*espera-1;259 tnext = (int)exp(lognormal(media,desvio,seed));260 ent[CAIXAJ][TEMPO]=tsim+tnext;261 ent[indiceEntAtual][TEMPO]=tsim+tnext;262 *soma = *soma + tnext;263 *contador = *contador + 1;264 }265 }266 return 0;267 }268 269 int amostragem(int tsim, int indiceEntAtual, int **ent, int tempo, int *espera, int *espera_j, int *espera_p, int analise)270 {271 int i, j;272 char caracter=1;273 274 if(((indiceEntAtual==1)||(ent[indiceEntAtual][ESTADO]==AMOSTRADOR))&&(ent[indiceEntAtual][TEMPO]==tsim))275 {276 switch(analise)277 {278 case 1:279 system("cls");280 printf("\nAMOSTRADOR\n\n1. FILA NORMAL\n\n");281 for(i=0;i<=*espera;i++)282 {283 printf("%c",caracter);284 }285 break;286 287 case 2:288 system("cls");289 printf("\nAMOSTRADOR\n\n2. FILA PREFERENCIAL\n\n");290 for(i=0;i<=*espera_p;i++)291 {292 printf("%c",caracter);293 }294 break;295 296 case 3:297 system("cls");298 printf("\nAMOSTRADOR\n\n3. FILA JOGOS\n\n");299 for(i=0;i<=*espera_j;i++)300 {301 printf("%c",caracter);302 }303 break;304 305 case 4:306 system("cls");

40

307 printf("\nAMOSTRADOR\n\n4. INDICE DO CLIENTE NO EXTERIOR: ");308 for(j=5;j<=1006;j++)309 {310 if(ent[j][ESTADO]==CL_EXTERIOR)311 {312 printf("%d",j);313 }314 else315 {316 break;317 }318 }319 break;320 }321 ent[indiceEntAtual][TEMPO]=tsim+tempo;322 }323 return 0;324 }325 326 int main()327 {328 float medianormal_1, desvionormal_1;329 float medianormal_2, desvionormal_2;330 float medianormal_P, desvionormal_P;331 float medianormal_J, desvionormal_J;332 float taxaexp;333 unsigned long int semente;334 int i, j, k;335 int tsim=0;336 int tmax, tmin;337 int clientes_espera=0;338 int clientes_espera_J=0;339 int clientes_espera_P=0;340 int opcao;341 int tamostra;342 int simular;343 344 int testefila;345 int teste1, teste2, testej, testep;346 int soma1=0, soma2=0, somaj=0, somap=0;347 float media1, media2, mediaj, mediap;348 int contador1=0;349 int contador2=0;350 int contadorj=0;351 int contadorp=0;352 353 /* CRIA E FAZ ALOCAÇÃO DINÂMICA DA MATRIZ ENTIDADE */354 int **entidade;355 entidade = malloc(1005*sizeof(int*));356 for(i=0;i<1006;i++)357 {358 entidade[i] = malloc(2*sizeof(int));359 }360 entidade[CAIXAJ][TEMPO]=0;361 entidade[CAIXAJ][ESTADO]=CX_J_LIVRE;362 entidade[CAIXA1][TEMPO]=0;363 entidade[CAIXA1][ESTADO]=CX_1_LIVRE;364 entidade[CAIXA2][TEMPO]=0;365 entidade[CAIXA2][ESTADO]=CX_2_LIVRE;366 entidade[CAIXAP][TEMPO]=0;

41

367 entidade[CAIXAP][ESTADO]=CX_P_LIVRE;368 entidade[AMOST][TEMPO]=0;369 entidade[AMOST][ESTADO]=AMOSTRADOR;370 entidade[5][TEMPO]=0;371 entidade[5][ESTADO]=CL_EXTERIOR;372 for (i=6;i<1006;i++)373 {374 entidade[i][TEMPO]=999999;375 entidade[i][ESTADO]=-1;376 }377 378 /*379 UMA COLUNA PARA O TEMPO E UMA COLUNA PARA O ESTADO DA ENTIDADE380 OS CAIXAS SÃO AS ENTIDADES DE �NDICE 0, 1, 2, 3 E 4. O AMOSTRADOR É A ENTIDADE DE �NDICE 5381 OS CLIENTES SÃO AS ENTIDADES 6 A 1005;382 */383 384 int entidadeatual[6];385 /*386 CRIA O VETOR ENTIDADE ATUAL387 388 NO M�XIMO 6 ENTIDADES PODEM PASSAR PARA A ENTIDADE ATUAL389 APENAS AS ENTIDADES NOS ESTADOS ABAIXO:390 CL_EXTERIOR, CL_AT_J, CL_AT_1, CL_AT_2, CL_AT_P e AMOSTRADOR391 392 CADA POSIÇÃO DO VETOR ARMAZENA APENAS OS �NDICES (i) DA ENTIDADE CORRESPONDENTE393 NA MATRIZ DE ENTIDADES (0 a 1005)394 */395 396 semente=1236;397 tmax=28800; //8 HORAS DE TRABALHO (8h = 28800s)398 tamostra=30;399 400 //taxaexp=95.92; //intervalo entre chegadas (segundos)401 taxaexp=0.010421; //(clientes/segundo)402 403 //CAIXA NORMAL 1404 medianormal_1=186.21;405 desvionormal_1=105.32;406 407 //CAIXA NORMAL 2408 medianormal_2=161.43;409 desvionormal_2=85.93;410 411 //CAIXA PREFERENCIAL412 medianormal_P=205.26;413 desvionormal_P=124.54;414 415 //CAIXA DE JOGOS416 medianormal_J=116.88;417 desvionormal_J=78.01;418 419 printf("\nDados inseridos!\n");420 421 /* TESTE DA GERAÇÃO DE NÚMEROS ALEATÓRIOS SEGUNDO DISTRIBUIÇÃO EXPONENCIAL COM A MÉDIA DADA */422 /*423 for(i=1;i<=300;i++)424 {

42

425 testefila = exponencial(taxaexp, &semente);426 printf("%d\t",testefila);427 }428 */429 430 /* TESTE DA GERAÇÃO DE NÚMEROS ALEATÓRIOS SEGUNDO DISTRIBUIÇÃO LOGNORMAL COM A MÉDIA E O DESVIO DO PRIMEIRO CAIXA */431 /*432 for(k=0;k<53;k++)433 {434 soma1=0;435 for(i=1;i<=300;i++)436 {437 teste1 = (int)exp(lognormal(medianormal_1, desvionormal_1, &semente));438 //printf("%d\t",teste1);439 soma1=soma1+teste1;440 }441 media1=(float)soma1/i;442 printf("media caixa 1: %.1f\n",media1);443 }444 */445 446 /* TESTE DA GERAÇÃO DE NÚMEROS ALEATÓRIOS SEGUNDO DISTRIBUIÇÃO LOGNORMAL COM A MÉDIA E O DESVIO DO SEGUNDO CAIXA */447 /*448 for(k=0;k<35;k++)449 {450 soma2=0;451 for(i=1;i<=300;i++)452 {453 teste2 = (int)exp(lognormal(medianormal_2, desvionormal_2, &semente));454 //printf("%d\t",teste2);455 soma2=soma2+teste2;456 }457 media2=(float)soma2/i;458 printf("media caixa 2: %.1f\n",media2);459 }460 */461 462 /* TESTE DA GERAÇÃO DE NÚMEROS ALEATÓRIOS SEGUNDO DISTRIBUIÇÃO LOGNORMAL COM A MÉDIA E O DESVIO DO CAIXA PREFERENCIAL */463 /*464 for(k=0;k<44;k++)465 {466 somap=0;467 for(i=1;i<=300;i++)468 {469 testep = (int)exp(lognormal(medianormal_P, desvionormal_P, &semente));470 //printf("%d\t",testep);471 somap=somap+testep;472 }473 mediap=(float)somap/i;474 printf("media caixa preferencial: %.1f\n",mediap);475 }476 */477 478 /* TESTE DA GERAÇÃO DE NÚMEROS ALEATÓRIOS SEGUNDO DISTRIBUIÇÃO LOGNORMAL COM A MÉDIA E O DESVIO DO CAIXA DE JOGOS */

43

479 /*480 for(k=0;k<20;k++)481 {482 somaj=0;483 for(i=1;i<=300;i++)484 {485 testej = (int)exp(lognormal(medianormal_J, desvionormal_J, &semente));486 //printf("%d\t",testej);487 somaj=somaj+testej;488 }489 mediaj=(float)somaj/i;490 printf("media caixa jogos: %.1f\n",mediaj);491 }492 */493 494 /*495 printf("Semente: ");496 scanf ("%lu", &semente);497 printf("Tempo maximo de Simulacao (segundos, maximo=999999): ");498 scanf ("%d", &tmax);499 printf("Tempo de intervalo de amostragem (segundos): ");500 scanf ("%d", &tamostra);501 502 printf("\n\nDADOS DO PROBLEMA\n\n");503 printf("Intervalo entre chegada de clientes (segundos): ");504 scanf ("%f", &taxaexp);505 printf("\nMedia dos tempos de atendimento (segundos): ");506 507 printf("\n\nCaixa JOGOS: ");508 scanf ("%f", &medianormal_J);509 printf("Caixa 1: ");510 scanf ("%f", &medianormal_1);511 printf("Caixa 2: ");512 scanf ("%f", &medianormal_2);513 printf("Caixa PREFERENCIAL: ");514 scanf ("%f", &medianormal_P);515 516 printf("\nDesvio padrao dos tempos de atendimento (segundos): ");517 518 printf("\n\nCaixa JOGOS: ");519 scanf ("%f", &desvionormal_J);520 printf("Caixa 1: ");521 scanf ("%f", &desvionormal_1);522 printf("Caixa 2: ");523 scanf ("%f", &desvionormal_2);524 printf("Caixa PREFERENCIAL: ");525 scanf ("%f", &desvionormal_P);526 */527 528 printf("\n\nOPCOES DO AMOSTRADOR\n");529 printf("\n0. APENAS GERAR RELATORIO DE DESEMPENHO (NAO EXIBE AS FILAS GRAFICAMENTE)");530 printf("\n1. FILA NORMAL");531 printf("\n2. FILA PREFERENCIAL");532 printf("\n3. FILA DE JOGOS");533 printf("\n4. CLIENTES NO EXTERIOR");534 printf("\n\nQual das opcoes acima deseja que o amostrador exiba graficamente? (Insira o numero da opcao escolhida) ");535 scanf ("%d", &opcao);536

44

537 while ((opcao<0)||(opcao>4))538 {539 printf("\nVALOR INSERIDO INVALIDO, TENTE NOVAMENTE. INSIRA UMA OPCAO DE 0 A 4: ");540 scanf ("%d", &opcao);541 }542 543 simular = TRUE;544 545 while (simular == TRUE)546 {547 tmin=999999;548 for (i=0;i<1006;i++)549 /* DESCOBRE QUAL O MENOR TEMPO DENTRE OS TEMPOS DE TODAS ENTIDADES EXISTENTES */550 {551 if ((entidade[i][ESTADO]>=0)&&(entidade[i][ESTADO]<=17))552 {553 if ((entidade[i][TEMPO]<tmin)&&((entidade[i][ESTADO]==CL_EXTERIOR)||(entidade[i][ESTADO]==CL_AT_J)||(entidade[i][ESTADO]==CL_AT_1)||(entidade[i][ESTADO]==CL_AT_2)||(entidade[i][ESTADO]==CL_AT_P)||(entidade[i][ESTADO]==AMOSTRADOR)))554 {555 tmin = entidade[i][TEMPO];556 }557 }558 else559 {560 break;561 }562 }563 564 /* COLOCA AS ENTIDADES COM TEMPO IGUAL AO tmin NA LISTA DE ENTIDADES ATUAIS */565 j=0;566 for (i=4;i<1006;i++)567 {568 if ((entidade[i][TEMPO]==tmin)&&((entidade[i][ESTADO]==CL_EXTERIOR)||(entidade[i][ESTADO]==CL_AT_J)||(entidade[i][ESTADO]==CL_AT_1)||(entidade[i][ESTADO]==CL_AT_2)||(entidade[i][ESTADO]==CL_AT_P)||(entidade[i][ESTADO]==AMOSTRADOR)))569 {570 entidadeatual[j]=i;571 j++;572 }573 }574 575 for (k=j; k<6; k++)576 {577 entidadeatual[k]=-1;578 }579 580 tsim = tmin;581 582 for (i=0;i<6;i++)583 {584 if (entidadeatual[i]!=-1)585 {586 /* FUNÇÃO ENTRADA: TIRA UM CLIENTE DO EXTERIOR PARA ALGUMA DAS FILAS E CRIA UM NOVO CLIENTE */587 entrada(tsim, entidadeatual[i], entidade, &semente,

45

taxaexp, &clientes_espera, &clientes_espera_J, &clientes_espera_P);588 589 /*590 FUNÇÕES DE ATENDIMENTO:591 CASO O CAIXA ESTEJA OCUPADO, ELIMINA UM CLIENTE ATENDIDO E COLOCA O CAIXA NO ESTADO LIVRE592 593 CASO O CAIXA ESTEJA LIVRE E HAJA PESSOAS EM ESPERA NA FILA,594 CHAMA UM CLIENTE DA FILA, CALCULA SEU TEMPO DE ATENDIMENTO E MARCA SEU FIM595 596 ATUALIZA O NÚMERO DE PESSOAS EM ESPERA DA FILA (RETIRA UMA PESSOA DA FILA APÓS SER ATENDIDA)597 */598 599 atendimento_1(tsim, entidadeatual[i], entidade, &semente, medianormal_1, desvionormal_1, &clientes_espera, &soma1, &contador1);600 601 atendimento_2(tsim, entidadeatual[i], entidade, &semente, medianormal_2, desvionormal_2, &clientes_espera, &soma2, &contador2);602 603 atendimento_P(tsim, entidadeatual[i], entidade, &semente, medianormal_P, desvionormal_P, &clientes_espera_P, &somap, &contadorp);604 605 atendimento_J(tsim, entidadeatual[i], entidade, &semente, medianormal_J, desvionormal_J, &clientes_espera_J, &clientes_espera, &somaj, &contadorj);606 607 /* FUNÇÃO AMOSTRAGEM: COLETA DADOS DO PROBLEMA */608 amostragem(tsim, entidadeatual[i], entidade, tamostra, &clientes_espera, &clientes_espera_J, &clientes_espera_P, opcao);609 }610 611 else612 {613 break;614 }615 }616 617 if (tsim < tmax)618 {619 simular = TRUE;620 }621 else622 {623 simular = FALSE;624 }625 }626 system("CLS");627 printf("\n========== RELATORIO DE DESEMPENHO ==========\n\n");628 629 printf("\n# PESSOAS NA FILA NORMAL AO FINAL DA SIMULACAO: %d",clientes_espera);630 printf("\n# PESSOAS NA FILA PREFERENCIAL AO FINAL DA SIMULACAO: %d",clientes_espera_P);631 printf("\n# PESSOAS NA FILA DE JOGOS AO FINAL DA SIMULACAO: %d",clientes_espera_J);

46

632 633 printf("\n\nPESSOAS ATENDIDAS NO CAIXA 1: %d",contador1);634 printf("\nPESSOAS ATENDIDAS NO CAIXA 2: %d",contador2);635 printf("\nPESSOAS ATENDIDAS NO CAIXA DE JOGOS: %d",contadorj);636 printf("\nPESSOAS ATENDIDAS NO CAIXA PREFERENCIAL: %d",contadorp);637 638 media1 = (float) soma1/contador1;639 media2 = (float) soma2/contador2;640 mediaj = (float) somaj/contadorj;641 mediap = (float) somap/contadorp;642 643 printf("\n\nTEMPO MEDIO DE ATENDIMENTO DO CAIXA 1: %.1f",media1);644 printf("\nTEMPO MEDIO DE ATENDIMENTO DO CAIXA 2: %.1f",media2);645 printf("\nTEMPO MEDIO DE ATENDIMENTO DO CAIXA DE JOGOS: %.1f",mediaj);646 printf("\nTEMPO MEDIO DE ATENDIMENTO DO CAIXA PREFERENCIAL: %.1f",mediap);647 648 printf("\n\n\n");649 system("PAUSE");650 return 0;651 }

Anexo 5: Dados Gerados pelo Simulador

Dados Gerados - Caixa de Jogos

130 177 224 198 60 1 84 151 83 74

62 140 62 140 194 118 120 111 59 93

171 149 173 124 208 40 13 105 111 199

66 110 162 153 44 48 271 164 199 144

156 154 101 182 86 286 189 141 164 95

30 83 21 135 144 14 114 71 131 75

41 116 285 104 180 63 154 236 147 154

45 237 89 169 54 35 87 191 93 2

17 182 149 5 130 179 190 69 133 57

24 90 110 224 143 115 64 83 302 179

205 227 101 111 88 83 10 132 88 8

96 177 120 226 258 120 170 123 135 198

275 47 185 73 105 29 186 247 119 162

4 247 74 104 66 208 67 335 180 107

288 128 139 60 208 196 270 60 100 216

99 205 92 70 73 183 129 92 136 70

181 93 74 186 157 40 169 95 16 85

119 156 191 125 71 120 21 214 139 94

47

45 175 42 107 124 170 115 144 128 137

69 272 165 202 41 55 126 76 129 251

39 164 78 98 177 24 186 96 186 192

107 135 115 155 450 169 215 56 53 149

201 93 112 61 159 190 208 130 183 0

78 40 30 116 241 208 160 209 76 86

115 63 248 90 156 111 222 213 144 186

55 82 189 91 44 151 98 86 100 111

81 157 86 107 132 109 240 267 106 81

50 12 143 39 207 18 2 261 255 130

143 171 50 177 206 154 189 162 75 88

79 153 37 246 206 35 198 123 89 85

Dados gerados - Caixa 1205 268 331 296 109 29 141 232 141 129113 218 113 218 291 189 191 178 108 155260 230 262 196 309 82 46 170 179 297117 177 247 236 88 94 395 250 298 223240 236 164 274 145 414 283 220 249 15669 20 141 57 211 223 48 183 125 205

130 83 185 413 169 272 113 237 347 227237 89 349 149 257 102 75 147 286 15432 52 274 307 36 204 271 285 122 208

106 61 149 230 331 222 184 114 141 437270 24 305 177 165 179 148 140 43 207147 40 158 335 190 334 376 2 191 258195 211 295 267 92 278 127 170 68 279362 189 247 400 362 129 169 117 310 119481 271 173 34 201 7 216 7 109 309293 394 109 417 123 10 162 306 153 123127 275 203 164 212 143 273 155 129 280241 82 256 153 51 155 189 240 286 198124 191 57 157 216 214 89 265 85 173197 258 184 318 202 367 121 395 252 30184 103 199 222 202 288 81 250 133 161

268 61 280 131 280 230 173 211 6 184238 637 257 158 105 100 28 299 154 18013 111 243 319 310 204 276 145 134 8368 185 354 285 245 311 131 6 279 184

113 364 150 309 178 329 317 222 178 102140 284 152 240 232 161 145 164 138 138

48

241 144 173 88 176 352 388 172 204 9744 221 82 207 53 31 380 373 147 222

260 96 268 308 237 237 247 20 130 143

Dados Gerados - Caixa 2175 228 279 251 98 33 125 199 125 114102 187 101 187 247 163 165 155 98 136

8 221 195 223 170 262 77 47 148 155252 105 154 211 202 81 86 331 214 252191 205 202 143 233 128 347 241 189 213137 66 26 124 56 182 191 49 158 11177 115 77 160 347 147 231 102 203 293194 203 82 294 131 219 92 71 129 243135 35 52 233 197 39 176 230 242 109179 96 59 131 153 279 191 159 103 124366 230 29 258 283 144 155 130 124 44178 129 42 138 228 165 282 316 11 165220 168 182 250 335 84 236 113 148 65237 305 164 211 37 305 114 147 105 262107 402 231 150 350 173 15 135 15 99261 248 331 99 143 110 17 142 259 134110 113 234 175 134 183 126 332 136 114238 206 77 218 138 51 136 164 205 243171 111 165 56 269 185 184 82 226 79150 170 220 159 191 174 309 108 332 215255 78 93 172 116 174 244 76 213 118141 228 59 238 138 238 197 150 181 15160 204 529 219 269 95 91 32 254 135156 20 100 208 242 262 176 235 128 11977 65 160 298 262 209 263 117 15 237

160 102 306 132 205 155 278 268 191 15593 124 241 133 81 199 141 128 143 122

122 206 127 150 178 153 297 326 149 17688 46 190 76 261 53 35 320 313 129

191 221 88 228 260 202 2 241 211 26

Dados gerados- caixa preferencial266 302 376 335 114 20 152 260 152 13723 242 118 243 329 208 211 196 113 168

110 257 295 217 351 83 40 186 196 337305 195 277 264 89 96 452 281 337 249159 264 179 309 157 475 320 245 280 170235 9 151 53 235 248 42 201 133 228209 84 204 474 185 306 119 265 396 253

49

306 90 397 161 289 106 74 158 324 167179 47 309 257 28 226 305 322 129 231236 57 162 194 376 248 202 120 152 50245 13 346 381 181 196 160 151 36 230

240 32 172 301 210 380 430 211 290 215224 334 458 94 314 136 186 65 316 413224 277 26 414 137 185 124 351 126 553317 189 478 223 240 114 350 332 451 114103 131 177 347 166 131 136 311 226 166227 154 308 168 137 316 270 82 288 171353 169 209 269 323 219 132 211 53 361359 238 90 299 86 189 218 290 202 248156 419 129 453 283 341 84 107 221 140445 325 81 280 143 176 302 57 316 172435 257 189 235 203 267 738 289 362 109278 18 339 167 198 1 116 273 332 352227 312 157 143 84 66 203 403 351 274119 141 315 203 119 415 162 268 196 374292 248 195 106 151 321 165 89 259 176124 179 149 148 270 156 190 230 193 402269 188 226 99 38 247 82 349 48 2267 426 159 248 292 99 302 349 265 321

139 9 139 154 144 264 78 411 348 76

Dados gerados - chegadas42 135 217 50 84 85 44 198 1 15169 205 9 88 20 66 37 82 132 1961 30 37 87 314 114 182 102 34 35

145 57 14 38 97 65 54 10 85 1287 77 239 201 387 163 184 21 40 16233 49 53 66 8 37 64 33 22 190

138 73 0 115 41 394 165 47 2 147 174 37 63 113 205 162 101 20 103

57 61 99 23 7 225 118 391 58 9427 112 97 50 13 87 41 3 24 8938 171 138 98 33 34 107 152 80 23911 45 136 42 19 57 34 194 138 27

130 25 128 21 13 221 47 501 271 760 67 307 128 265 90 238 73 121 29125 2 71 393 130 89 311 28 11 13

336 255 6 42 5 99 74 24 53 2099 112 27 19 74 54 40 118 20 107

124 42 18 43 9 113 181 56 121 27534 92 19 167 108 48 152 104 78 6979 73 57 22 30 21 76 149 68 10

50

294 9 169 7 82 50 106 46 17 37454 384 21 84 207 6 191 136 75 10623 16 124 106 148 372 3 58 108 877 108 337 1 88 110 3 104 69 77

101 115 160 482 29 25 129 7 27 99125 53 289 197 139 65 86 116 157 280113 92 260 74 143 12 67 69 10 2476 50 29 13 25 173 68 36 3 10958 98 119 35 14 13 2 376 72 2 102 40 365 109 81 65 10 171

Referências Bibliográficas

CHWIF, L.; MEDINA, A. C., Modelagem e Simulação de Eventos Discretos – Teoria e

Aplicações. 3 ed. São Paulo: Bravarte, 2010.

http://www.devmedia.com.br/a-importancia-da-validacao-e-da-verificacao/24559 <Acesso

em 04 de junho de 2015>

Notas de Aula

51