Você está na página 1de 56

MODELAGEM E SIMULAÇÃO DA

PRODUÇÃO
Prof. Dr. David Custódio de Sena
sena@ufersa.edu.br
SIMULAÇÃO

 Questionário de revisão:
1. Por que a simulação é a melhor disciplina do curso de Engenharia de Produção?
2. O que é um sistema?
3. O que é um modelo?
4. Como a simulação se diferencia de abordagens analíticas?
5. Quais as vantagens e desvantagens da simulação?
6. O que é uma variável de estado?
7. O que é um evento e quais os tipos de eventos?
8. Quais são os elementos passivos em uma simulação?
9. Qual é o elemento ativo em uma simulação?
SIMULAÇÃO
 TÓPICOS
 Resolução clássica de problemas matemáticos
 Aleatoriedade
 Definições
 Exemplo prático 1 em Software
 Simulação de Monte-Carlo
 Definições
 Exemplo prático 2 em Software
 Outras aplicações em Simulação de Monte-Carlo
 Referências
SIMULAÇÃO

RESOLUÇÃO CLÁSSICA
DE PROBLEMAS
MATEMÁTICOS
SIMULAÇÃO
 Os modelos matemáticos prescritivos tem o seguinte modelo básico

Determinísticos
e únicos

Dados de Informações
Modelo matemático
entrada de saída
SIMULAÇÃO
 Para dirimir, pode-se criar cenários ”E-SE?”

Determinísticos

Pior caso Pior caso


Caso base Modelo matemático Caso base
Melhor caso Melhor caso

Entradas Saídas
SIMULAÇÃO

ALEATORIEDADE
SIMULAÇÃO
 Números aleatórios
 São números que não seguem qualquer lógica aparente, de forma que é difícil definir
uma função ou algoritmo para gerá-los;
 Na prática, é difícil se obter números realmente aleatórios;
 Números aleatórios podem ser obtidos por meio da observação de processos
naturais (ex: decaimento de partículas atômicas);
 Exemplo da média da soma de dois dados
SIMULAÇÃO
 Números pseudo-aleatórios
 São números gerados deterministicamente, mas que aparentam ser aleatórios,
pois passam nos testes estatísticos;
 Em geral, são gerados por uma equação ou algoritmo;
 É bem mais fácil gerar números pseudo-aleatórios;
 Cada número aleatório Ui é um exemplo independente de uma distribuição contínua
uniforme entre 0 e 1.
 Ui = [0,1]
SIMULAÇÃO
 Usualmente, números aleatórios são gerados por computadores, como
parte de uma simulação;
 Há numerosos métodos que podem ser utilizados para gerar esses valores
 Geradores congruenciais
 Método do quadrado médio
 Para a utilização em algum sistema computacional, é necessário converter
esses valores entre 0 e 1 em valores tratáveis, em seu cálculo.

Sequência de
números pseudo-
Cálculo aleatório
Semente
SIMULAÇÃO

EXEMPLO PRÁTICO 1 EM
SOFTWARE
Média da soma de dois quadrados
SIMULAÇÃO
 Exemplo 1 – Lançamento de dois dados, soma dos resultados e apresentando os resultados
import random

def lancamento_dados():
dado1 = random.randint(1, 6) # Gera um número aleatório entre 1 e 6 para o primeiro dado
dado2 = random.randint(1, 6) # Gera um número aleatório entre 1 e 6 para o segundo dado
return dado1, dado2

def somar_resultados(dado1, dado2):


return dado1 + dado2

# Executando o lançamento dos dados e somando os resultados


resultado_dados = lancamento_dados()
soma = somar_resultados(resultado_dados[0], resultado_dados[1])

# Apresentando o resultado
print("Resultado do lançamento dos dados: ", resultado_dados)
print("Soma dos resultados: ", soma)
SIMULAÇÃO
 Exemplo 1 – Vários lançamentos, Trecho 1
import random

def lancamento_dados():
dado1 = random.randint(1, 6) # Gera um número aleatório entre 1 e 6 para o primeiro dado
dado2 = random.randint(1, 6) # Gera um número aleatório entre 1 e 6 para o segundo dado
return dado1, dado2

def somar_resultados(dado1, dado2):


return dado1 + dado2

num_lancamentos = 5 # Define o número de lançamentos desejado

# Executando vários lançamentos de dados e calculando a soma dos resultados


soma_total = 0
SIMULAÇÃO
 Exemplo 1 –Vários lançamentos, Trecho 2
for _ in range(num_lancamentos):
resultado_dados = lancamento_dados()
soma = somar_resultados(resultado_dados[0], resultado_dados[1])
soma_total += soma

# Apresentando o resultado médio


media = soma_total / num_lancamentos
print("Número de lançamentos: ", num_lancamentos)
print("Soma total dos resultados: ", soma_total)
print("Média dos resultados: ", media)
SIMULAÇÃO
 Exemplo 1 – Definição da semente, Trecho 1
import random

def lancamento_dados():
dado1 = random.randint(1, 6) # Gera um número aleatório entre 1 e 6 para o primeiro dado
dado2 = random.randint(1, 6) # Gera um número aleatório entre 1 e 6 para o segundo dado
return dado1, dado2

def somar_resultados(dado1, dado2):


return dado1 + dado2

num_lancamentos = 5 # Define o número de lançamentos desejado


semente = 123 # Define a semente para a geração dos números aleatórios

random.seed(semente) # Configura a semente para a geração dos números aleatórios

# Executando vários lançamentos de dados e calculando a soma dos resultados


soma_total = 0
SIMULAÇÃO
 Exemplo 1 – Definição da semente, Trecho 2
for _ in range(num_lancamentos):
resultado_dados = lancamento_dados()
soma = somar_resultados(resultado_dados[0], resultado_dados[1])
soma_total += soma

# Apresentando o resultado médio


media = soma_total / num_lancamentos
print("Número de lançamentos: ", num_lancamentos)
print("Soma total dos resultados: ", soma_total)
print("Média dos resultados: ", media)
SIMULAÇÃO

SIMULAÇÃO DE MONTE-
CARLO
SIMULAÇÃO
 O método de simulação Monte-Carlo é um modo de realizar integrações
numéricas de funções;
 Realizadas em elevado número;
 Mais facilmente resolvidas que métodos analíticos.
SIMULAÇÃO
 Simulação de Monte Carlo
 A simulação de Monte Carlo utiliza um conjunto de amostras aleatórias para gerar
saídas aleatórias

Entradas Saídas
Modelo matemático
aleatórias aleatórias
SIMULAÇÃO
 Método da simulação de Monte Carlo
1. Geração do modelo estático;
2. Identificação das distribuições de entrada;
3. Geração das variáveis aleatórias;
4. Análise e tomada de decisão.
SIMULAÇÃO
Início

Identificação do modelo
estático

Identificação das distribuições de


entrada

Registra o Execução de uma rodada do modelo estático


resultado com variáveis escolhidas aleatoriamente

Número de
rodadas máximas
atingidas? Não

Sim
Análise e tomada de
decisão

Fim
SIMULAÇÃO
 Exemplo Projeto
 Em um gerenciamento de projeto foram levantados alguns valores de tempo de
atividade, que são otimistas, pessimistas e possíveis. Os valores são os seguintes:
Duração estimada Melhor caso Pior caso
ID Tarefa (horas) (horas) (horas)
1 Primeiro contato com o cliente 2,0 1,6 2,4
2 Levantamento do ambiente de TI do cliente 1,5 1,4 3,0
3 Nivelamento do mabiente de TI 2,3 2,1 5,0
4 Instalação do produto 1,8 1,4 2,1
5 Testes de homologação 3,1 1,5 4,0
6 Capacitação e treinamentos 16,0 15,9 18,1
7 Liberação de documentos sobre a implantação 2,2 1,9 3,1

 Qual a média, o desvio-padrão e as probabilidades do projeto ser realizado até 25, 30


e 35 horas?
SIMULAÇÃO
Início

Identificação do modelo
estático

Identificação das distribuições de


entrada

Registra o Execução de uma rodada do modelo estático


resultado com variáveis escolhidas aleatoriamente

Número de
rodadas máximas
atingidas? Não

Sim
Análise e tomada de
decisão

Fim
SIMULAÇÃO
 Geração do modelo estático

𝑡1 + 𝑡2 + 𝑡3 + 𝑡4 + 𝑡5 + 𝑡6 + 𝑡7

Em que:

𝑡𝑛 → 𝑡𝑒𝑚𝑝𝑜 𝑑𝑎 𝑎𝑡𝑖𝑣𝑖𝑑𝑎𝑑𝑒 𝑛
SIMULAÇÃO
Início

Identificação do modelo
estático

Identificação das distribuições de


entrada

Registra o Execução de uma rodada do modelo estático


resultado com variáveis escolhidas aleatoriamente

Número de
rodadas máximas
atingidas? Não

Sim
Análise e tomada de
decisão

Fim
SIMULAÇÃO
 Identificação das distribuições de entrada

Atividade Distribuição
1 Triangular (1.6,2.0,2.4)
2 Triangular (1.4,1.5,3.0)
3 Triangular (2.1,2.3,5,0)
4 Triangular (1.4,1.8,2.1)
5 Triangular (1.5,3.1,4.0)
6 Triangular (15.9,16.0,18.1)
7 Triangular (1.9,2.2,3.1)
SIMULAÇÃO
Início

Identificação do modelo
estático

Identificação das distribuições de


entrada

Registra o Execução de uma rodada do modelo estático


resultado com variáveis escolhidas aleatoriamente

Número de
rodadas máximas
atingidas? Não

Sim
Análise e tomada de
decisão

Fim
SIMULAÇÃO
 Geração das variáveis aleatórias

Atividade Distribuição Exemplo


1 Triangular (1.6,2.0,2.4) 1.9
2 Triangular (1.4,1.5,3.0) 1.5
3 Triangular (2.1,2.3,5,0) 2.5
4 Triangular (1.4,1.8,2.1) 2.0
5 Triangular (1.5,3.1,4.0) 2.0
6 Triangular (15.9,16.0,18.1) 16.7
7 Triangular (1.9,2.2,3.1) 2.2
SIMULAÇÃO
 Geração das variáveis aleatórias

Atividade Distribuição Exemplo


1 Triangular (1.6,2.0,2.4) 1.9
2 Triangular (1.4,1.5,3.0) 1.5
3 Triangular (2.1,2.3,5,0) 2.5
4 Triangular (1.4,1.8,2.1) 2.0
5 Triangular (1.5,3.1,4.0) 2.0
6 Triangular (15.9,16.0,18.1) 16.7
7 Triangular (1.9,2.2,3.1) 2.2
Total 28.8
SIMULAÇÃO
Início

Identificação do modelo
estático

Identificação das distribuições de


entrada

Registra o Execução de uma rodada do modelo estático


resultado com variáveis escolhidas aleatoriamente

Número de
rodadas máximas
atingidas? Não

Sim
Análise e tomada de
decisão

Fim
SIMULAÇÃO

EXEMPLO PRÁTICO 2 EM
SOFTWARE
Duração de projeto
SIMULAÇÃO
 Exemplo 2 – Duração do projeto,Trecho 1
import random

def simulacao_monte_carlo(duracoes, num_simulacoes):


resultados = []

for _ in range(num_simulacoes):
duracao_simulada = 0

for duracao in duracoes:


duracao_simulada += random.triangular(duracao[0], duracao[2], duracao[1])

resultados.append(duracao_simulada)

return resultados
SIMULAÇÃO
 Exemplo 2 – Duração do projeto, Trecho 2
# Exemplo de entrada: lista de tuplas contendo o mínimo, a moda e o máximo das durações
duracoes_projeto = [(1.6, 2.0, 2.4), (1.4, 1.5, 3.0)]

num_simulacoes = 10000

resultados_simulacao = simulacao_monte_carlo(duracoes_projeto, num_simulacoes)

# Resultados
print("Resultados da simulação de Monte Carlo:")
print("Média:", sum(resultados_simulacao) / num_simulacoes)
print("Mínimo:", min(resultados_simulacao))
print("Máximo:", max(resultados_simulacao))
SIMULAÇÃO
 Exemplo 2 – Adicionar os outros tempos, Média e Desvio-Padrão, Trecho 1
import Random
import statistics

def simulacao_monte_carlo(duracoes, num_simulacoes):


resultados = []

for _ in range(num_simulacoes):
duracao_simulada = 0

for duracao in duracoes:


duracao_simulada += random.triangular(duracao[0], duracao[2], duracao[1])

resultados.append(duracao_simulada)

return resultados
SIMULAÇÃO
 Exemplo 2 – Duração do projeto, Trecho 2
# Exemplo de entrada: lista de tuplas contendo o mínimo, a moda e o máximo
das durações
duracoes_projeto = [(1.6, 2.0, 2.4), (1.4, 1.5, 3.0) , (2.1, 2.3, 5.0), (1.4, 1.8, 2.1),
(1.5, 3.1, 4.0), (15.9, 16.0, 18.1), (1.9, 2.2, 3.1)]

num_simulacoes = 10000

resultados_simulacao = simulacao_monte_carlo(duracoes_projeto,
num_simulacoes)
SIMULAÇÃO
 Exemplo 2 – Duração do projeto, Trecho 3
# Cálculo da média e do desvio padrão
media = statistics.mean(resultados_simulacao)
desvio_padrao = statistics.stdev(resultados_simulacao)

# Resultados
print("Resultados da simulação de Monte Carlo:")
print("Média:", media)
print("Desvio padrão:", desvio_padrao)
print("Mínimo:", min(resultados_simulacao))
print("Máximo:", max(resultados_simulacao))
SIMULAÇÃO

OUTRAS APLICAÇÕES EM
SIMULAÇÃO DE MONTE-
CARLO
SIMULAÇÃO
 Exemplo margem de contribuição
 Imagine a situação em que dois produtos apresentaram, historicamente, diferentes
valores de gastos diretos/variáveis unitários, como mostra o quadro a seguir.
SIMULAÇÃO
 Exemplo margem de contribuição
SIMULAÇÃO
 Exemplo margem de contribuição

Pergunta-se:
Qual seria o valor máximo, o
valor mínimo e o valor
esperado da Margem de
Contribuição Unitária de cada
tipo de produto?
SIMULAÇÃO
 Exemplo margem de contribuição

MCUMÁXIMA = +R$ 9,00 MCUMÁXIMA = +R$ 10,00


(50 – 30 – 6 – 5) (80 – 45 – 20 – 5)
MCUMÍNIMA = - R$ 2,00 MCUMÍNIMA = - R$ 1,00
(50 – 35 – 10 – 7) (80 – 49 – 25 – 7)

Qual MCU considerar?


MCUESPERADA SMC
SIMULAÇÃO
 Exemplo margem de contribuição

Pergunta-se:
Qual o risco da Margem de
Contribuição unitária de cada
produto ser menor que zero?
SIMULAÇÃO
 Exemplo margem de contribuição
 Excel (VBA) – “Margem de Contribuição.xlsm”
SIMULAÇÃO
 Exemplo decisão de investimento
 Um grupo industrial que fabrica o produto Alfa, munido de dados dos últimos 3 anos
de operações, está estudando a possibilidade de investir em uma nova planta
industrial (regime de tributação Simples Nacional). Os dados históricos acerca dos
preços e dos gastos unitários (probabilísticos); dos gastos fixos
(determinísticos); do valor residual de venda da empresa após 5 anos de existência;
da estrutura tributária; do valor do investimento a ser realizado; e do custo do capital
são apresentados no quadro a seguir:
SIMULAÇÃO
FREQUENCIA FREQUENCIA
PRODUTO ITEM VALOR UNITÁRIO (R$)
RELATIVA ACUMULADA
0% 105,00
R$ 105,00 30% 30% 110,00
R$ 110,00 25% 55% 115,00
PREÇO DE VENDA BRUTO (PVBRUTO ) R$ 115,00 20% 75% 120,00
R$ 120,00 15% 90% 125,00
R$ 125,00 10% 100%

0% 10000
10000 20% 20% 10500
10500 25% 45% 11000
QUANTIDADE PRODUZIDA E VENDIDA POR ANO (Q) 11000 30% 75% 11500
11500 15% 90% 12000
12000 10% 100%

ALFA
0% 30,00
R$ 30,00 10% 10% 31,00
R$ 31,00 15% 25% 32,00
CUSTO DE MATERIAL DIRETO (MDu) R$ 32,00 20% 45% 33,00
R$ 33,00 25% 70% 34,00
R$ 34,00 30% 100%

0% 10,00
R$ 10,00 15% 15% 11,00
R$ 11,00 20% 35% 12,00
CUSTO DE MÃO DE OBRA DIRETA (MODu) R$ 12,00 25% 60% 13,00
R$ 13,00 20% 80% 14,00
R$ 14,00 20% 100%

DESPESAS VARIÁVEIS UNITÁRIAS (DVu) = % × PVBRUTO 1,5%


SIMULAÇÃO

CUSTOS FIXOS ANUAIS (CF - SEM DEPRECIAÇÃO) R$ 250.000,00

DESPESAS FIXAS ANUAIS (DF - SEM DEPRECIAÇÃO) R$ 180.000,00

VALOR ECONÔMICO RESIDUAL DA EMPRESA APÓS 5 ANOS R$ 2.500.000,00

DEDUÇõES E IMPOSTOS SOBRE VENDAS (SIMPLES NACIONAL) 8%

TAXA MÍNIMA DE ATRATIVIDADE ou CUSTO DO CAPITAL 10%

INVESTIMENTO R$ 2.000.000,00
SIMULAÇÃO
 Exemplo decisão de investimento
 Qual o VPL máximo e o VPL mínimo?
 Qual é o VPL esperado?
 Qual o risco envolvido com o negócio, ou seja, a probabilidade de o VPL ser menor
que 0 e da TIR ser menor que K?
SIMULAÇÃO
 Exemplo decisão de investimento
 Cálculo fluxo de caixa livre
Receita bruta = PVb * Q
(-) Despesas variáveis unitárias (1,5%)
(=) Receita liquida
(-) Material direto
(-) Mão de obra direta
(-) Despesa variável
(=) Margem de contribuição total
(-) Custos fixos totais
(-) Despesas fixas totais
(=) Lucro liquido
(-) Investimento
(+) Valor residual
(=) Fluxo de caixa livre
SIMULAÇÃO
 Exemplo decisão de investimento
SIMULAÇÃO
 Exemplo decisão de investimento
 VPL máximo
VPL MÁXIMO ANO 0 ANO 1 ANO 2 ANO 3 ANO 4 ANO 5 ANO 6
Receita Bruta máx = PBb * Q R$ 1.500.000,00 R$ 1.500.000,00 R$ 1.500.000,00 R$ 1.500.000,00 R$ 1.500.000,00
PVb Máx R$ 125,00 R$ 125,00 R$ 125,00 R$ 125,00 R$ 125,00
Q máx 12000 12000 12000 12000 12000

DIV R$ 120.000,00 R$ 120.000,00 R$ 120.000,00 R$ 120.000,00 R$ 120.000,00


Receita líq R$ 1.380.000,00 R$ 1.380.000,00 R$ 1.380.000,00 R$ 1.380.000,00 R$ 1.380.000,00

MD R$ 360.000,00 R$ 360.000,00 R$ 360.000,00 R$ 360.000,00 R$ 360.000,00


MOD R$ 120.000,00 R$ 120.000,00 R$ 120.000,00 R$ 120.000,00 R$ 120.000,00
DV R$ 22.500,00 R$ 22.500,00 R$ 22.500,00 R$ 22.500,00 R$ 22.500,00

MARGEM DE CONTRIBUIÇÃO
máx R$ 877.500,00 R$ 877.500,00 R$ 877.500,00 R$ 877.500,00 R$ 877.500,00

Custos fixos R$ 250.000,00 R$ 250.000,00 R$ 250.000,00 R$ 250.000,00 R$ 250.000,00


despesas fixas R$ 180.000,00 R$ 180.000,00 R$ 180.000,00 R$ 180.000,00 R$ 180.000,00

(=)LUCRO LÍQUIDO máx R$ 447.500,00 R$ 447.500,00 R$ 447.500,00 R$ 447.500,00 R$ 447.500,00

(-)INVESTIMENTO -R$ 2.000.000,00 0 0 0 0 0


(+)VALOR RESIDUAL R$ 2.500.000,00
(=)FLUXO DE CAIXA LIVRE (2.000.000,00) 447.500,00 447.500,00 447.500,00 447.500,00 447.500,00 2.500.000,00

VPL MAX 1.107.561,90


TIR MAX 23%
SIMULAÇÃO
 Exemplo decisão de investimento
 VPL mínimo
VPL MÍNIMO ANO 0 ANO 1 ANO 2 ANO 3 ANO 4 ANO 5 ANO 6
Receita Bruta mín = PBb * Q R$ 1.050.000,00 R$ 1.050.000,00 R$ 1.050.000,00 R$ 1.050.000,00 R$ 1.050.000,00
PVb Mín R$ 105,00 R$ 105,00 R$ 105,00 R$ 105,00 R$ 105,00
Q mín 10000 10000 10000 10000 10000

DIV R$ 84.000,00 R$ 84.000,00 R$ 84.000,00 R$ 84.000,00 R$ 84.000,00


Receita líq R$ 966.000,00 R$ 966.000,00 R$ 966.000,00 R$ 966.000,00 R$ 966.000,00

MD R$ 340.000,00 R$ 340.000,00 R$ 340.000,00 R$ 340.000,00 R$ 340.000,00


MOD R$ 140.000,00 R$ 140.000,00 R$ 140.000,00 R$ 140.000,00 R$ 140.000,00
DV R$ 15.750,00 R$ 15.750,00 R$ 15.750,00 R$ 15.750,00 R$ 15.750,00

MARGEM DE CONTRIBUIÇÃO mín R$ 470.250,00 R$ 470.250,00 R$ 470.250,00 R$ 470.250,00 R$ 470.250,00

Custos fixos R$ 250.000,00 R$ 250.000,00 R$ 250.000,00 R$ 250.000,00 R$ 250.000,00


Despesas fixas R$ 180.000,00 R$ 180.000,00 R$ 180.000,00 R$ 180.000,00 R$ 180.000,00

(=)LUCRO LÍQUIDO mín R$ 40.250,00 R$ 40.250,00 R$ 40.250,00 R$ 40.250,00 R$ 40.250,00

(-)INVESTIMENTO -R$ 2.000.000,00


(+)VALOR RESIDUAL R$ 2.500.000,00
(=)FLUXO DE CAIXA LIVRE (2.000.000,00) 40.250,00 40.250,00 40.250,00 40.250,00 40.250,00 2.500.000,00

VPL MÍN -436.236,01


TIR MÍN 5%
SIMULAÇÃO
 Exemplo jornaleiro
 Um jornaleiro precisa comprar uma quantidade de jornais no inicio do dia que varia
entre 100 e 500 unidades, com incrementos de 100 unidades. A demanda diária por
jornais em um dia típico varia segundo uma distribuição normal com média 250 e
desvio padrão 100.
SIMULAÇÃO
 Exemplo jornaleiro
 O preço de venda de um jornal é R$ 2,00, e o jornaleiro paga R$ 0,50 por jornal. Se
a demanda for menor que a quantidade recebida, o jornaleiro arca com o prejuízo
dos jornais que sobraram.
 Qual o tamanho do pedido que maximiza o lucro médio?
 Qual o tamanho do pedido que possui a menor chance de gerar prejuízo?
SIMULAÇÃO
 Resumo
 Aleatoriedade
 Semente
 Simulação de Monte Carlo
SIMULAÇÃO

 Referências:
 Monte Carlo Simulation with applications to Finance. Hui Wang.
 Introduction to Monte Carlo Simulation. Samik Raychaudhuri.
 Aplicação da simulação de Monte Carlo no gerenciamento de riscos em projetos com
o Crystal Ball. Paulo Alves de Oliveira, Maria José Pereira Dantas, Ricardo Luiz
Machado.
 SARAIVA JR., A. F.; TABOSA; C. M.; COSTA, R. P. Simulação de Monte Carlo aplicada à
análise econômica de pedido. Produção, v. 21 , n. 1 , p. 149-164, 2011
 SARAIVA JR., A. F.; RODRIGUES, M.V.; COSTA, R. P. Simulação de Monte Carlo aplicada
à decisão de mix de produtos. Produto & Produção, v. 11, n. 2, p. 26-54, 2010
 Usando o JSL para simulação de Monte Carlo. Túlio Almeida Peixoto, João José de
Assis Rangel, Ítalo de Oliveira.
SIMULAÇÃO

ATÉ BREVE!!!

Você também pode gostar