Professional Documents
Culture Documents
COM O SIMUL8
Maio, 2003
Importa desde j realar um aviso aos leitores: no se pretende com este texto
apresentar os fundamentos da simulao, nem se pretende substituir outros textos
existentes. Alis, ao elaborar o texto partiu-se do princpio de que o leitor tem
conhecimentos adequados sobre simulao e estatstica, sem os quais existir o
perigo da construo modelos errneos e anlises incorrectas de resultados.
Recomenda-se uma primeira leitura do captulo sobre simulao do livro
Investigao Operacional [1] e, para aprofundar a matria, a consulta de outra
bibliografia sobre simulao [4,5,6,7,8].
O texto foi organizado em duas partes distintas. Uma primeira em que se apresenta
o ambiente de trabalho do SIMUL8, os elementos disponveis para a modelao dos
sistemas, a execuo de simulaes e a obteno de resultados. Numa segunda
parte so descritos, com algum pormenor, os procedimentos de resoluo de
diversas questes e pequenos problemas caractersticos utilizando o SIMUL8.
Pretende-se que este texto seja aberto, essencialmente na sua segunda parte com a
incluso de novas questes, pelo que se aceitam todas as contribuies para a sua
melhoria. Nesse sentido, agradeo que qualquer contribuio ou correco seja
enviada para nmoreira@popsrv.ist.utl.pt.
2
NDICE
PREMBULO............................................................................................................................ 2
NDICE....................................................................................................................................... 3
PARTE 1 .................................................................................................................................... 5
1. INTRODUO ..................................................................................................................... 5
2. INCIO DO PROGRAMA ........................................................................................................ 5
3. CONSTRUO DE UM MODELO SIMPLES.............................................................................. 9
3.1. Descrio do exemplo e sua modelao............................................................... 9
3.2. Construo do Modelo em SIMUL8 .................................................................... 10
4. SIMULAO DO MODELO .................................................................................................. 15
4.1. Definio do perodo de simulao ..................................................................... 15
4.2. Simulao ............................................................................................................ 15
4.3. Consulta de resultados ........................................................................................ 16
4.4. Resumo dos Resultados da Simulao............................................................... 19
5. EXEMPLO COM A UTILIZAO DE RECURSOS ..................................................................... 21
5.1. Descrio do exemplo e sua modelao............................................................. 21
5.2. Construo do Modelo em Simul8 ...................................................................... 22
PARTE 2 .................................................................................................................................. 24
3
14. DURAO DE UMA ACTIVIDADE DEPENDENTE DAS CARACTERSTICAS DAS ENTIDADES
(DISTRIBUIO BASEADA NUM ATRIBUTO) .......................................................................... 30
15. DISTINGUIR TEMPOS NO SISTEMA NUM MESMO PONTO DE SADA DE ACORDO COM AS
CARACTERSTICAS (ATRIBUTOS) DAS ENTIDADES ............................................................... 31
16. SIMULAR A CHEGADA DE DIFERENTES TIPOS DE CLIENTE AO SISTEMA, DADA UMA TAXA GLOBAL
DE CHEGADA E A DISTRIBUIO (EM PERCENTAGEM) DOS DIVERSOS TIPOS DE CLIENTE ....... 32
17. RECOLHER DIVERSAS ENTIDADES PARA EXECUTAR UMA ACTIVIDADE .................................. 32
18. EFECTUAR UMA ACTIVIDADE EM SIMULTNEO SOBRE DIVERSAS ENTIDADES, MANTENDO A
INDIVIDUALIDADE DAS MESMAS ......................................................................................... 33
19. ENTRADA DE GRUPOS DE ENTIDADES NO SISTEMA ............................................................. 33
20. CRIAR CPIAS DE UMA ENTIDADE SADA DE UMA ACTIVIDADE ........................................... 34
21. INICIAR EM SIMULTNEO DIFERENTES ACTIVIDADES SOBRE UMA MESMA ENTIDADE
(ACTIVIDADES EM PARALELO)............................................................................................ 34
22. CONTABILIZAR O TEMPO QUE UMA ENTIDADE DEMORA A ATINGIR DETERMINADO ESTDIO NO
INTERIOR DO SISTEMA ...................................................................................................... 34
23. CRIAR UM GRUPO (SUB-CONJUNTO DO SISTEMA) ............................................................... 35
24. LIMITAR O NMERO DE ENTIDADES NUM GRUPO ................................................................. 35
25. COMEAR UMA ACTIVIDADE APENAS QUANDO OUTRA TIVER TERMINADO ............................. 36
26. DURAES DE DIFERENTES ACTIVIDADES IDNTICAS PARA CADA ENTIDADE ........................ 37
27. PRIORIDADES DE ACTIVIDADES QUE PARTILHAM RECURSOS................................................ 37
28. PRIORIDADE NA DETERMINAO DA ENTIDADE A RECOLHER POR UM W ORK CENTER ........... 38
29. LIMITAR A DISPONIBILIDADE DE UM RECURSO A UMA JANELA TEMPORAL (NO COINCIDENTE
COM O HORRIO DE FUNCIONAMENTO DO SISTEMA) ........................................................... 38
30. FILAS DE ESPERA DE COMPRIMENTO LIMITADO E ENTIDADES PERDIDAS NOS PONTOS DE
ENTRADA ......................................................................................................................... 38
31. FILAS COM TEMPO DE ESPERA MXIMO (PRAZO OU SHELF LIFE)........................................ 39
32. FILAS COM TEMPO DE ESPERA MNIMO............................................................................... 39
33. USO DO ATRIBUTO QUANTITY EM WORK CENTERS HIGH VOLUME .................................... 39
BIBLIOGRAFIA....................................................................................................................... 41
4
PARTE 1
1. INTRODUO
2. INCIO DO PROGRAMA
Iniciando a execuo do programa, poder aparecer uma janela com uma biblioteca
de exemplos de simulao, que podero ser executados e consultados, cobrindo um
largo espectro de situaes. Nesta biblioteca, alguns dos exemplos apresentados
correspondem a lies de introduo ao SIMUL8. Para ultrapassar esta janela
dever seleccionar Close this Library Page.
5
Poder ento aparecer uma segunda janela que apresenta um pequeno texto
explicativo sobre alguma particularidade do programa. Para ultrapassar esta janela
carregue em OK.
6
Na janela principal do SIMUL8, os botes de acesso rpido, que tambm podem ser
acedidas pelo menu de opes, executam as seguintes funes:
Funes Globais
Ler modelo de simulao de um ficheiro (File/Open)
Gravar em ficheiro o modelo de simulao (File/Save)
Anula a ltima aco de alterao ao modelo (Edit/Undo)
7
Criao de objectos na janela de simulao
Funes auxiliares
8
3. CONSTRUO DE UM MODELO SIMPLES
Considere-se uma fila de espera simples do tipo M/M/1 com =6/h e =10/h. A sua
modelao atravs de simulao corresponderia a identificar dois tipos de entidades,
clientes e servidores, cujos ciclos de vida seriam respectivamente:
Chegada
Fora Espera
Atendimento
Atendimento
Fora
9
Quanto ao servidor, este ser um recurso necessrio para a execuo da actividade
Atendimento que, por executar uma nica actividade, implicitamente modelado
com ao criar a actividade.
A modelao deste sistema de fila no SIMUL8 seria pois efectuada atravs dos
seguintes passos:
Para definir a unidade de tempo com o qual sero inseridos os dados, faa um
duplo-clique com o rato na janela do relgio. Na janela de definiodo relgio
seleccione Minutes em Time Units. Conclua carregando em OK.
10
2 passo - Construo do diagrama
11
e bloco de destino para adicionar ou eliminar uma ligao existente. Para sair do
1) O programa criou
automaticamente uma classe de
entidades com o nome Work Item
Type 1. Por convenincia, vamos
alterar o seu nome para Cliente.
Seleccione Objects/Work Item
Types, devendo aparecer a janela
ao lado. Seleccione Detail para
aceder janela de alterao das entidades Work Item Type 1 e altere o seu nome
para Cliente e conclua com OK..
12
2) Seleccione com um clique do rato a
13
4) Seleccione com um clique do rato a
actividade na janela de
14
4. SIMULAO DO MODELO
Antes de iniciar a simulao dever ser definidos o perodo total a simular composto
pela soma de dois perodos de simulao sucessivos. Num primeiro perodo, de
estabilizao, a simulao executada sem recolha de resultados para compilao
de estatsticas (Warm-Up Period), visando essencialmente a eliminao das
condies iniciais do sistema nos resultados da simulao. Um segundo perodo, de
simulao, composto pelo perodo de tempo a simular com recolha de resultados
para compilao de estatsticas (Results Collection Period).
4.2. SIMULAO
15
Durante a execuo da simulao poder o utilizador pressionar de novo o boto
iniciais, aps uma interrupo, pressione . Sempre que se inicia uma simulao
16
Nas filas de espera existem dois grupos de informao disponveis: sobre o nmero
de clientes nas fila e sobre o tempo de espera dos clientes.
17
Quanto ao tempo de espera (Queuing Time) so fornecidos dados quanto ao tempo
minimo, mdio e mximo de espera (Minimum, Average e Maximum), e respectivo
desvio padro para todas as entidades que passaram pela fila. tambm
apresentado, apenas para o conjunto dos clientes que tiveram tempo de espera
maior que zero, o tempo de espera mnimo e mdio assim como o nmero de
entidades que se encontraram nestas condies (Number of non-zero queuing
18
interrompeu a simulao, nmero mnimo, mdio e mximo e ainda o nmero total
de entidades processadas na actividade (Currently in Work Center, Minimum,
1
O Replicate corresponde a situaes em que numa actividade podem existir mais do que
um servidor. Adiante, no captulo 5.2 apresentado um exemplo ilustrativo.
19
Assim, se nos resultados da fila de espera seleccionarmos o tempo mdio de espera
e o nmero mdio de clientes na fila, se nos resultados do atendimento
seleccionarmos a percentagem de tempo em actividade, e se na sada
seleccionarmos o tempo mdio no sistema, no final da simulao o resultado poder
ser o seguinte:
20
5. EXEMPLO COM A UTILIZAO DE RECURSOS
Considere o problema de um armazm que possui dois cais para carga de camies
e um outro cais para descarga de comboios. Para as operaes de carga e
descarga so utilizados dois empilhadores. Os comboios chegam com intervalos
fixos de 8 horas enquanto os camies chegam segundo uma distribuio de Poisson
com uma taxa mdia de 3 por hora. A carga de um camio demora em mdia 30
minutos segundo uma distribuio exponencial negativa enquanto a descarga de um
comboio demora em mdia 3 horas tambm segundo uma distribuio exponencial
negativa. Pretende-se simular o sistema de forma avaliar os tempos de espera dos
camies e comboios e utilizao dos empilhadores.
Chegada
Comboio
Comboio Espera
Fora Descarga
Descarga
Cais Livre
Empilhador
Livre
Carga
Carga
Carga
Espera Camio
Carga Fora
Chegada
Camio
21
5.2. CONSTRUO DO MODELO EM SIMUL8
22
uma unidade de recurso necessrio, o tempo de execuo da actividade ser
inversamente proporcional ao nmero de recursos utilizado.
23
PARTE 2
Para criar um novo tipo de entidade, seleccionar no menu de opes Objects / Work
Item Types / New ; pode-se alterar o nome da entidade (tornando-o mais sugestivo)
e em Image seleccionar uma imagem especfica. O SIMUL8 tem uma biblioteca de
imagens, mas pode-se associar uma imagem construda pelo utilizador.
24
3. MUDAR A IMAGEM ASSOCIADA A UMA ENTIDADE AO PASSAR POR
UMA ACTIVIDADE
Para tal, h que desdobrar a entidade em dois Work Item Types: um que a
representa entrada da actividade (que tem lugar num Work Center) e outro que a
representa sada, cada um dos quais tem uma determinada imagem associada.
Por omisso o SIMUL8 considera o Work Item Type sada da actividade idntico
ao Work Item Type entrada. Para ter um Work Item Type diferente sada da
actividade, seleccionar o Work Center, premir o boto Routing Out e em Exit Work
Item Type escolher o Work Item Type pretendido.
Se o Work Item Type entrada da actividade tiver atributos aos quais foi atribudo
um valor (numrico ou de texto), h que associar o mesmo atributo ao Work Item
Type que sai da actividade; caso contrrio ao correr o modelo o SIMUL8 acusa o
erro e adiciona (mediante o OK do utilizador) o atributo ao Work Item Type sada
da actividade.
25
6. DEFINIO DE UMA DISTRIBUIO PELO UTILIZADOR (NAMED
DISTRIBUTION)
Para definir uma distribuio deste tipo, seleccionar no menu de opes Objects /
Distributions / New / Named distribution e o boto Next>>; dar um nome
distribuio; na caixa Distribution seleccionar uma das distribuies estatsticas
escolha do utilizador e introduzir o valor dos parmetros.
Para definir uma distribuio discreta com base num histograma dado, seleccionar
no menu de opes Objects / Distributions / New / Probability Profile e o boto
Next>>; dar um nome distribuio e introduzir um a um os valores assumidos pela
varivel aleatria e a respectiva probabilidade (em percentagem).
26
opes Objects / Distributions / New / Time Dependent e o boto Next>>; dar um
nome distribuio e carregar no boto Add; introduzir as vrias distribuies
vlidas em cada intervalo, especificando o limite inferior do intervalo e na caixa
direita uma Named distribution, at todas as horas do dia estarem cobertas.
No caso de atributos numricos, o valor pode ser uma constante ou retirado de uma
distribuio aleatria. No caso de atributos de texto, o valor uma cadeia de
caracteres introduzida pelo utilizador.
27
As opes da caixa Attribute Actions contemplam ainda, entre outras, as hipteses
de adicionar a um atributo um valor (constante ou retirado de uma distribuio
aleatria), multiplicar um atributo por um valor, copiar para o atributo a hora actual
da simulao, etc.
Por omisso, a disciplina das filas de espera no SIMUL8 FIFO (first in, first out o
primeiro a entrar o primeiro a sair). Para ordenar as entidades numa fila de espera
consoante o valor que apresentem de um dado atributo, basta seleccionar na caixa
de dilogo da fila de espera a opo Prioritize e escolher o atributo na lista de
atributos. A prioridade na fila tanto maior quanto maior for o valor do atributo das
entidades na fila.
Se por erro de construo do modelo for includa na fila uma entidade que no
apresenta o atributo que ordena a fila, o SIMUL8 acusa o erro ao correr o modelo e
associa-o (mediante o OK do utilizador) a esse tipo de entidades.
A ordenao de uma fila segundo o valor de um atributo obriga a que este seja do
tipo numrico; caso seja seleccionado um atributo de texto o SIMUL8 acusa o erro
ao correr o modelo.
28
sima simo
destino da lista , , e a N entidade encaminhada para o N destino da
sima
lista. A N + 1 entidade ser encaminhada para o primeiro destino da lista, a
sima
N + 2 entidade ser encaminhada para o segundo destino da lista, etc. Assim, o
destino seleccionado circula pela lista de destinos.
Um caso particular aquele em que cada destino tem igual probabilidade de ser
escolhido; nesse caso seleccionar a opo Routing Out / Discipline / Uniform.
Em qualquer das trs opes de encaminhamento de entidades sada de uma
actividade referidas, a seleco do destino independente das caractersticas das
entidades.
29
simo
N destino da lista. Se o valor do atributo for superior a N, a entidade
simo
encaminhada para o N destino da lista; se o valor for zero ou negativo,
encaminhada para o o primeiro destino da lista.
30
Criando uma distribuio baseda num atributo de texto:
Em vez de valores globais de tempo no sistema de todas as entidades que saem por
um determinado ponto de sada (Work Exit Point) pode obter-se o tempo no sistema
para grupos de entidades que partilham uma determinada caracterstica (atributo).
Na caixa de dilogo do ponto de sada escolher a opo Seggregate results e
seleccionar o atributo em relao ao qual se pretendem diferenciar os tempos no
sistema (pode tratar-se de um atributo numrico ou de texto). Alm destes tempos
parciais o SIMUL8 apresenta sempre o valor global do tempo no sistema.
31
16. SIMULAR A CHEGADA DE DIFERENTES TIPOS DE CLIENTE AO
SISTEMA, DADA UMA TAXA GLOBAL DE CHEGADA E A DISTRIBUIO
(EM PERCENTAGEM) DOS DIVERSOS TIPOS DE CLIENTE
i = pi
Com um ponto de entrada nico e uma actividade fictcia (de durao nula)
que encaminha os clientes para diferentes destinos, segundo a percentagem
de cada tipo, conforme descrito no ponto 12.
A ordenao das filas que alimentam um determinado Work Center pode ser
alterada utilizando os botes esquerda da respectiva janela (na caixa de dilogo
da opo Routing In do Work Center).
32
18. EFECTUAR UMA ACTIVIDADE EM SIMULTNEO SOBRE DIVERSAS
ENTIDADES, MANTENDO A INDIVIDUALIDADE DAS MESMAS
O Work Center vai recolhendo entidades da fila ou filas que o alimentam at que a
soma dos valores do atributo escolhido esteja contido no intervalo de valores
especificado. Nesse momento inicia-se a actividade; quando termina so libertadas
todas as entidades recolhidas.
2
O termo "batching" em SIMUL8 significa o processamento de entidades em grupo, por
oposio ao processamento individual.
33
20. CRIAR CPIAS DE UMA ENTIDADE SADA DE UMA ACTIVIDADE
sada de uma actividade, pode interessar dispr de cpias da entidade que entrou
(ver os pontos 21 e 22). Para isso, seleccionar Routing Out na caixa de dilogo da
actividade, premir o boto Batching e indicar o nmero de cpias de cada entidade
que sai do Work Center (por omisso o valor 1, caso em que sai apenas a
entidade original, no sendo feita qualquer cpia). Tal como no ponto anterior, este
nmero pode ser fixo ou uma varivel aleatria com distribuio especificada pelo
utilizador.
Para iniciar mais de uma actividade em simultneo sobre uma entidade (um
exemplo: um relatrio cujos captulos so redigidos por pessoas diferentes), devem
fazer-se cpias da entidade encaminhando cada uma para uma actividade diferente.
Suponhamos que uma entidade tem de passar por trs actividades em paralelo e
apenas quando estas esto concludas se pode iniciar uma quarta actividade.
Fazem-se duas cpias da entidade a processar num Work Center fictcio e
encaminha-se cada uma das trs entidades resultantes para um Work Center onde
decorre uma das trs actividades referidas. Os trs Work Centers alimentam uma fila
de espera nica, na qual as entidades se juntam. Esta fila alimenta o Work Center
onde decorre a quarta actividade, que tem disciplina Collect (ver o ponto 17) s
comeando a trabalhar quando estiverem reunidas as trs entidades na fila
(significando que as trs primeiras actividades esto concludas).
34
Acrescenta-se sada da actividade em questo um ponto de sada do sistema. Em
seguida efectua-se um duplicado da entidade sada da actividade, conforme
descrito no ponto 20. Quando esta termina uma das entidades encaminhada para
o ponto de sada referido, enquanto a outra prossegue a sua rota dentro do sistema;
o tempo de permanncia no sistema contabilizado nesse ponto de sada coincide
com o tempo decorrido desde a entrada da entidade no sistema at ao fim da
actividade em questo.
Seleccionar com o boto esquerdo do rato os objectos (filas e/ou Work Centers) a
integrar no grupo e em seguida premir o boto direito do rato. Surge um menu;
escolher a opo Add to group.
Podem ser criados diferentes grupos no mesmo modelo, mas cada objecto s pode
estar includo num grupo.
Duas das razes para a limitao do nmero de entidades num grupo so:
Limitaes de espao: h um nmero mximo de entidades em filas ou a
ser processadas em Work Centers que podem estar contidas num
determinado espao fsico.
Cada entidade sujeita a uma sequncia de actividades finda a qual a
sequncia pode ser reiniciada numa nova entidade. Assim, pode formar-se
um grupo contendo todos os Work Centers que constituem a sequncia de
35
actividades e limitar a 1 o nmero de entidades nele existentes. Apenas
quando est concluda a ltima actividade da sequncia se pode iniciar a
primeira actividade sobre uma nova entidade.
Para libertar um recurso diferente daquele que foi consumido no incio de uma
actividade, seleccionar o boto Resources na caixa de dilogo do Work Center;
adicionar o recurso consumido pela actividade com o boto Add e em Detail
escolher qual o recurso que libertado pela actividade (por omisso, no fim de uma
actividade libertado o mesmo recurso captado no incio da mesma).
36
26. DURAES DE DIFERENTES ACTIVIDADES IDNTICAS PARA CADA
ENTIDADE
Quando duas actividades requerem o mesmo recurso, mas apenas uma unidade
deste est disponvel, a actividade que capta o recurso para ser iniciada depende da
respectiva prioridade.
37
28. PRIORIDADE NA DETERMINAO DA ENTIDADE A RECOLHER POR UM
WORK CENTER
Se, ao entrar no sistema (por um determinado Work Entry Point), uma entidade
encaminhada para uma fila de espera de comprimento limitado e encontra a fila
ocupada na totalidade, a entidade eliminada ou perdida. O utilizador avisado
deste facto, sendo-lhe dada a opo de deixar de ser notificado quando uma
entidade perdida durante a simulao (opo que convm assinalar sempre que o
modelo prev este tipo de situaes). No final da simulao, nos Resultados
relativos ao Work Entry Point surgem o nmero total de entidades que entraram no
sistema (Number of Work Items Entered) e o nmero de entidades perdidas
(Number of Work Items Lost).
38
31. FILAS COM TEMPO DE ESPERA MXIMO (PRAZO OU SHELF LIFE)
Para remover as entidades que ultrapassam o prazo (Shelf Life) numa fila deve ligar-
se a esta um Work Center fictcio (Work Center com tempo de atendimento igual a
zero) em cuja caixa de dilogo, boto Routing In se selecciona a opo Expired
Only. Este Work Center passar a receber as entidades da fila que expiram o prazo.
Para fazer sair do sistema e contabilizar estas entidades deve ligar-se um Work Exit
Point a este Work Center, que no final da simulao ter acumulado o nmero de
entidades removidas da fila de espera por ultrapassagem do prazo (boto Results
na caixa de dilogo / Number of Work Items Completed).
39
Para ser processado num Work Center High Volume, uma entidade deve ter
associado um atributo numrico de nome Quantity palavra reservada em SIMUL8,
relativamente qual pedida confirmao ao utilizador quando criado o atributo.
Sobre a criao de atributos e associao a entidades, consultar o ponto 9.
Previamente entrada no Work Center, necessrio ter atribudo um valor ao
atributo Quantity de todas as entidades processadas no mesmo (consultar o ponto
10 relativo atribuio e modificao do valor de um atributo). O valor do atributo
Quantity de uma entidade o nmero de unidades que esta contm.
Para que um Work Center funcione em modo High Volume, deve seleccionar-se a
respectiva tick box na caixa de dilogo do Work Center e, na distribuio do tempo
de atendimento, indicar o tempo de atendimento de cada unidade que constitui a
entidade (Work Item) a processar pelo Work Center. Este tempo de atendimento
pode ser fixo (distribuio Fixed) ou aleatrio, segundo uma determinada distribuio
estatstica.
Por exemplo, para um tempo de atendimento por unidade fixo e igual a 10 minutos,
uma entidade que apresente Quantity = 20 (isto , seja constituda por 20 unidades)
demorar 200 minutos a ser processada no Work Center enquanto uma entidade
com Quantity = 30 levar 300 minutos.
Caso o tempo de atendimento por unidade seja uma varivel aleatria, o SIMUL8
calcular o tempo total de atendimento da entidade por um mtodo adequado3.
3
Se for aplicvel, utilizar o Teorema do Limite Central, seno usar simulao de Monte
Carlo para gerar a distribuio do tempo total de atendimento.
40
BIBLIOGRAFIA
41