Ne Simpy soutien optimisé des ressources dynamiques distribution sur plusieurs nœuds?

0

La question

J'ai 2 nœuds 0 et 1, et au total il y a 12 ressources de serveur dans les nœuds 0 et 1. Est-il une méthode en Simpy à l'annexe 12 de ressources sur les nœuds 0 et 1, de sorte que la moyenne du temps total de traitement d'un élément par le biais de nœud 0 suivi par le nœud 1 est réduit au minimum. De temps à autre, des ressources peuvent passer d'un nœud à un autre pour le service. Ci-joint le code où je suis venu avec une distribution statique de 5 ressources dans le nœud 0 et 7 ressources du nœud 1. Comment rendre dynamique avec le temps ?

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

La meilleure réponse

0

Si vous utilisez les ressources, commencer chaque nœud avec une capacité de 12 et utiliser le délai à partir de votre dernière question pour retarder une partie des ressources à partir de chaque nœud de sorte que le total des ressources active est le montant total que vous souhaitez. Sinon vous pouvez commencer à regarder les conteneurs et les magasins qui vous permettra de vous déplacer d'une ressource à partir d'un nœud à un autre.

2021-11-23 14:58:40

Merci Michael. Les conteneurs et les Magasins pourraient être plus approprié pour ce paramètre. Permettez-moi de jeter un oeil.
Coding Practice

Dans d'autres langues

Cette page est dans d'autres langues

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