← Projetos

Tutorial

Decision Tree Simulator: tutorial

Como montar árvores de decisão no navegador, simular passo a passo, comparar alternativas pelo valor esperado e gerar a documentação.

O que é o Decision Tree Simulator

Uma árvore de decisão é um modelo em forma de árvore com as decisões e suas consequências possíveis, incluindo eventos de acaso, custos e utilidade. [2] O Decision Tree Simulator monta essas árvores, executa e documenta. [1] É um único arquivo HTML, que funciona no navegador, sem instalação nem conta.

Abrir o Decision Tree Simulator

Tela inicial do Decision Tree Simulator, com os tipos de nó à esquerda, a área de desenho vazia com botões para começar ou abrir exemplos e o painel de propriedades à direita
A tela inicial: comece pelo nó raiz ou abra um dos três exemplos.

Por que desenhar uma decisão em vez de só pensar nela? Porque a árvore obriga a separar o que você escolhe do que não controla, e a dar um número a cada hipótese. Ao passar a decisão para a árvore, as hipóteses ficam à vista e podem ser discutidas. A árvore ajuda mesmo com poucos dados concretos. [2]

A área que estuda esse tipo de problema se chama análise de decisão: o termo foi usado por Ronald A. Howard em um artigo de 1966, e Howard Raiffa publicou um texto introdutório em 1968. [3]

O trabalho acontece em três modos, escolhidos no alto da tela:

Editar
Montar a árvore, preencher os campos e declarar as variáveis.
Simular
Percorrer passo a passo e ver valor esperado, caminhos, Monte Carlo e sensibilidade.
Documentar
Ler, imprimir e exportar a documentação gerada a partir da árvore.

Como o app trata os seus dados

  • Nada sai do seu computador. O arquivo bloqueia conexões de rede.
  • A árvore fica no navegador. Ela é guardada automaticamente e reaparece ao reabrir o app. Para ter uma cópia própria, salve em JSON.
  • Árvores não executam código. As expressões passam por um interpretador próprio, então abrir um arquivo recebido de outra pessoa não roda JavaScript.

Exemplos prontos

Em Arquivo ▾, o grupo Exemplos traz três árvores. Todos os valores são fictícios.

  • Lançar um produto: decisões em sequência, com um teste de mercado no meio.
  • Triagem de chamado: regras com dados de entrada, e valor em horas, que se minimiza.
  • Conceder crédito: regra por escore, variável alterada em um ramo e distribuição no Monte Carlo.

Os quatro nós

A notação usual tem três símbolos: quadrado para decisão, círculo para acaso e triângulo para o fim. [2] O app usa esses três como ícones e acrescenta a regra, para os casos em que nada precisa ser escolhido nem sorteado, porque os dados já definem o caminho.

Decisão, com um quadrado: alguém escolhe uma opção. Incerteza, com um círculo: o acaso escolhe pelas probabilidades. Regra, com um losango: uma condição escolhe sozinha. Resultado, com um triângulo: fim do caminho, com o valor.
Cada tipo tem forma e ícone próprios, para a identidade não depender só da cor.
NóQuem escolhe o ramoNa análise, vale
■ DecisãoUma pessoa.O melhor ramo disponível, conforme o objetivo.
● IncertezaO acaso, pelas probabilidades dos ramos.A média ponderada dos ramos.
◆ RegraA primeira condição verdadeira, na ordem dos ramos.O ramo que a condição escolher.
▶ ResultadoNinguém: o caminho termina.O total acumulado no caminho.

Sua primeira árvore: consertar ou trocar

Em cerca de 20 minutos, você vai decidir o que fazer com um notebook com defeito. Se estiver na garantia, o conserto é gratuito. Fora dela, você pode pagar R$ 800 por um conserto que resolve em 70% dos casos, com o risco de precisar comprar outro mesmo assim, ou trocar logo por R$ 3.000. Os valores são fictícios. Como tudo é custo, o objetivo é minimizar.

1. Configure a árvore

  1. Se o app abrir com outra árvore, use Arquivo ▾ → Novo.
  2. No painel direito, preencha Nome com Notebook com defeito.
  3. Em Objetivo, escolha Minimizar o valor.
  4. Em Unidade do valor, digite R$.

2. Declare as variáveis

Variáveis deixam os números em um só lugar. Abra a aba Variáveis e clique em + Nova variável uma vez para cada linha.

VariávelValorTambém preencha
em_garantiafalseMarque Perguntar ao iniciar o passo a passo e, em Pergunta, digite Está na garantia? (true ou false)
custo_conserto800Distribuição no Monte Carlo: triangular(500, 800, 1500)
preco_novo3000—
p_resolve0.7—
Aba Variáveis com as quatro variáveis do exemplo; a última, p_resolve, está aberta com valor 0.7
As variáveis ficam na aba própria. Clique em uma para abrir os campos.

3. Monte a árvore

  1. No centro da tela, clique em Começar com: Regra, digite Está na garantia? e pressione Enter.
  2. Para cada linha da tabela, clique no nó de origem e depois no + que aparece na borda dele. No menu, escolha o tipo, digite o texto e pressione Enter.
  3. Com o nó novo selecionado, preencha os campos no painel direito. Se a árvore sair da tela, clique em Ajustar.
OrigemTipoTextoRótulo do ramoOutros campos
Está na garantia?ResultadoConserto gratuitoSimCondição: em_garantia; Valor: 0
Está na garantia?DecisãoConsertar ou trocar?NãoDeixe Condição vazia: é o “senão”.
Consertar ou trocar?IncertezaO conserto resolve?ConsertarValor do ramo: custo_conserto
O conserto resolve?ResultadoContinua usandoResolveProbabilidade: p_resolve; Valor: 0
O conserto resolve?ResultadoCompra um novoNão resolveDeixe Probabilidade vazia: é o restante. Valor: preco_novo
Consertar ou trocar?ResultadoNotebook novoTrocar agoraValor do ramo: preco_novo; Valor: 0
A árvore do notebook no modo Editar: regra na raiz, decisão, incerteza e quatro resultados, com o ramo Consertar destacado e o valor esperado de R$ 1.700
A árvore pronta. Os ramos com // foram descartados pela análise.

4. Verifique

Abra a aba Verificar. Deve aparecer Nenhum problema encontrado. A raiz mostra VE R$ 1.700. Se o número for outro, confira os campos da tabela.

5. Percorra passo a passo

  1. Clique em Simular. O painel pede o dado de entrada: mantenha false e clique em Iniciar.
  2. Clique em Passo. A regra avalia a condição, e o caminho segue pelo ramo Não.
  3. O painel pede sua escolha. Clique em Consertar. O acumulado passa a R$ 800.
  4. Clique em Passo. Com a semente 12345, o sorteio dá 0,9797, e o ramo sorteado é Não resolve.
  5. Clique em Passo de novo. O caminho termina em Compra um novo, com total de R$ 3.800.
Simulação parada no resultado Compra um novo, com o caminho destacado no diagrama e a tabela de passos abaixo, mostrando o sorteio 0,9797
A tabela explica cada passo, inclusive o número sorteado.

Note que o valor esperado de R$ 1.700 não aconteceu: neste caminho você gastou R$ 3.800, e no outro gastaria R$ 800. O valor esperado é a média ponderada, não uma previsão do que vai ocorrer. [4]

6. Compare as alternativas

Abra a aba Valor esperado. Consertar vale R$ 1.700 (de R$ 800 a R$ 3.800) e trocar vale R$ 3.000, sem variação. Consertar custa R$ 1.300 a menos em média, mas tem 30% de chance de sair mais caro que trocar. A árvore não decide por você se esse risco é aceitável: ela o deixa visível.

Aba Valor esperado: valor esperado de R$ 1.700, tabela de alternativas com Consertar e Trocar agora, plano recomendado e perfil de risco
Alternativas, plano recomendado e perfil de risco.

7. Rode o Monte Carlo

Abra a aba Monte Carlo e clique em Executar. Com 5.000 execuções e semente 12345, medimos média de R$ 1.857,4, com margem de ± R$ 38,73. A média passa de 1.700 porque o custo do conserto agora é sorteado da distribuição, cuja média é 933, e não 800.

Aba Monte Carlo: média de R$ 1.857,4, histograma com dois grupos de valores e tabela de frequência dos resultados
Os dois grupos do histograma são os dois desfechos do conserto.

8. Procure o ponto de virada

Abra a aba Sensibilidade, escolha p_resolve em Variável e clique em Calcular. O app indica a virada em p_resolve ≈ 0,2667. Confira à mão: 800 + (1 − p) × 3000 = 3000 dá p ≈ 0,2667. Logo, consertar continua melhor mesmo se a chance de resolver for bem menor que os 70% estimados, e isso diz mais que o número 1.700.

Aba Sensibilidade: gráfico com a linha de Consertar descendo e a de Trocar agora constante, cruzando em p_resolve aproximadamente 0,2667
Abaixo do cruzamento, trocar compensa; acima, consertar.

9. Gere o documento

Clique em Documentar. O documento já traz diagrama, procedimento, tabela de regras, dicionários e análises. Use Imprimir / PDF para imprimir ou gerar o PDF.

Modo Documentar: à esquerda, botões de exportação e lista de seções; à direita, a primeira página do documento gerado
À esquerda, exportação, seções e identificação. À direita, o documento.
↑ Voltar ao topo

A interface

ÁreaPara que serve
Barra superiorModos, Arquivo ▾, desfazer e refazer, Organizar ▾, idioma, ajuda (?) e tema (◐).
NósClique em um tipo para criar um filho do nó selecionado, ou arraste-o para o diagrama.
EstruturaA árvore em lista, com a mesma numeração do diagrama. Clique para encontrar um nó.
DiagramaArraste o fundo para mover, use a roda do mouse para o zoom ou, no toque, dois dedos.
ValoresLiga e desliga os valores, a linha do melhor ramo e as marcas // no diagrama.
Painel direitoPropriedades do nó selecionado (ou da árvore, sem seleção), Variáveis e Verificar.

Desenhar e organizar

  • Criar um filho: clique no + da borda do nó e escolha o tipo, ou selecione o nó e use as teclas D, C, R ou O.
  • Editar texto: clique duplo no nó ou no rótulo do ramo. No toque, toque duas vezes.
  • Mudar de pai: arraste o nó sobre outro nó, ou arraste o + de um nó até outro. O nó leva tudo o que está abaixo dele. O app recusa ligações que criariam um ciclo.
  • Reordenar ramos: use as setas em Ramos de saída. Em uma regra, a ordem muda o resultado.
  • Recolher: clique no − no canto do nó para esconder o que está abaixo. O nó passa a mostrar quantos ficaram escondidos.
  • Layout: o layout é automático até você arrastar um nó para um espaço vazio. Aí ele passa a ser manual, até você usar Organizar ▾ → Reorganizar agora. O mesmo menu troca entre Na horizontal e Na vertical.

Cada nó tem um único pai, e os caminhos só se abrem, nunca se juntam, como é próprio de uma árvore. [2] Se dois caminhos levam à mesma situação, copie o ramo com Copiar ramo e Colar como filho.

Nós e ramos: os campos

Um ramo pertence ao nó de destino. Por isso, os campos do ramo aparecem quando você seleciona o filho, ou clica na linha.

CampoOndeO que faz
Pergunta ou títuloNóO texto do nó.
DescriçãoNóExplicação que aparece na simulação e na documentação.
ValorResultadoNúmero ou expressão somado ao total do caminho. Vazio conta como 0.
CategoriaResultadoRótulo livre, como Aprovado ou P1.
Ação recomendadaResultadoMensagem final. Trechos entre chaves são calculados: {x * 2}.
Rótulo do ramoRamoO nome da opção ou do caso.
ProbabilidadeRamo de incertezaAceita 0.3, 0,3, 30% ou uma expressão. Vazio divide o que falta para 100%.
CondiçãoRamo de regraVale o primeiro ramo verdadeiro. Vazio é o “senão”.
Disponível seRamo de decisãoQuando for falso, a opção fica indisponível.
Valor do ramoRamoSoma ao total ao passar pelo ramo.
Alterar variáveisRamoUma atribuição por linha, como pd = 0.02. Vale daqui em diante neste caminho.
Pausar a execução neste nóNóFaz ▶ Executar parar ao chegar aqui.

Variáveis e expressões

Em cada variável, Valor é o usado na análise e no passo a passo. Distribuição no Monte Carlo é opcional e só vale nas execuções do Monte Carlo. Marque Perguntar ao iniciar o passo a passo para informar o valor a cada simulação, e a análise é recalculada com ele.

RecursoExemplos
Aritmética+ - * / % ^
Comparação== != < <= > >=
Lógicaand or not, condicao ? a : b
Funçõesmin max abs round floor ceil sqrt pow
Sorteiosrandom(a, b), normal(m, s), triangular(a, m, b), exponential(m), randint(a, b), chance(p)

Nas expressões, o decimal é com ponto, porque a vírgula separa argumentos: min(1.5, 2). Na análise, um sorteio vale a sua média.

Como o valor esperado é calculado

Valor esperado é a média dos valores possíveis, ponderada pelas probabilidades. [4] O app calcula da direita para a esquerda, começando nos resultados:

A árvore do notebook com os valores: a incerteza vale 0,7 × 800 + 0,3 × 3.800 = 1.700; a decisão fica com o menor valor entre 1.700 e 3.000; a regra segue o ramo Não, porque o aparelho está fora da garantia.
O cálculo da árvore do roteiro, passo a passo.
  • Um resultado vale o total do caminho: valores dos ramos mais o valor dele.
  • Uma incerteza vale a média dos ramos, ponderada pelas probabilidades.
  • Uma decisão vale o melhor ramo disponível, conforme o objetivo. Em caso de empate, fica o primeiro.
  • Uma regra vale o ramo escolhido pela condição, com os valores atuais das variáveis.

O resultado é um plano: o que escolher em cada decisão. No diagrama, os ramos escolhidos ficam verdes e mais grossos, e os descartados recebem //. O plano mostra a melhor escolha na média, sem considerar o quanto você tolera risco.

Verificar o modelo

A aba Verificar lista os problemas enquanto você edita. O número na aba mostra quantos há. Clique em um problema para ir até o nó. Erros impedem o cálculo daquela parte da árvore; alertas apontam algo provavelmente esquecido.

Aba Verificar com um erro: a probabilidade 1.2 está fora de 0 a 1; no diagrama, o nó afetado tem borda tracejada e os nós acima mostram sem valor
Uma probabilidade de 1.2 digitada de propósito: o nó fica com borda tracejada, e os nós acima ficam sem valor.

A verificação confere se o modelo pode ser calculado, não se ele está certo. Uma probabilidade errada, mas válida, passa sem aviso.

Simular passo a passo

ControleO que faz
PassoAvança um nó.
▶ ExecutarAvança sozinho, na velocidade escolhida. Para nas decisões que dependem de você e nas pausas.
VoltarDesfaz o último passo, inclusive o sorteio.
ReiniciarRecomeça da raiz, com a mesma semente.
Clique em um nóFora das opções, liga ou desliga uma pausa nele. Nas opções, faz a escolha.
Linha da tabelaVolta até aquele passo.

Em Como executar, você escolhe quem decide:

  • Decisões: eu escolho, seguir o plano da análise ou ao acaso.
  • Incertezas: sorteio ou eu escolho o que acontece, para testar um caminho específico.
  • Semente: a mesma semente repete os mesmos sorteios. Nova semente sorteia outra.

O passo a passo serve para conferir a lógica e explicar a árvore a outra pessoa: cada linha mostra as condições avaliadas, o número sorteado e as variáveis alteradas.

Caminhos

A aba Caminhos lista todos os caminhos da raiz até o fim, com probabilidade e total. Clique em uma linha para destacá-la no diagrama. O notebook tem 4 caminhos. A coluna de situação indica se o caminho está no plano, fora dele ou inativo com os valores atuais, como o ramo Sim da garantia.

Aba Caminhos com os quatro caminhos do notebook, cada um com probabilidade, total e situação
Os quatro caminhos do notebook.

A probabilidade conta só as incertezas do caminho, supondo que as decisões dele foram tomadas. Exportar CSV leva a lista para uma planilha.

Monte Carlo

O método de Monte Carlo obtém resultados numéricos por amostragem aleatória repetida. [5] Aqui, ele percorre a árvore muitas vezes, sorteando as incertezas e as distribuições das variáveis, e mostra a distribuição do total.

O plano é calculado uma vez, com os valores das variáveis, e fica fixo. Ele representa decidir antes de saber o valor sorteado. Por isso, a média pode diferir do valor esperado.

Medição no notebook (semente 12345)MédiaMargem (95%)
5.000 execuções, com distribuiçãoR$ 1.857,4± R$ 38,73
20.000 execuções, com distribuiçãoR$ 1.826,7± R$ 19,22
20.000 execuções, sem a distribuiçãoR$ 1.699,1± R$ 19,05

A tabela mostra duas coisas. Com quatro vezes mais execuções, a margem caiu à metade nesta medição. E, sem a distribuição, a média fica perto dos R$ 1.700 calculados; com ela, fica perto de 1.833, que é a média 933 do conserto mais 0,3 × 3.000. A margem mede o erro da amostragem. Ela não diz se as suas probabilidades estão certas.

Na tabela Como termina, a coluna Probabilidade traz o valor calculado, para comparar com a frequência. Ela mostra — quando uma distribuição altera probabilidades ou condições, porque aí o valor calculado não descreve as execuções. Mostrar frequências no diagrama engrossa os ramos mais percorridos.

Sensibilidade

Análise de sensibilidade estuda como a incerteza nas entradas de um modelo afeta o resultado. [6] Ela importa aqui porque árvores são instáveis: uma pequena mudança nos dados pode mudar bastante a melhor decisão. [2]

A aba Sensibilidade varia uma variável numérica, recalcula a análise em cada ponto e desenha o valor de cada alternativa da decisão escolhida. Em Pontos de virada, o app indica onde a melhor alternativa muda. Esses pontos são interpolados entre amostras vizinhas: aumente Pontos para mais precisão.

Se a virada estiver longe da sua estimativa, a decisão é robusta quanto a essa variável. Se estiver perto, vale buscar uma estimativa melhor antes de decidir.

Gerar a documentação

O documento é gerado a partir da árvore, no idioma ativo. Marque em Seções o que deve entrar.

SeçãoConteúdo
Visão geralDescrição, objetivo, escopo, contagens e a conclusão em uma frase.
Como ler a árvoreA legenda dos símbolos.
DiagramaA árvore inteira, com valores.
ProcedimentoA árvore escrita como instruções.
Tabela de regrasCada caminho como “se isto, então aquilo”.
Dicionário de nós e Dicionário de variáveisTodos os campos preenchidos.
Análise por valor esperadoPlano, alternativas e perfil de risco.
Simulação Monte Carlo e Análise de sensibilidadeO último resultado, se ainda for da árvore atual.
Verificação do modelo, Observações e Histórico de revisõesProblemas abertos, notas e versões.

Em Identificação, preencha autor, área, objetivo e escopo. Exporte com Imprimir / PDF, HTML, Markdown ou Copiar MD. No Markdown, o diagrama vai em Mermaid [7] e os gráficos ficam de fora.

Salvar, abrir e exportar

Em ArquivoResultado
Salvar (.json) Ctrl+SA árvore completa, para guardar ou enviar. É o único backup real.
Abrir (.json)…Abre uma árvore salva, substituindo a atual, depois de confirmar.
Exportar diagrama (SVG) e Exportar diagrama (PNG)Imagem do diagrama, sem depender da tela.
Exportar diagrama (Mermaid)Texto para colar em ferramentas que usam Mermaid.
Exportar caminhos (CSV)Os caminhos para planilha, separados por ponto e vírgula.

A árvore no navegador some se você limpar os dados do site. Salve em JSON o que importa.

Prompts de IA

Uma IA ajuda a sair da página em branco, a transformar um texto em árvore e a achar o que faltou. Ela também erra com segurança: inventa probabilidades, esquece alternativas e conta custos duas vezes. Trate a saída como rascunho de um colega apressado. Para escrever prompts melhores, veja o tutorial de prompts.

Seis passos: você descreve a decisão, a IA entrevista e monta o JSON, o app abre o arquivo, o app verifica e calcula, você revisa as hipóteses e você decide. Da revisão, é possível voltar à IA.
A IA entra no rascunho e na revisão. O app confere as contas, e a decisão é sua.

Antes de colar: decisões internas podem conter valores, nomes e estratégias sigilosas. Troque por dados fictícios e siga a política da sua organização para uso de IA. O app não envia nada para a rede, mas o serviço de IA recebe o que você colar nele.

Troque os trechos entre colchetes e cole na ferramenta de IA que você usa.

1. Entrevistar antes de montar

Faz a IA descobrir o que falta, em vez de supor. É o melhor começo quando a decisão ainda está na cabeça das pessoas.

Você é um analista de decisão experiente em árvores de decisão.
Quero estruturar esta decisão: [descreva em poucas frases].

Antes de propor qualquer árvore, me entreviste:
- Faça uma pergunta por vez e espere minha resposta.
- Cubra: o objetivo e como medi-lo (lucro, custo, prazo), se ele deve ser maximizado ou minimizado, as alternativas (inclusive não fazer nada), as incertezas de cada alternativa, o que se saberá antes de cada decisão, os critérios objetivos que definem um caminho sem precisar escolher, e os custos e ganhos.
- Para cada incerteza, garanta casos que se excluem e cobrem todas as possibilidades.
- Não invente números. Se eu não souber, registre como pendência.

Ao final, entregue: objetivo e unidade; alternativas; incertezas com seus casos; regras com suas condições; variáveis com valor ou pendência; a ordem dos acontecimentos.

2. Transformar um texto em regras

Para políticas, procedimentos e critérios de triagem. Pede a origem de cada regra e aponta os casos sem resposta.

A partir do texto abaixo, extraia regras para uma árvore de decisão.

Texto:
[cole a política, o procedimento ou a ata]

Entregue:
1. Tabela com: ordem, condição, resultado e o trecho do texto que sustenta a regra.
2. Dados necessários para avaliar as condições, com nome de variável e tipo.
3. Casos que o texto não cobre, e casos em que duas regras valem ao mesmo tempo.
4. Perguntas para esclarecer cada lacuna.

Regras:
- As condições são avaliadas em ordem, e vale a primeira verdadeira; indique se a ordem muda o resultado.
- Não preencha lacunas por conta própria. O que não estiver no texto vai para as perguntas.

3. Gerar a árvore em JSON

Transforma o que você reuniu em um arquivo que o app abre. Cole o resultado do prompt 1 ou 2 no fim.

Gere uma árvore de decisão em JSON para o Decision Tree Simulator, a partir das informações no fim.

Responda só com o JSON, sem comentários e sem cercas de código.

Formato:
- Raiz do arquivo: "app" (sempre "decision-tree-simulator"), "name", "objective" ("max" ou "min"), "unit", "vars", "root" (id do nó raiz) e "nodes".
- "nodes" é um objeto cujas chaves são os ids (n1, n2...). Todo nó tem "type", "text", "parent" (null só na raiz) e "kids" (lista de ids, na ordem dos ramos). Pai e filhos precisam concordar.
- "type" é "decision" (alguém escolhe), "chance" (o acaso escolhe), "rule" (uma condição escolhe) ou "outcome" (fim do caminho, sem filhos).
- Os dados do ramo ficam no nó filho: "label"; "cash" (valor somado ao passar pelo ramo); "prob" (se o pai for chance); "guard" (se o pai for rule).
- "prob": número de 0 a 1 ou expressão. Deixe "" em um único ramo para receber o restante. As probabilidades precisam somar 1.
- "guard": vale a primeira condição verdadeira, na ordem. Deixe "" no último ramo, como "senão".
- Em "outcome": "value" (obrigatório), "cat" (categoria) e "msg" (ação recomendada).
- "vars": lista com "name" (letras, números e _), "value", "desc" e, se fizer sentido, "dist" (triangular(a, m, b), normal(m, s), random(a, b)) e "ask" com "prompt" para dados informados a cada simulação.

Regras:
- Use decimal com ponto. Expressões aceitam + - * / ^, comparações, and, or, not, min, max e round.
- Ao maximizar lucro, custo é negativo. Ao minimizar custo, custo é positivo. Não conte o mesmo valor em dois lugares.
- Declare em "vars" toda variável usada, e prefira variáveis a repetir números.
- Em "desc", diga se o valor foi informado por mim ou é hipótese sua. Não invente fontes.

Exemplo do formato:
{
  "app": "decision-tree-simulator",
  "name": "Exemplo",
  "objective": "max",
  "unit": "R$",
  "vars": [
    {"name": "p_ok", "value": "0.6", "desc": "hipótese"}
  ],
  "root": "n1",
  "nodes": {
    "n1": {"type": "decision", "text": "Investir?", "parent": null, "kids": ["n2", "n5"]},
    "n2": {"type": "chance", "text": "Dá certo?", "parent": "n1", "kids": ["n3", "n4"], "label": "Investir", "cash": "-100"},
    "n3": {"type": "outcome", "text": "Retorno", "parent": "n2", "kids": [], "label": "Sim", "prob": "p_ok", "value": "300"},
    "n4": {"type": "outcome", "text": "Perda", "parent": "n2", "kids": [], "label": "Não", "prob": "", "value": "0"},
    "n5": {"type": "outcome", "text": "Sem investimento", "parent": "n1", "kids": [], "label": "Não investir", "value": "0"}
  }
}

Informações:
[cole o resultado do prompt 1 ou 2, ou descreva a decisão]

4. Estimar probabilidades e valores

Sem dados reais, qualquer número é hipótese. Este prompt deixa isso visível e prepara as distribuições do Monte Carlo.

Preciso de estimativas para esta árvore de decisão.

Decisão: [descreva]
Valores que faltam: [liste as variáveis e o que cada uma significa]

Para cada valor, entregue uma tabela com: mínimo, mais provável, máximo, em que você se baseou, o que me daria um número melhor e sua confiança (baixa, média ou alta).

Regras:
- Tudo é hipótese até eu confirmar. Diga isso claramente.
- Não cite estudos, números de mercado ou fontes que você não possa indicar com precisão. Sem base, diga "sem base" e dê só a faixa.
- Para cada variável, sugira a distribuição no formato triangular(mínimo, mais provável, máximo).
- Nas probabilidades de uma mesma incerteza, confira se os casos somam 100%. Se uma probabilidade depender de um teste anterior, confira se as probabilidades combinadas fazem sentido.
- Indique as 3 variáveis que eu deveria testar primeiro na análise de sensibilidade, e por quê.

5. Revisar a árvore

Cole o JSON salvo ou o Markdown da documentação. É uma segunda opinião sobre a estrutura, não uma aprovação.

Revise esta árvore de decisão como um analista de decisão experiente.

Árvore:
[cole o JSON ou o Markdown da documentação]

Procure:
- Alternativas que faltam, inclusive não fazer nada ou adiar.
- Ordem errada: decisões tomadas antes de uma informação que já estaria disponível, ou o contrário.
- Casos de uma incerteza que se sobrepõem ou não cobrem tudo.
- Probabilidades incoerentes entre ramos, ou otimistas sem justificativa.
- Valores contados duas vezes, unidades misturadas e sinal errado para o objetivo.
- Regras com lacunas, condições que nunca são alcançadas ou ordem que muda o resultado.
- Resultados que não são comparáveis entre si.

Entregue uma tabela com: número do nó, problema, por que importa, sugestão e gravidade (alta, média ou baixa). Não reescreva a árvore. Não confirme que está certa só porque não achou problemas: diga o que não dá para avaliar sem mais dados. Termine com as 3 perguntas que eu deveria responder antes de decidir.

6. Explicar o resultado

Cole o Markdown da documentação, com o Monte Carlo e a sensibilidade já executados, para quem vai decidir.

Explique o resultado desta análise para [público, como: diretoria, equipe, cliente].

Documentação:
[cole o Markdown gerado pelo app]

Escreva em até uma página:
1. A decisão, em uma frase.
2. A alternativa indicada e a diferença para a segunda.
3. O que pode dar errado, com a probabilidade e o valor de cada caso.
4. As hipóteses que mais pesam e os pontos de virada.
5. O que eu faria para reduzir a incerteza antes de decidir.

Regras:
- Use só números que estão no documento, sem criar novos.
- Valor esperado é média ponderada, não previsão: não escreva que "vamos ganhar" esse valor.
- Separe o que foi calculado do que é hipótese. Lembre que os números são resultado de um modelo, não medições.
- Sem jargão: explique Monte Carlo e sensibilidade em uma frase, se precisar citá-los.

Como abrir o JSON gerado no prompt 3

  1. Copie a resposta da IA para um editor de texto e salve com a extensão .json, por exemplo arvore.json.
  2. No app, use Arquivo ▾ → Abrir (.json)…. Se já houver uma árvore, confirme a substituição; salve antes o que quiser manter.
  3. Abra a aba Verificar e confira cada alerta.
SintomaCausaSolução
“Não foi possível abrir”, com erro de JSONA resposta tem texto ou as cercas ``` em volta do JSON.Salve só do primeiro { ao último }.
“o arquivo não é uma árvore deste app”Falta "app": "decision-tree-simulator", ou algum tipo de nó é inválido.Peça para a IA corrigir conforme o formato do prompt.
Quase todos os nós aparecem soltosO campo parent falta ou não combina com kids.Peça: “todo nó precisa de parent, e kids precisa concordar com ele”.
“nada a define neste caminho”A IA usou uma variável sem declarar em vars.Declare em Variáveis, ou peça a correção.
↑ Voltar ao topo

Atalhos de teclado

ModoTeclaAção
Editar← → ↑ ↓Navegar na árvore. Com Alt, reordenar irmãos.
EditarD C R OCriar filho: decisão, incerteza, regra ou resultado.
EditarSCriar irmão.
EditarEnter ou F2Editar o texto.
EditarEspaçoRecolher ou expandir.
EditarDeleteExcluir o nó e tudo abaixo.
EditarCtrl + C X V DCopiar, recortar, colar e duplicar.
EditarCtrl + Z YDesfazer e refazer.
EditarF + −Ajustar e zoom.
SimularN ou →Passo.
SimularB ou ←Voltar.
SimularRReiniciar.
Simular1 a 9Escolher a opção.
SimularEspaçoExecutar ou pausar.
TodosCtrl + SSalvar em JSON.

Os atalhos de edição valem com o foco no diagrama: clique nele antes, ou use Tab até chegar lá.

Erros comuns e limitações

Erros de modelagem

  • Ler o valor esperado como previsão. No notebook, ninguém paga R$ 1.700: paga-se R$ 800 ou R$ 3.800.
  • Contar duas vezes. Um custo no ramo e de novo no resultado entra duas vezes no total.
  • Trocar o sinal. Custo positivo ao maximizar, ou negativo ao minimizar, inverte a recomendação.
  • Casos que se sobrepõem. Os ramos de uma incerteza precisam ser excludentes e cobrir tudo. O app confere a soma, não o sentido.
  • Confiar em um único número. As probabilidades são hipóteses suas: rode a sensibilidade nas que forem mais incertas.

Quando algo não funciona

SintomaCausaSolução
Nós mostram “sem valor”Há um erro abaixo deles.Abra Verificar e clique no erro.
“somam 70%, não 100%”Todas as probabilidades estão preenchidas e não fecham.Corrija, ou deixe uma vazia para receber o restante.
“nada a define neste caminho”Nome de variável errado, ou variável só alterada em outro ramo.Confira o nome em Variáveis.
Regra para com erro na simulaçãoNenhuma condição foi verdadeira, e não há “senão”.Crie um ramo com Condição vazia.
Sensibilidade não abreFalta uma decisão com ramos ou uma variável numérica.Declare a variável com um número em Valor.
Média do Monte Carlo difere do valor esperadoAs distribuições têm média diferente do valor da variável.Esperado: veja a seção Monte Carlo.
A árvore não se reorganiza maisO layout passou a manual.Organizar ▾ → Reorganizar agora.
Nó aparece como “solto”Ele não tem pai e não é a raiz.Arraste-o sobre um nó, ou use Tornar raiz.

Limitações

  • Só árvores: sem laços nem caminhos que se juntam. Para processos com repetição, use o Flowchart Simulator. [8]
  • A análise é neutra ao risco: compara médias, sem função de utilidade.
  • Árvores grandes ficam difíceis de ler e de manter [2]; o app aceita até 2.000 nós, e as tabelas de caminhos na tela e no documento mostram até 500.
  • O app não cria a árvore a partir de dados.

Revisão rápida

Tente responder antes de abrir cada pergunta.

1. Qual é a diferença entre decisão, incerteza e regra?

Na decisão, uma pessoa escolhe. Na incerteza, o acaso escolhe pelas probabilidades. Na regra, uma condição sobre as variáveis escolhe sozinha.

2. O que acontece com uma probabilidade vazia?

Ela recebe o que falta para 100%. Se houver mais de uma vazia, o restante é dividido igualmente entre elas.

3. O valor esperado do notebook é R$ 1.700. Quanto você vai pagar se consertar?

R$ 800 ou R$ 3.800. O valor esperado é a média ponderada dos dois, não um dos desfechos.

4. Por que o Monte Carlo deu perto de 1.833, e não de 1.700?

Porque o custo do conserto é sorteado de uma distribuição triangular de média 933, enquanto o cálculo usa o valor 800 da variável.

5. O que o ponto de virada informa?

O valor da variável em que a melhor alternativa muda. Quanto mais longe da sua estimativa, mais robusta é a decisão quanto a essa variável.

6. Por que usar a mesma semente?

Porque ela repete os mesmos sorteios. Assim, os resultados podem ser reproduzidos e comparados.

7. A árvore gerada pela IA abriu sem erros. Ela está certa?

Não necessariamente. Isso mostra que o arquivo é válido e pode ser calculado. As alternativas, as probabilidades e os valores continuam sendo hipóteses a revisar.

↑ Voltar ao topo

Referências

  1. Giovani Perotto Mesquita, “Decision Tree Simulator”, aplicativo em um único arquivo HTML, giovanipm.github.io/decision-tree-simulator.html.
  2. Wikipedia (em inglês), “Decision tree”, acesso em 01/11/2026, en.wikipedia.org/wiki/Decision_tree.
  3. Wikipedia (em inglês), “Decision analysis”, acesso em 01/11/2026, en.wikipedia.org/wiki/Decision_analysis.
  4. Wikipedia (em inglês), “Expected value”, acesso em 01/11/2026, en.wikipedia.org/wiki/Expected_value.
  5. Wikipedia (em inglês), “Monte Carlo method”, acesso em 01/11/2026, en.wikipedia.org/wiki/Monte_Carlo_method.
  6. Wikipedia (em inglês), “Sensitivity analysis”, acesso em 01/11/2026, en.wikipedia.org/wiki/Sensitivity_analysis.
  7. Mermaid, “Flowcharts Syntax”, documentação, acesso em 01/11/2026, mermaid.js.org/syntax/flowchart.html.
  8. Giovani Perotto Mesquita, “Flowchart Simulator: tutorial”, tutorial deste site, giovanipm.github.io/FlowchartSimulator.html.
↑ Voltar ao topo