ComeçarComece de graça

Modelando um posto de gasolina: geradores em Python

Considere que um cliente quer construir um posto de gasolina e você foi convidado a criar um modelo de eventos discretos para ajudar a determinar o número ideal de bombas e o tamanho do tanque de combustível comum usado pelas bombas. Esse modelo requer simular a chegada dos carros ao posto e os recursos do posto: as bombas e o tanque de combustível. Neste exercício, vamos focar nas duas etapas a seguir:

Etapa 1: Criar um gerador para simular a chegada dos carros ao posto, solicitando uma bomba e abastecendo os tanques dos carros.

Etapa 2: Criar um gerador para verificar o nível do tanque e solicitar um caminhão de reabastecimento quando necessário. Além disso, é preciso modelar o comportamento do caminhão de reabastecimento.

No próximo exercício, você irá criar o ambiente do SimPy, adicionar processos e recursos e executar simulações.

O número de bombas é limitado e simulado usando um recurso do SimPy armazenado na variável gas_station_pumps.

Este exercício faz parte do curso

Simulação de Eventos Discretos em Python

Ver curso

Exercício interativo prático

Experimente este exercício completando este código de exemplo.

def car(name, env, gas_station_pumps, gas_station_tank):

    fuel_tank_level = random.randint(*FUEL_TANK_LEVEL)
    print(f"{name} arriving at gas station at {env.now}")

    # Request pump
    with gas_station_pumps.____() as req:
        start_time = env.now

        # Yield the pump request
        ____ req

        liters_required = FUEL_TANK_SIZE - fuel_tank_level

        # Remove liters_required from the tank
        yield gas_station_tank.___(liters_required)

        yield env.timeout(liters_required / REFUELING_SPEED)
        print(f"{name} finished refueling in {env.now - start_time} seconds.")
Editar e executar o código