© UNESP 6 Agosto 2008
Autor: Anibal Tavares de Azevedo
Limeira, 24 de Outubro de 2013
MODELOS E SIMULAÇÃO DE SISTEMAS
AULA LABORATÓRIO 8
2
TEORIA DE FILAS
Projeto 3: Em um cabeleireiro 3 tipos de clientes
podem ser atendidos com diferentes tempos de
processamento de acordo com uma função de
distribuição de probabilidade triangular t(7,8,9).
Tipo de cliente
Tempo do corte (minutos)
3
© UNESP 6 Agosto 2008
TEORIA DE FILAS
b
a
Tempo processamento2/(b-a)
9
7
Tempo processamento2/(9-7)
x
8
Função de distribuição triangular
4
Lógica de Operação
Chegada de clientes (t(7,8,9)) (c-20%,m-50%,h-30%)
Contar +1(c/m/h)
Corte de cabelo (tempo de proc. depende do tipo)
© UNESP 6 Agosto 2008 Passo 0: Definir informações iniciais do modelo.
Unidade para Chegada/Processamento
6
PROMODEL
Passo 1: Construir os locais
7
© UNESP 6 Agosto 2008
PROMODEL
Passo 1: Construir os locais
8
PROMODEL
Passo 1: Construir os locais
Local
Capacidade
Chegada_cliente INF
© UNESP 6 Agosto 2008 Passo 1: Construir os locais
Local
Capacidade
Chegada_cliente INF
Corte 1
10
PROMODEL
11
© UNESP 6 Agosto 2008
PROMODEL
1
2
3
12
PROMODEL
Passo 1: Construir os locais
Local
Capacidade
Chegada_Cliente INF
© UNESP 6 Agosto 2008 Passo 1: Construir os locais - Esteira_Pecas
1
2
3
14
PROMODEL
Passo 2: Construir as entidades
15
© UNESP 6 Agosto 2008
PROMODEL
Passo 2: Construir as entidades
1
2
16
PROMODEL
© UNESP 6 Agosto 2008 Passo 3: Chegadas
Chegadas
18
PROMODEL
19
© UNESP 6 Agosto 2008
Lógica de Operação
Chegada de clientes (t(7,8,9)) (c-20%,m-50%,h-30%)
Contar +1(c/m/h)
Corte de cabelo (tempo de proc. depende do tipo)
Tipo Cliente == 1?
wait u(10,2) h = h - 1;
MODELO NO PROMODEL
Sim
Não
Tipo Cliente == 2?
wait u(12,3) m = m - 1;
Sim
Não
Tipo Cliente == 3?
wait u(8,2) c = c - 1;
Sim
20
PROMODEL
Passo 3: Chegadas
1
© UNESP 6 Agosto 2008 Passo 3: Chegadas
1
22
PROMODEL
Passo 3: Chegadas
23
© UNESP 6 Agosto 2008
PROMODEL
Passo 3: Chegadas
1
2
3
24
1
3
PROMODEL
© UNESP 6 Agosto 2008 Passo 3: Chegadas
1
2
26
PROMODEL
27
© UNESP 6 Agosto 2008
PROMODEL
Passo 4: Definição de variáveis
Variáveis
Digitar nomes
28
PROMODEL
Passo 5: Processamento
© UNESP 6 Agosto 2008 Passo 5: Processamento
1
3
2
3
30
PROMODEL
31
© UNESP 6 Agosto 2008
Lógica de Operação
Chegada de clientes (t(7,8,9)) (c-20%,m-50%,h-30%)
Contar +1(c/m/h)
Corte de cabelo (tempo de proc. depende do tipo)
Tipo Cliente == 1?
wait u(10,2) h = h - 1;
MODELO NO PROMODEL
Sim
Não
Tipo Cliente == 2?
wait u(12,3) m = m - 1;
Sim
Não
Tipo Cliente == 3?
wait u(8,2) c = c - 1;
Sim
32
VARIÁVEIS ALEATÓRIAS
1, 2, 3
4, 5, 6, 7, 8
30% homem
© UNESP 6 Agosto 2008 [0, 3)
[3,8)
[8,10]
30% homem
50% mulher
20% criança
30%
50%
20%
0
0,3
0,8
1,0
34
O que é um Algoritmo?
É uma sequência finita de passos que resolve um dado problema ! Um bom exemplo de algoritmo é uma receita de bolo, pois a ordem
dos passos pode mudar o resultado final!
35
© UNESP 6 Agosto 2008
V Início Ler A,B; Se A>B Escreva(B) Escreva(A) Final F
USANDO O COMANDO SE/IF
Sejam duas variáveis
A e B com valores
diferentes. Como
imprimir o maior
valor?
Problema
Variaveis A, B; Inicio
1. Ler(A,B); 2. Se (A > B)
entao imprimir A; Senao imprimir B; Fim
Algoritmo
Fluxograma
36
PROMODEL
Passo 5: Processamento
© UNESP 6 Agosto 2008 Passo 5: Processamento
Real Rand_Select = rand(1) If Rand_Select < .3 then
Begin
customer_type = 1 Inc Man
End
Else if Rand_Select < .8 then Begin
customer_type = 2 Inc Woman
End Else
Begin
customer_type = 3 Inc Child
End
Graphic customer_type
Gera variável aleatória real em [0, 1].
Verifica se Rand_Select está em [.3,.8). Usar Else if e não só If !
Variável do gráfico do cliente atual !
Incrementa em + 1 a variável Child
38
Lógica de Operação
Chegada de clientes (t(7,8,9)) (c-20%,m-50%,h-30%)
Contar +1(c/m/h)
Corte de cabelo (tempo de proc. depende do tipo)
39
© UNESP 6 Agosto 2008
PROMODEL
Passo 5: Processamento
1
2
40
PROMODEL
Passo 5: Processamento
If customer_type = 1 then Begin
wait u(10,2) min dec Man
End
If customer_type = 2 then
© UNESP 6 Agosto 2008
Projeto 3: Em um cabeleireiro 3 tipos de clientes
podem ser atendidos com diferentes tempos de
processamento de acordo com uma função de
distribuição de probabilidade triangular t(7,8,9).
Tipo de cliente
Tempo do corte (minutos)
Criança Mulher Homem Média 8 12 10 Metade 2 3 2
A probabilidade de chegada de uma criança é de
20%, uma mulher de 50% e um homem de 30%. O
tempo de simulação é de 480 minutos. Quantos
clientes de cada tipo são atendidos? E estão no salão?
42
PROMODEL
Passo 6: Opções de Simulação
43
© UNESP 6 Agosto 2008
PROMODEL
Passo 7: Execução da Simulação
Executar
44
PROMODEL
1
© UNESP 6 Agosto 2008
46
TEORIA DE FILAS
Projeto 4: Resolver o projeto anterior de modo a
considerar que um novo cabelereiro pode ser
contratado e é tal que seu tempo de processamento
para cada cliente é igual ao do primeiro cabelereiro.
Tipo de cliente
Tempo do corte (minutos)
47
© UNESP 6 Agosto 2008
TEORIA DE FILAS
Além disso, deve ser considerado que o custo de
espera na fila (por minuto) é de R$ 0,01 e que
o rendimento obtido com o corte de cabelo para
cada tipo de cliente é como dado na tabela abaixo:
Tipo de
cliente Ganho (R$)
Criança Mulher Homem 8 12 10
Deseja-se determinar os ganhos por cliente,
considerando os custos de espera e de atendimento
como dados anteriormente.
48
Lógica de Operação
Chegada de clientes (t(7,8,9)) (c-20%,m-50%,h-30%)
Contar +1(c/m/h)
2 Cortes de cabelo (tempo de proc. depende do tipo)
© UNESP 6 Agosto 2008 2
São consideradas 2 unidades idênticas Para filas:
Acumular unidades
50
PROMODEL
51
© UNESP 6 Agosto 2008
PROMODEL
Inserindo custos em locais e custos de espera
Custo proc.
Custo espera
52
PROMODEL
Criar Variáveis de tempo e custo
© UNESP 6 Agosto 2008 Custo Processamento - Inserindo custos em locais
54
PROMODEL
55
© UNESP 6 Agosto 2008
PROMODEL
Passo 5: Processamento
1
2
56
PROMODEL
Passo 5: Processamento
Time_in = Clock()
Real Rand_Select = rand(1) If Rand_Select < .3 then
Begin
customer_type = 1 Inc Man
End
© UNESP 6 Agosto 2008 Passo 5: Processamento
1
2
58
PROMODEL
Passo 5: Processamento
Log "tespera=“,Time_in If customer_type = 1 then
Begin
wait u(10,2) min
rm = rm + 16 - tespera*0.01 - getcost() dec Man
End
Fornece o tempo decorrido e armazena na
59
© UNESP 6 Agosto 2008
PROMODEL
Passo 5: Processamento
Log "tespera=",Time_in If customer_type = 1 then
Begin
wait u(10,2) min
rm = rm + 16 - tespera*0.01 - getcost() dec Man
End
If customer_type = 2 then Begin
wait u(12,3) min
rw = rw + 24 - tespera*0.01 - getcost() dec Woman
End
If customer_type = 3 then Begin
wait u(8,2) min
rc = rc + 12 - tespera*0.01 - getcost() dec Child
End
Fornece o custo de realizar a tarefa no
local (R$ 0.25)
Ganho com o corte de cabelo (R$ 16)
Tempo gasto até ocorrer o atendimento
Custo espera na fila por minuto (R$ 0.01)
60
PROMODEL
1
© UNESP 6 Agosto 2008
Mini-Projeto 3(Vale 2 testes):
Refazer o problema
anterior considerando as seguintes modificações:
(1)Considerar que o intervalo entre os tempos de
chegada seguem um função de distribuição
triangular t(7,9,11).
(2) Considerar os tempos de atendimento na tabela 1
(vide próxima transparência).
(3) Testar o sistema para 2, 3, 4 e 5 atendentes e
verificar com se comporta a redução do tempo do
cliente no sistema.
(4) Estruturar os resultados obtidos em (1)-(3) em
Um relatório conforme modelo colocado na página.
Data de entrega:
13/06/2013.
Local:Colocar o arquivo pdf do relatório no TelEduc.
62
Tipo de cliente
Tempo do corte (minutos)
Média Metade
63
© UNESP 6 Agosto 2008