Aplicando o conhecimento de forma simples e auto-explicativa.

terça-feira, 14 de setembro de 2010

Filas, Supermecados, Lojas de Conveniências e a Teoria das Filas

Apesar da demora em fim terminei este post. A principal motivação para o mesmo foi uma de minhas idas à um supermercado da Zona Sul do Rio de Janeiro, cidade a qual resido. O supermercado em questão sempre operou com filas em paralelo, indo contra a Teoria das filas (para quem preferir Processos estocásticos). Um dia desses ao ir comprar meu pãozinho tomei um susto. O sistema de fila havia sido reorganizado para um sistema FIFO - First In, First Out (FIFS - First In, First Served). Ou seja, uma única fila, onde os primeiros da filas são atendidos pelos caixas disponíveis, assim como é feito em lojas de departamentos e bancos. O que teoricamente é melhor do ponto de vista “ótimo”, pois é possível atender mais pessoas assim. Então resolvi criar uma simulação simples para comparar o atendimento em uma sistema de fila única e um com filas em paralelo.
Vamos lá. Primeiro algumas hipóteses: Vamos começar simplificando o ambiente, ao invés de um supermercado vamos analisar um mercadinho com dois guichês. Imagine também que, se existir uma situação de fila, existe espaço ilimitado, pois a fila pode ficar no meio da rua (e todos os clientes são muito honestos. Ninguém roubaria o dono do mercadinho indo embora com o produto sem pagar, a final de contas estamos no Rio de Janeiro onde só existe gente boa). Para os tempos de chegadas, entre os clientes, vou utilizar uma distribuição exponencial, e assumir que a taxa de chegada é 1 / min (1 pessoa a cada 1 minutos). A taxa de chegada será mantida constante ao longo de um “turno de trabalho”, vou assumir 8 horas trabalho em um turno. Não seria muito difícil considerar uma situação com taxas de chegadas variáveis ao longo do dia, mas não obrigado, já tive muito trabalho com isso.
·         Taxa entre chegadas λ = 1 / min
·         Turno de trabalho 8 horas corridas

 O primeiro teste foi gerar um cenário onde um único caixa atende 1 cliente a cada 2 minutos,   μ = 1 / 2 min. Dentro deste período verifiquei todos os clientes que foram atendidos, então repeti a simulação 1000 vezes e obtive o histograma a esquerda com a distribuição da quantidade de clientes atendidos, e em média foram atendidos 238 clientes, representado pela linha densa cinza escura no histograma.

O cenário apresentado será modificado de duas formas. A primeira aumentando o número de atendentes, a partir de um modelo FIFO (FIFS), e o segundo é usando um modelo com duas filas em paralelo e com dois caixas. 

A simulação com  uma única fila e dois caixas pode ser representada da mesma forma que o caso anterior, também com um turno de 8 horas, apenas alterando a taxa de atendimento do  caixa  de μ = 1 / 2 min para   μ = 2 / 2 min (que igual a 1 atendimento/min), ou seja, o outro caixa recebeu o mesmo treinamento e possui as mesmas características, inclusive a mesma capacidade de atendimento μ = 1 / 2 min.O efeito no atendimento geral  é que a velocidade dobre, logo espera-se dobrar o número de clientes atendidos. O número esperado de clientes atendidos foi de 456 e a simulação está representada na figura ao lado a partir do histograma verde.Também foram realizadas 1000 iterações.

No terceiro cenário,  a fila foi dividida em duas. A simulação também tem como base o primeiro caso. Cada fila é analisada separadamete,  dividindo-se a taxa de pessoas que vão a cada caixa, λ = 1 / 2 min., também em um turno de 8 horas, com uma taxa de atendimento de μ = 1 / 2 min (O caixa tem sua capacidade individual de atendimento mantida), e ao final da simulação basta dobrar os resultados obtidos, criando o efeito das duas filas separadas. Este cenário é visto no histograma vermelho ao lado. Mais uma vez com 1000 iterações. Como pôde ser visto, a quantidade média de pessoas atendidas foi de 444, menor  do que na simulação com fila única.



O porquê disto é simples de ser explicado. Quando se tem duas filas cria-se a possibilidade de ociosidade em um dos caixas, enquanto o outro trabalha. Isto não ocorre em um sistema de fila única, pois em tese os caixas nunca param de trabalhar. Esta é a explicação do porquê de bancos e lojas de departamentos operarem em sistema de fila única. 

Porém as decisões nem sempre levam em consideração simplesmente a "matemática", e sim a percepção da realidade que o seu cliente tem, ou o que é melhor para o seu funcionário.  A prova disto é que o sistema de fila única não foi bem recebido pelos clientes do supermercado que frequento e as filas em paralelo foram novamente restauradas e agora tenho que esperar mais para comprar meu pãozinho.