Comece agoraComece grátis

Otimização na manufatura: Search & Stop

Vamos usar o modelo da fábrica de relógios de parede criado em um exercício anterior e aplicar uma abordagem de otimização "Search & Stop" baseada em amostragem de Monte Carlo para identificar os processos gargalo mais críticos.

O processo de manufatura está resumido na tabela abaixo, e as informações foram armazenadas em uma lista de dicionários chamada processes, com um dicionário por processo. As chaves desses dicionários correspondem aos cabeçalhos das colunas da tabela.

Table with process names and their duration statistics, namely mean and standard deviation.

O método plot_results() para gerar os gráficos neste exercício já foi carregado previamente e é mostrado abaixo.

def plot_results():
    df_disc = pd.DataFrame({cNam[0]: process_line_space, cNam[1]: time_record})
    fig = sns.lineplot(data=df_disc, x=cNam[0], y=cNam[1], marker='o')
    plt.grid()
    fig.set(xlim=(0, len(processes)))
    fig.set(ylim=(0, 180))
    fig.set(xticks=process_line_space)
    plt.plot() 

O loop de amostragem de Monte Carlo vai produzir uma série de possíveis trajetórias de processo e parar quando a condição desejada for atendida, como mostrado na figura. Monte Carlo trajectories for different process scenario.

Este exercicio faz parte do curso

Simulação de Eventos Discretos em Python

Ver curso

Instruções do exercicio

  • Defina um loop para executar trajetórias de simulação enquanto run_i for igual a zero ou total_duration[run_i] for maior que 85 horas (ou seja, condição de parada: total_duration[run_i] menor ou igual a 85 horas).
  • Execute o mecanismo de Monte Carlo armazenado na função run_monte_carlo().

exercicio interativo prático

Tente este exercicio completando este código de exemplo.

def run_monte_carlo():
    run_i = 0
    
    # While-loop with the stop condition
    ____

        run_i += 1
        env = simpy.Environment()
        env.process(manufractoring_process(env))
        env.run()
        plot_results()
    plt.show()

# Call the run_monte_carlo function
____
Editar e Executar Código