Universidade Federal de Itajubá
22/07/2011
APRESENTAÇÃO
MODELO BANCO
MODELO BANCO
- O QUE VAMOS EXPLORAR?
Distribuição do usuário
Ciclos de chegada
Comando FREECAP
Regras de roteamento
Comando CALHOUR
CONCEPÇÃO
MODELO BANCO
3 caixas e mais
1 caixa especial para
idosos e gestantes
Fila para os caixas
Saída do cliente
Entrada do cliente
Assentos de espera pelo
atendimento
2 atendentes gerais
Professor Fabiano Leal
1
Universidade Federal de Itajubá
22/07/2011
CONCEPÇÃO - Descrição
MODELO BANCO
Descrição:
O cliente entra pela porta da agência, e pode ter dois interesses: ou procurar os caixas
ou o atendimento geral. Se optar pelo atendimento geral, o cliente se dirige à área de
espera com 6 assentos disponíveis. Caso os assentos estejam ocupados, o cliente
desiste e vai embora. Caso contrário, o cliente espera nos assentos até que um dos 2
atendentes fique desocupado. Após o atendimento, o cliente vai embora pela saída.
Se o cliente optar pelos caixas, ele se dirige à fila dos caixas (fila única). Se este cliente
na fila for idoso ou gestante, ele espera pelo caixa especial. Se o caixa especial estiver
ocupado, ele vai ao caixa 3. Se ambos estiverem ocupados, ele aguarda, pois os demais
caixas não podem atendê-lo. Após o atendimento, o cliente deixa a agência pela saída.
Se o cliente na fila não for idoso ou gestante, ele espera pelos caixas 1, 2 ou 3. Se estes
caixas estiverem em horário de almoço, o caixa especial passa a atender todos que
estão na fila. Após, o cliente deixa a agência pela saída.
Os caixas 1,2 e 3 fazem uma parada para o almoço, das 12:00 às 12:30. O caixa especial
não para. O atendimento inicia às 11:00 e a porta de entrada se fecha às 15:00.
Para facilitar, vamos chamar o cliente de atendimento geral de tipo 2; o cliente de caixa
idoso ou gestante de tipo 3 e o cliente de caixa não idoso e não gestante de tipo 1.
MODELO BANCO
CONCEPÇÃO – IDEF-SIM
Professor Fabiano Leal
2
Universidade Federal de Itajubá
22/07/2011
CONCEPÇÃO - Descrição
MODELO BANCO
Chegada do cliente
A agência inicia o atendimento às 11 horas. A porta é fechada às 15 horas.
Após este horário, somente os clientes que permanecem dentro da agência
são atendidos.
Independente do dia da semana, os clientes chegam na agência nesta
proporção: 35% do total de clientes diários chegam entre 11 e 12 horas; 15%
entre 12 e 13 horas; 20% entre 13 e 14 horas; 30% entre 14 e 15 horas. O total
de clientes diários, observado durante alguns dias, é em média 230, com um
desvio padrão de 30 (distribuição normal).
Os clientes tipo 1 (procuram os caixas 1, 2 ou 3) correspondem a 50% do
total; os tipo 2 (procuram o atendimento geral) correspondem a 30% e os tipo
3 (procuram o caixa especial) a 20%.
CONCEPÇÃO – Modelagem de dados
Tempos de atendimento
MODELO BANCO
Tempo gasto no caixa especial: distribuição uniforme, entre 6 e 10 minutos.
ATENÇÃO À FORMA DE INSERIR OS PARÂMETROS DA DISTR. UNIFORME.
Professor Fabiano Leal
Tempo gasto nos caixas 1, 2 e 3: distribuição normal, com média 3 minutos e
desvio de 1 minuto.
Tempo gasto no atendimento geral: distribuição triangular, com mínimo de 15
minutos, moda de 20 minutos e máximo de 25 minutos.
3
Universidade Federal de Itajubá
22/07/2011
MODELO BANCO
IMPLEMENTAÇÃO - Locais
Observe que o local “Espera_atendimento”, que se
refere aos assentos de espera pelo atendimento geral,
tem capacidade 1 e 6 unidades. Não foi programado
cada assento individualmente pois não há necessidade
de um acompanhamento individual por assento,
diferentemente dos caixas e dos atendimentos gerais.
IMPLEMENTAÇÃO - Entidades
MODELO BANCO
Apenas 1 entidade basta. Escolha 3 gráficos diferentes para esta entidade.
Usaremos o comando GRAPHIC ao longo da programação.
Professor Fabiano Leal
Devemos criar uma distribuição para o atributo referente ao tipo de cliente.
Para isto, entre em DISTRIBUIÇÕES DE USUÁRIO.
Construir
Mais
Elementos
4
Universidade Federal de Itajubá
22/07/2011
IMPLEMENTAÇÃO – Ciclo de Chegadas
Agora, devemos associar esta distribuição que criamos à chegada de clientes.
Para isto, vamos definir as CHEGADAS.
MODELO BANCO
Para programar taxas de chegada que dependem do horário, necessitamos da
função CICLO DE CHEGADAS.
Construir
Mais
Elementos
1- Defina o nome do seu ciclo
2- Defina se o ciclo será de porcentagens ou de
quantidades
IMPLEMENTAÇÃO – Ciclo de Chegadas
Mas como funciona um ciclo de chegadas?
MODELO BANCO
Lembre-se que nosso banco atende das 11:00 às 15:00 (4 horas portanto)
O Promodel interpreta este ciclo da seguinte forma:
1 - Intervalo entre 11:00 e 12:00 (chegam 35% do total de clientes)
2- Intervalo entre 12:00 e 13:00 (chegam 15% do total de clientes)
3- Intervalo entre 13:00 e 14:00 (...)
4- Intervalo entre 14:00 e 15:00 (...)
Neste momento o Promodel ainda não sabe o número total de chegadas
de cliente.
Professor Fabiano Leal
5
Universidade Federal de Itajubá
22/07/2011
IMPLEMENTAÇÃO – Ciclo de Chegadas
Você pode optar por um ciclo de quantidades, ao invés de porcentagens.
Neste caso você informa as quantidades de clientes em cada horário, e não o
percentual.
MODELO BANCO
Finalizado o ciclo, você deve atribuí-lo à chegada. Vá então em CHEGADAS.
Aqui você seleciona o nome do
ciclo...
...e aqui a quantidade total de chegadas.
IMPLEMENTAÇÃO – Ciclo de Chegadas
MODELO BANCO
Se você estiver trabalhando com ciclo de quantidades, não faz sentido
colocar o total de chegadas. Neste caso coloque neste campo o número 1. Ele
funciona com um fator multiplicativo das quantidades de chegada em cada
horário. Se mudar para 2, todas as quantidades de cada horário dobrarão.
O ciclo passa a valer logo
no início.
O ciclo deve ser repetido
uma vez...
...a cada dia (fará
diferença se você
simular o modelo
durante a semana).
Professor Fabiano Leal
6
Universidade Federal de Itajubá
22/07/2011
MODELO BANCO
IMPLEMENTAÇÃO – Ciclo de Chegadas
Em LÓGICA, você deverá construir uma expressão. Antes disto, vá em
ATRIBUTOS e crie o atributo “Tipo_cliente”.
Agora sim, em CHEGADAS, clique na coluna LÓGICA e crie a expressão:
Atributo
“Tipo_cliente”
=
Distribuição
do
usuário
“Distribuicao_de_tipo_cliente”
Desta forma, assim que o cliente entra pela porta, é a ele atribuído um
valor, que pode ser 1, 2 ou 3, de acordo com a distribuição que criamos.
IMPLEMENTAÇÃO – Variáveis Globais
MODELO BANCO
Crie 3 variáveis, como mostra a figura. Duas delas devem ser exibidas
durante a simulação.
Professor Fabiano Leal
Vamos agora definir o PROCESSO.
7
Universidade Federal de Itajubá
22/07/2011
MODELO BANCO
IMPLEMENTAÇÃO – Processo
IMPLEMENTAÇÃO – Processo (linha 1)
MODELO BANCO
Entra a entidade:
Vai para o local:
Operação:
CLIENTE
PORTA
Vamos descobrir quantos clientes entram
Se for cliente tipo 2, vamos associar o
gráfico 2 definido em entidades. Se os
assentos de espera estiverem lotados, o
cliente vai para saída, e desiste. Se tiver
vaga nos assentos, o cliente vai para a
área de assentos.
Comando FREECAP (location) retorna o
valor da capacidade livre do local.
FREECAP (location) = 0 significa que não
há espaços livres no local.
Professor Fabiano Leal
INC Total_de_clientes_entraram
IF Tipo_cliente = 2 THEN
{
GRAPHIC 2
IF FREECAP(Espera_atendimento) = 0 THEN
{
ROUTE 2
}
ELSE
{
ROUTE 1
}
}
8
Universidade Federal de Itajubá
22/07/2011
IMPLEMENTAÇÃO – Processo (linha 1)
Route 1
MODELO BANCO
Route 2
Mas se o cliente tipo 2 for mandado para a rota 1, ele poderá ir à fila dos
caixas, e isto está errado! Para resolver isto, usaremos regras de roteamento.
Sai a entidade:
Vai para:
CLIENTE
...
MODELO BANCO
IMPLEMENTAÇÃO – Processo (linha 1)
Na rota do bloco 1 (ROUTE 1), o cliente pode ir para a fila do caixa, se o
atributo “Tipo_cliente” for diferente de 2 (1 ou 3), ou ir para a espera do
atendimento, se for cliente tipo 2.
Na rota do bloco 2 (ROUTE 2), o cliente vai para a saída. É necessário
incrementar a variável “Desistentes”, para sabermos quantos desistiram da
espera.
Professor Fabiano Leal
9
Universidade Federal de Itajubá
22/07/2011
IMPLEMENTAÇÃO – Processo (linha 1)
MODELO BANCO
Entra a entidade:
Vai para o local:
Operação:
CLIENTE
PORTA
(continuando)
IF Tipo_cliente = 1 THEN
{
GRAPHIC 1
ROUTE 1
}
IF Tipo_cliente = 3 THEN
{
GRAPHIC 3
ROUTE 1
}
Se for cliente tipo 1, vamos mudar seu
gráfico e mandar para o bloco 1. Se for
cliente tipo 3, vamos mudar seu gráfico e
também mandar para o bloco 1. Perceba
que o bloco 2 ficou específico para quem
desiste do atendimento (somente o
cliente tipo 2 pode desistir).
IMPLEMENTAÇÃO – Processo (linha 2)
MODELO BANCO
Entra a entidade:
Vai para o local:
Operação:
CLIENTE
SAIDA
Vamos contar quantos clientes saem
do banco (os que foram atendidos e
os que desistiram).
A simulação não acaba pelo horário,
mas sim por uma condição. Se for
mais que 3 horas da tarde e não tiver
mais ninguém sendo atendido,
devemos parar a simulação.
INC Clientes_que_sairam
IF Total_de_clientes_entraram =
Clientes_que_sairam AND CALHOUR() >= 15 THEN
{
STOP "Nenhum cliente a ser atendido"
}
CALHOUR() retorna a hora atual.
STOP para a simulação e exibe uma
mensagem.
Professor Fabiano Leal
10
Universidade Federal de Itajubá
22/07/2011
IMPLEMENTAÇÃO – Processo (linha 2)
MODELO BANCO
Sai a entidade:
Vai para:
CLIENTE
EXIT
Temos agora este trecho para programar:
IMPLEMENTAÇÃO – Processo (linha 3)
MODELO BANCO
Entra a entidade:
Vai para o local:
Operação:
Professor Fabiano Leal
“Empurra” o cliente para sua
posição na fila e só aplica os
comandos após este momento
Antes, crie o atributo
“Tempo_de_fila_caixa”. Este
atributo vai armazenar o tempo
cronometrado. O disparo do
cronômetro se dá com este
comando ao lado.
CLIENTE
FILA_CAIXA
MOVE
Tempo_de_fila_caixa = CLOCK( MIN)
11
Universidade Federal de Itajubá
22/07/2011
IMPLEMENTAÇÃO – Processo (linha 3)
MODELO BANCO
Sai a entidade:
Vai para:
CLIENTE
O cliente, ao sair da fila, vai ao caixa especial se for do tipo 3. Se o caixa
especial estiver ocupado, a alternativa (regra ALT) é o caixa 3.
O cliente do tipo 1 vai ao caixa 1. Se estiver ocupado vai ao caixa 2, e se este
estiver ocupado vai ao caixa 3. Se os três caixas estiverem fora de turno, ou
em paradas programadas, ou quebrados, o cliente tipo 1 é direcionado ao
caixa especial (regra BACKUP).
IMPLEMENTAÇÃO – Processo (linha 4)
MODELO BANCO
Entra a entidade:
Vai para o local:
Operação:
Neste ponto o cronômetro é
parado, e o tempo cronometrado
é atribuído ao cliente específico.
Se o caixa especial estiver
atendendo cliente tipo 1, o
tempo de atendimento é uma
normal, média 3 e desvio de 1
minuto.
Se o cliente for do tipo 3 (o tipo
2 nunca vai vir aqui), o tempo de
atendimento segue uma
distribuição uniforme entre 6 e
10 minutos.
Professor Fabiano Leal
CLIENTE
CAIXA_ESPECIAL
LOG "Tempo de fila nos caixas",
Tempo_de_fila_caixa
IF Tipo_cliente = 1 THEN
{
WAIT N(3, 1) MIN
}
ELSE
{
WAIT U(8, 2) MIN
}
12
Universidade Federal de Itajubá
22/07/2011
IMPLEMENTAÇÃO – Processo (linha 4)
Sai a entidade:
Vai para:
CLIENTE
SAÍDA
MODELO BANCO
Acabamos de programar isto:
IMPLEMENTAÇÃO – Processo (linha 5)
MODELO BANCO
Entra a entidade:
Vai para o local:
Operação:
Neste ponto o cronômetro é
parado, e o tempo cronometrado
é atribuído ao cliente específico.
LOG "Tempo de fila nos caixas",
Tempo_de_fila_caixa
No caixa 1 o atendimento se dá
em média de 3 minutos, com
desvio de 1 minuto.
WAIT N(3, 1) MIN
Sai a entidade:
Vai para:
Professor Fabiano Leal
CLIENTE
CAIXA_1
CLIENTE
SAÍDA
13
Universidade Federal de Itajubá
22/07/2011
IMPLEMENTAÇÃO – Processo (linha 6)
MODELO BANCO
Entra a entidade:
Vai para o local:
Operação:
CLIENTE
CAIXA_2
Neste ponto o cronômetro é
parado, e o tempo cronometrado
é atribuído ao cliente específico.
LOG "Tempo de fila nos caixas",
Tempo_de_fila_caixa
No caixa 1 o atendimento se dá
em média de 3 minutos, com
desvio de 1 minuto.
WAIT N(3, 1) MIN
Sai a entidade:
Vai para:
CLIENTE
SAÍDA
IMPLEMENTAÇÃO – Processo (linha 7)
MODELO BANCO
Entra a entidade:
Vai para o local:
Operação:
Neste ponto o cronômetro é
parado, e o tempo cronometrado
é atribuído ao cliente específico.
Se o caixa 3 estiver atendendo
cliente tipo 1, o tempo de
atendimento é uma normal,
média 3 e desvio de 1 minuto.
Se o cliente for do tipo 3 (o tipo
2 nunca vai vir aqui), o tempo de
atendimento segue uma
distribuição uniforme entre 6 e
10 minutos.
Professor Fabiano Leal
CLIENTE
CAIXA_3
LOG "Tempo de fila nos caixas",
Tempo_de_fila_caixa
IF Tipo_cliente = 3 THEN
{
WAIT U(8, 2) MIN
}
ELSE
{
WAIT N(3, 1) MIN
}
14
Universidade Federal de Itajubá
22/07/2011
IMPLEMENTAÇÃO – Processo (linha 7)
CLIENTE
SAÍDA
MODELO BANCO
Sai a entidade:
Vai para:
IMPLEMENTAÇÃO – Processo (linha 8)
MODELO BANCO
Entra a entidade:
Vai para o local:
Operação:
Professor Fabiano Leal
CLIENTE
ESPERA_ATENDIMENTO
Antes, crie o atributo
Tempo_espera_atendimento = CLOCK( MIN)
“Tempo_espera_atendimento”. Este
atributo vai armazenar o tempo
cronometrado. O disparo do
cronômetro se dá com este
comando ao lado.
15
Universidade Federal de Itajubá
22/07/2011
IMPLEMENTAÇÃO – Processo (linha 8)
CLIENTE
MODELO BANCO
Sai a entidade:
Vai para:
IMPLEMENTAÇÃO – Processo (linha 9)
MODELO BANCO
Entra a entidade:
Vai para o local:
Operação:
Neste ponto o cronômetro é
parado, e o tempo cronometrado
é atribuído ao cliente específico.
LOG "Tempo de espera no atendimento",
Tempo_espera_atendimento
Os tempos de atendimento do
caixa de atendimento 1 foram na
maioria dos casos 20 minutos
(moda). O menor tempo indicado
foi de 15 minutos, e o maior
tempo de 25 minutos por cliente.
WAIT T(15, 20, 25) MIN
Sai a entidade:
Vai para:
Professor Fabiano Leal
CLIENTE
CAIXA_ATENDIMENTO_1
CLIENTE
SAÍDA
16
Universidade Federal de Itajubá
22/07/2011
IMPLEMENTAÇÃO – Processo (linha 10)
MODELO BANCO
Entra a entidade:
Vai para o local:
Operação:
CLIENTE
CAIXA_ATENDIMENTO_2
Neste ponto o cronômetro é
parado, e o tempo cronometrado
é atribuído ao cliente específico.
LOG "Tempo de espera no atendimento",
Tempo_espera_atendimento
Os tempos de atendimento do
caixa de atendimento 2 foram na
maioria dos casos 20 minutos
(moda). O menor tempo indicado
foi de 15 minutos, e o maior
tempo de 25 minutos por cliente.
WAIT T(15, 20, 25) MIN
Sai a entidade:
Vai para:
CLIENTE
SAÍDA
IMPLEMENTAÇÃO – Definição dos turnos
MODELO BANCO
Inicialmente, vamos definir o turno dos caixas 1, 2 e 3, que param para o
almoço das 12:00 às 12:30.
Observe que o turno foi definido até às 18 horas. Mas por que não definir o
turno até às 15 horas, quando a porta da agência se fecha? Porque se isto
for feito, os clientes que ainda estiverem na fila não serão atendidos mais.
Associe este arquivo de turno aos caixas 1, 2 e 3.
Professor Fabiano Leal
17
Universidade Federal de Itajubá
22/07/2011
IMPLEMENTAÇÃO – Definição dos turnos
MODELO BANCO
Crie e associe um arquivo de turno para o local “Porta”. Quando ela sair do
seu turno, a entrada de cliente é barrada.
ANÁLISE – Interpretando os resultados
MODELO BANCO
Vamos analisar os resultados pelo ProModel. Simule 5 réplicas.
Grandes tempos de espera (fila) e de bloqueio (assentos)
Professor Fabiano Leal
18
Universidade Federal de Itajubá
22/07/2011
MODELO BANCO
ANÁLISE – Interpretando os resultados
Os locais “Espera_atendimento.n” não entram em operação pois não foi
associado tempo de operação a eles. Ou eles estão vazios (sem entidade) ou
bloqueados (tem entidade mas não conseguem enviá-la a frente).
MODELO BANCO
ANÁLISE – Interpretando os resultados
Tempo de espera na fila dos caixas (comando CLOCK LOG)
Professor Fabiano Leal
19
Universidade Federal de Itajubá
22/07/2011
MODELO BANCO
ANÁLISE – Interpretando os resultados
Tempo de espera no atendimento (comando CLOCK LOG)
MODELO BANCO
ANÁLISE – Interpretando os resultados
Professor Fabiano Leal
20
Universidade Federal de Itajubá
22/07/2011
MODELO BANCO
ANÁLISE – Interpretando os resultados
MODELO BANCO
ANÁLISE – Interpretando os resultados
Total de desistentes
Professor Fabiano Leal
21
Universidade Federal de Itajubá
22/07/2011
MODELO BANCO
ANÁLISE – Interpretando os resultados
ANÁLISE – Experimento
Experimente uma melhoria nesta agência bancária.
MODELO BANCO
Sugestão: criar uma fila específica para o atendimento no caixa especial. Os
tempos de espera diminuem com esta mudança?
Professor Fabiano Leal
22
Download

MODELO BANCO