Pular para o conteúdo
Skillpedia
Diversos51 mil · #1982

simpy

Permite que seu agente crie e analise simulações de eventos discretos. É útil para modelar sistemas complexos onde eventos acontecem em momentos específicos.

O que ela faz

SimPy é uma ferramenta para criar simulações de sistemas que acontecem ao longo do tempo, como filas de atendimento ou linhas de produção. Ela ajuda a entender como esses sistemas funcionam e a prever problemas.

Quando usar

  • ✓Para simular o tempo de espera em uma fila de banco.
  • ✓Para modelar o fluxo de produtos em uma fábrica.
  • ✓Para analisar o tráfego em uma rede de computadores.

Exemplo do que pedir para a IA

“Simule uma fila de atendimento onde clientes chegam a cada 5 minutos e o atendimento leva em média 3 minutos.”

Quer saber mais? Abra as seções abaixo.

Como usar

O jeito mais fácil: copie a mensagem abaixo e cole no Claude, ChatGPT, Cursor ou outra IA. Ela lê a skill e segue as instruções.

Link da skill

https://github.com/K-Dense-AI/scientific-agent-skills/blob/main/skills/simpy/SKILL.md

Mensagem pronta para colar

Use esta skill para me ajudar: https://github.com/K-Dense-AI/scientific-agent-skills/blob/main/skills/simpy/SKILL.md Leia o arquivo SKILL.md desse link e siga as instruções dele na minha tarefa.
Como funciona

Você descreve os eventos que acontecem (como a chegada de um cliente) e como eles interagem com os recursos disponíveis (como um atendente). SimPy cuida de organizar a ordem e o tempo desses eventos.

Instalação

Jeito mais fácil: copie o link da skill e cole no Claude, ChatGPT ou Cursor pedindo para seguir as instruções.

No terminal (Claude Code, Codex, Cursor), na pasta do projeto:

npx skills add K-Dense-AI/scientific-agent-skills --skill simpy

Ou baixe só o arquivo:

curl -L https://raw.githubusercontent.com/K-Dense-AI/scientific-agent-skills/main/skills/simpy/SKILL.md -o SKILL.md
Conteúdo técnico (SKILL.md)

Tradução do texto original do autor no GitHub. Os comandos e códigos estão como no original.

SimPy

Escopo

Use esta habilidade para modelos de eventos discretos baseados em processos onde entidades ativas cedem eventos e disputam recursos: filas, sistemas de produção, logística, redes, operações de serviço, estoque e outros sistemas orientados a eventos.

SimPy fornece um agendador de eventos e primitivas de modelagem. Ele não escolhe um modelo conceitual cientificamente válido, distribuição de entrada, aquecimento, duração da execução, contagem de replicação, estimativa ou interpretação causal. Trate isso como metodologia de estudo de simulação, não como comportamento da API SimPy.

Versão atual e instalação

Revisado em 2026-10-01 em relação à documentação oficial atual e ao código fonte liberado:

  • Última versão estável: SimPy 4.1.2, lançada no PyPI em 2026-05-24; a tag de origem 4.1.2 aponta para o commit f4381649.
  • Metadados do pacote exigem Python >=3.8 e classificam CPython 3.8-3.14 mais PyPy. SimPy não tem dependências de tempo de execução.
  • 4.1.2 adiciona suporte a Python 3.13/3.14 e correções de teste de interpretador moderno.
  • O upstream e esta habilidade são licenciados sob MIT.

Crie um ambiente reproduzível:

uv venv --python 3.13
source .venv/bin/activate
uv pip install "simpy==4.1.2"
python -c "import importlib.metadata; print(importlib.metadata.version('simpy'))"

Não substitua silenciosamente a compilação da documentação latest: ela pode descrever uma revisão de desenvolvimento não lançada. Use os links versionados para 4.1.2 em references/sources.md.

Fluxo de trabalho do modelo

  1. Defina propósito e estimativas. Declare a decisão/pergunta, limite do sistema, entidades, recursos, estado, saídas, unidades de tempo e evento de término ou alvo de estado estacionário.
  2. Escreva um modelo conceitual primeiro. Registre suposições, distribuições, roteamento, prioridades, condições iniciais e mecanismos omitidos.
  3. Implemente geradores. Um processo SimPy é um gerador Python que produz eventos. Registre o objeto gerador com env.process(...).
  4. Limite a execução. Dê a cada execução de produção limites explícitos de tempo, entidade, evento e replicação. Nunca chame env.run() em um modelo contendo um processo infinito. Um horizonte de tempo sozinho não pode parar um loop yield env.timeout(0) infinito: eventos continuam a ser executados no mesmo tempo de simulação. Adicione uma guarda de contagem de eventos ou de não-progresso-de-tempo, e espere por eventos de mudança de estado em vez de polling ocupado de atraso zero.
  5. Separe fluxos aleatórios. Use instâncias de RNG locais para fontes estocásticas logicamente distintas; mantenha um manifesto de sementes.
  6. Instrumente deliberadamente. Observe o estado após a transição de interesse, feche intervalos ponderados pelo tempo no horizonte e teste que o monitoramento não altera a ordem dos eventos.
  7. Verifique e valide. Teste casos de borda determinísticos, identidades de conservação, rastreamentos, disciplina de fila e benchmarks analíticos; compare com evidências do sistema ou de especialistas para o propósito declarado.
  8. Execute réplicas independentes. Faça intervalos a partir de estimativas em nível de replicação, não entidades correlacionadas dentro de uma única execução.
  9. Relate limitações. Inclua inicialização, entidades inacabadas, duração da execução, sementes/fluxos, precisão, sensibilidade e evidências de validação. Nunca converta associação de simulação em uma alegação causal.

Leia references/simulation-methodology.md antes de fazer alegações inferenciais.

Modelo limitado mínimo

import random
import simpy

HORIZON = 480.0
arrival_rng = random.Random(101)
service_rng = random.Random(202)
env = simpy.Environment()
server = simpy.Resource(env, capacity=2)
completed = []

def customer(arrival):
    with server.request() as request:
        yield request
        wait = env.now - arrival
        yield env.timeout(service_rng.expovariate(1 / 6.0))
    completed.append((env.now, wait))

def arrivals():
    for _ in range(10_000):  # Entity cap.
        delay = arrival_rng.expovariate(1 / 4.0)
        if env.now + delay >= HORIZON:
            return
        yield env.timeout(delay)
        env.process(customer(env.now))

env.process(arrivals())
env.run(until=HORIZON)

O horizonte numérico é semiaberto: eventos normais agendados exatamente em 480.0 são não processados. Relate entidades inacabadas em vez de tratá-las silenciosamente como observações completas.

Semântica principal

Ambiente e ordenação determinística

Environment é de thread única. A fila é ordenada por tempo de simulação, prioridade do evento, então um ID de evento estritamente crescente. Eventos de mesmo tempo e mesma prioridade são portanto processados FIFO na ordem de agendamento. Processos do modelo podem representar

…

Perguntas frequentes

O que é um 'processo' no SimPy?

Um processo é uma sequência de ações que acontecem em um sistema simulado, como um cliente esperando na fila e depois sendo atendido.

Como o SimPy sabe quando as coisas acontecem?

Ele usa um 'agendador de eventos' que organiza todas as ações futuras e as executa na ordem correta de tempo.

Posso simular coisas que acontecem ao mesmo tempo?

Sim, SimPy permite modelar múltiplos eventos e interações que podem ocorrer simultaneamente, mas ele os processa um de cada vez de forma organizada.

Detalhes

Descrição original do autor

Builds, inspects, tests, and analyzes bounded process-based discrete-event simulations with SimPy. Use for event scheduling, resource queues, interrupts, monitoring, independent replications, warm-up, and reproducible output analysis.

repo: K-Dense-AI/scientific-agent-skills

Popularidade

Estrelas no GitHub
51 mil
Posição no ranking
#1982
Licença
MIT
Atualizada em
15/10/2026

Essa skill é útil?

0

Entre para votar.

Comentários

  • …

Mais skills deste repositório

Skills parecidas