Escolar Documentos
Profissional Documentos
Cultura Documentos
Aula02 - Simulao de Monte Carlo
Aula02 - Simulao de Monte Carlo
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
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
# 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 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
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
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
Identificação do modelo
estático
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
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
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
Identificação do modelo
estático
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
for _ in range(num_simulacoes):
duracao_simulada = 0
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
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
for _ in range(num_simulacoes):
duracao_simulada = 0
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
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%
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
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
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!!!