Não Simpy suporte otimizado de recursos dinâmicos distributon através de vários nós?

0

Pergunta

Eu tenho 2 nós de 0 e 1 e, no total, há 12 recursos que irá servidor em nós 0 e 1. Há um método em Simpy para agendar a 12 recursos entre os nós 0 e 1, de modo que a média do total de tempo de processamento de um item através do nó 0 seguido por nó 1 é minimizado. De vez em recursos pode passar de um nó a outro para servir. Em anexo, é o código de onde eu vim com uma estática de distribuição, de 5 de recursos no nó 0 e 7 recursos no nó 1. Como fazer uma dinâmica com o tempo ?

import numpy as np
import simpy

def interarrival():
    return(np.random.exponential(20))

def servicetime():
    return(np.random.exponential(60))


def servicing(env, servers_1):
    i = 0
    while(True):
        i = i+1
        yield env.timeout(interarrival())
        print("Customer "+str(i)+ " arrived in the process at "+str(env.now))
        state = 0
        env.process(items(env, i, servers_array, state))

def items(env, customer_id, servers_array, state):
    with servers_array[state].request() as request:
        yield request
        t_arrival = env.now
        print("Customer "+str(customer_id)+ " arrived in "+str(state)+ "  at "+str(t_arrival))
        yield env.timeout(servicetime())
        t_depart = env.now
        print("Customer "+str(customer_id)+ " departed from "+str(state)+ "  at "+str(t_depart))
        if (state == 1):
            print("Customer exits")
        else:
            state = 1
            env.process(items(env, customer_id, servers_array, state))
            

env = simpy.Environment()
servers_array = []
servers_array.append(simpy.Resource(env, capacity = 5))
servers_array.append(simpy.Resource(env, capacity = 7))
env.process(servicing(env, servers_array))
env.run(until=2880)
allocation dynamic resources simpy
2021-11-23 13:21:27
1

Melhor resposta

0

Se você usar os recursos, iniciar cada nó com uma capacidade de 12 e utilizar o atraso da sua última pergunta para o atraso de alguns dos recursos de cada nó por isso o total do activo recursos é o total que você deseja. Caso contrário, você pode querer começar a olhar para recipientes e lojas, que irá permitir que você mova um recurso a partir de um nó para outro.

2021-11-23 14:58:40

Obrigado Michael. Recipientes e Lojas podem ser mais apropriadas para esta definição. Deixe-me dar uma olhada.
Coding Practice

Em outros idiomas

Esta página está em outros idiomas

Русский
..................................................................................................................
Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
हिन्दी
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................