Leanpub Header

Skip to main content

SimPy: Simulação em Python

Um guia prático

Aprenda a construir modelos de simulação de eventos discretos e de simulação baseadas em agentes utilizando o SimPy, uma biblioteca da linguagem Python.

Minimum price

Free!

$17.00

You pay

$17.00

Author earns

$13.60
$

...Or Buy With Credits!

You can get credits monthly with a Reader Membership
PDF
EPUB
WEB
125
Readers
233
Pages
About

About

About the Book

A obra SimPy: Simulação em Python apresenta a biblioteca SimPy para construção de modelos de simulação de eventos discretos em Python.

Ao longo dos seus capítulos, são apresentados os conceitos fundamentais da biblioteca, seus principais comandos por meio de exemplos e, ao final de cada capítulo, são propostos exercícios práticos resolvidos na forma de desafios e exercícios adicionais para que o leitor teste seu conhecimento.

Além dos fundamentos da biblioteca, a obra também apresenta alguns tópicos avançados, tais como: simulação de agentes e otimização e simulação.

Share this book

Author

About the Author

Afonso C. Medina

Afonso C. Medina é graduado em Engenharia Naval pela Escola Politécnica da Universidade de São Paulo e Mestre pela USP. Especialista nas áreas de Pesquisa Operacional e Logística, foi pesquisador do Laboratório de Planejamento e Operações de Transportes – LPT/USP e do Centro de Inovação em Logística e Infraestrutura Portuária – CILIP do Departamento de Engenharia Naval da Escola Politécnica da USP. Foi responsável por disciplinas de graduação de Métodos de Otimização da Escola Politécnica da Universidade de São Paulo. Atualmente, é consultor na área de Logística e Otimização na Genoa, tendo já realizado projetos para diversas empresas, tais como: Petrobras, VALE, CSN, Rumo, Suzano, ADM, Natura, Codesp, Promon, DER, Prefeitura-SP, CBTU, Porto de Santos, FIA-USP, dentre outras.

Contents

Table of Contents

    • 1See me, Fell me, README
    • 2Apresentação
      • 2.1Por que utilizar o SimPy?
      • 2.2Prós e contras
      • 2.3Um breve histórico do SimPy
      • 2.4Onde procurar ajuda sobre o SimPy
      • 2.5Como utilizar este livro
    • 3Instalando o SimPy
      • 3.1Passo 1: Anaconda, the easy way
      • 3.2Passo 2: Instalando o Pip (para quem não instalou o Anaconda)
      • 3.3Passo 3: Instalando o SimPy
      • 3.4Passo 4: Instalando algum Ambiente Integrado de Desenvolvimento (IDE)
    • 4Tudo depende do Python
      • 4.1Teste seus conhecimentos em Python: o problema da ruína do apostador
      • 4.2Desafios
      • 4.3Solução do desafio 1
      • 4.4Teste seus conhecimentos
    • 5Primeiros passos em SimPy: criando entidades
      • 5.1Chamada das bibliotecas random e simpy
      • 5.2Criando um environment de simulação
      • 5.3Criando um gerador de chegadas dentro do environment
      • 5.4Criando intervalos de tempo de espera com env.timeout(tempo_de_espera)
      • 5.5Executando o modelo por um tempo determinado com env.run(until=tempo_de_simulacao)
      • 5.6Conceitos desta seção
      • 5.7Desafios
      • 5.8Solução dos desafios 2 e 3
      • 5.9Teste seus conhecimentos
    • 6Criando, ocupando e desocupando recursos
      • 6.1Criando
      • 6.2Ocupando
      • 6.3Desocupando
      • 6.4Status do recurso
      • 6.5Conceitos desta seção
    • 7Juntando tudo em um exemplo: a fila M/M/1
      • 7.1Geração de chegadas de entidades
      • 7.2Realizando o atendimento no servidor
      • 7.3Uma representação alternativa para a ocupação e desocupação de recursos
      • 7.4Conceitos desta seção
      • 7.5Desafios
      • 7.6Solução dos desafios 4, 5 e 6
      • 7.7Teste seus conhecimentos
    • 8Atributos e variáveis: diferenças em SimPy
      • 8.1Atributos em modelos orientados ao objeto
      • 8.2Conceitos desta seção
      • 8.3Desafios
      • 8.4Solução dos desafios 7 e 8
      • 8.5Teste seus conhecimentos
    • 9Environments: controlando a simulação
      • 9.1Controle de execução com env.run(until=fim_da_simulação)
      • 9.2Parada por execução de todos os processos programados
      • 9.3Parada por fim de execução de processo específico por env.run(until=processo)
      • 9.4Simulação passo a passo: peek & step
      • 9.5Conceitos desta seção
      • 9.6Desafios
      • 9.7Solução dos desafios 9 e 10
    • 10Outros tipos de recursos: com prioridade e preemptivos
      • 10.1Recursos com prioridade: PriorityResource
      • 10.2Recursos que podem ser interrompidos: PreemptiveResource
      • 10.3Conceitos desta seção
      • 10.4Desafios
      • 10.5Solução dos desafios 11 e 12
    • 11Interrupções de processos: simpy.Interrupt
      • 11.1Criando quebras de equipamento
      • 11.2Interrompendo um processo sem captura por try…except
      • 11.3Conceitos desta seção
      • 11.4Desafios
      • 11.5Solução dos desafios 13 e 14
      • 11.6Teste seus conhecimentos
    • 12Armazenagem e seleção de objetos específicos com Store, FilterStore e PriorityStore
      • 12.1Construindo um conjunto de objetos com Store
      • 12.2Selecionando um objeto específico com FilterStore()
      • 12.3Criando um Store com prioridade: PriorityStore
      • 12.4Conceitos desta seção
      • 12.5Desafios
      • 12.6Solução dos desafios 15 e 16
      • 12.7Teste seus conhecimentos
    • 13Enchendo ou esvaziando caixas, tanques, estoques ou objetos com Container()
      • 13.1Enchendo o meu container yield meuContainer.put(quantidade)
      • 13.2Esvaziando o meu container: yield meuContainer.get(quantidade)
      • 13.3Criando um sensor para o nível atual do container
      • 13.4Conceitos desta seção
      • 13.5Desafios
      • 13.6Solução dos desafios 17 e 18
      • 13.7Teste seus conhecimentos
    • 14Criando lotes (ou agrupando) entidades durante a simulação
      • 14.1Uma tática para agrupamento de lotes utilizando o Container
      • 14.2Agrupando lotes por atributo da entidade utilizando o FilterStore
      • 14.3Desafios
      • 14.4Solução dos desafios 19 e 20
      • 14.5Teste seus conhecimentos
    • 15Criando, manipulando e disparando eventos com event()
      • 15.1Criando um evento isolado com event()
      • 15.2Conceitos desta seção
      • 15.3Desafios
      • 15.4Solução dos desafios 21 e 22
      • 15.5Teste seus conhecimentos
    • 16Aguardando múltiplos eventos ao mesmo tempo com AnyOf e AllOf
      • 16.1Aguardando até que, ao menos, um evento termine com AnyOf
      • 16.2Aguardando todos os eventos com AllOf
      • 16.3Comprendendo melhor as saídas dos comandos AllOf e AnyOf
      • 16.4Conceitos desta seção
      • 16.5Desafios
      • 16.6Solução dos desafios 23 e 24
      • 16.7Teste seus conhecimentos
    • 17Propriedades úteis dos eventos
      • 17.1Conceitos desta seção
      • 17.2Desafios
      • 17.3Solução do desafio 25
      • 17.4Teste seus conhecimentos
    • 18Adicionando callbacks aos eventos
      • 18.1Todo processo é um evento
      • 18.2Conceitos desta seção
      • 18.3Desafios
      • 18.4Solução do desafio 26
      • 18.5Teste seus conhecimentos
    • 19Interrupções de eventos
      • 19.1Interrompendo um evento com o método interrupt
      • 19.2Interrompendo um evento com o método fail
    • 20O que são funções geradoras? (ou como funciona o SimPy) - Parte I
      • 20.1Iterador
      • 20.2Funções geradoras
    • 21O que são funções geradoras? (ou como funciona o SimPy?) - Parte II
      • 21.1SimPy vs. funções geradoras
    • 22Simulação Baseada em Agentes usando o SimPy
      • 22.1Como construir um modelo de simulação de agentes: passos básicos
      • 22.2Modelo epidêmico baseado em agentes: o modelo SIR
      • 22.3Modelagem do problema no SimPy
      • 22.4Melhorando o desempenho do código de simulação
      • 22.5Como seguir a partir daqui
      • 22.6Conceitos desta seção
      • 22.7Desafios
      • 22.8Solução dos Desafios 27 e 28
      • 22.9Teste seus conhecimentos

Get the free sample chapters

Click the buttons to get the free sample in PDF or EPUB, or read the sample online here

The Leanpub 60 Day 100% Happiness Guarantee

Within 60 days of purchase you can get a 100% refund on any Leanpub purchase, in two clicks.

Now, this is technically risky for us, since you'll have the book or course files either way. But we're so confident in our products and services, and in our authors and readers, that we're happy to offer a full money back guarantee for everything we sell.

You can only find out how good something is by trying it, and because of our 100% money back guarantee there's literally no risk to do so!

So, there's no reason not to click the Add to Cart button, is there?

See full terms...

Earn $8 on a $10 Purchase, and $16 on a $20 Purchase

We pay 80% royalties on purchases of $7.99 or more, and 80% royalties minus a 50 cent flat fee on purchases between $0.99 and $7.98. You earn $8 on a $10 sale, and $16 on a $20 sale. So, if we sell 5000 non-refunded copies of your book for $20, you'll earn $80,000.

(Yes, some authors have already earned much more than that on Leanpub.)

In fact, authors have earned over $14 million writing, publishing and selling on Leanpub.

Learn more about writing on Leanpub

Free Updates. DRM Free.

If you buy a Leanpub book, you get free updates for as long as the author updates the book! Many authors use Leanpub to publish their books in-progress, while they are writing them. All readers get free updates, regardless of when they bought the book or how much they paid (including free).

Most Leanpub books are available in PDF (for computers) and EPUB (for phones, tablets and Kindle). The formats that a book includes are shown at the top right corner of this page.

Finally, Leanpub books don't have any DRM copy-protection nonsense, so you can easily read them on any supported device.

Learn more about Leanpub's ebook formats and where to read them

Write and Publish on Leanpub

You can use Leanpub to easily write, publish and sell in-progress and completed ebooks and online courses!

Leanpub is a powerful platform for serious authors, combining a simple, elegant writing and publishing workflow with a store focused on selling in-progress ebooks.

Leanpub is a magical typewriter for authors: just write in plain text, and to publish your ebook, just click a button. (Or, if you are producing your ebook your own way, you can even upload your own PDF and/or EPUB files and then publish with one click!) It really is that easy.

Learn more about writing on Leanpub