jueves, 6 de octubre de 2011

BANCO SIMPLE

Modelo del banco sencillo con una taquilla. Al banco llegan 5 clientes con tiempo interarribo promedio de 10 minuto distriubuido exponencialmente, cada cliente consume exponencialmente, cada cliente consume un tiempo de 12 minutos y se simula hasta que el reloj tenga 400 minutos. al final de la simulacion se imprime la llegada y salida de un clienta.
se resalta lo siguiente:
  • se define las clases generador y cliente. ambas son entidades activas y heredan de la clase procces que provee simpy
  • se usa el metodo expovariate para generar valores de una variable aleatoria exponencial
from simply simulacion import*# libreria de simpy
from random import*#generadores
# componente del modelo
class generador (process):
"""representa al generador del cliente
"""

def generar (self.cantidad.interarribo):
""" metodo PEM que genera los clientes
"""
for i in range (cantidad):
c= cliente (name ="cliente%02d"%(i))
acrtivate(c.cservirse(t=12.0)#se envia al cliente generador a servirse
t=expovariate(1.0/interarribo)
yield hold,seif.t #se espera el tiempo t tomar como tiempo entre clientes

class cliente(process):
de servirse(self.t):
"""metodo PEM nque representa la actividad de visitar
"""
print"%7.4f %s: llegando"%(now().self.name)
yield nold.self.f#se espera el tiempo t como el tiempo de la visita
print"%7.4f%s:saliendo"%(now().self.name)
#programa principal
initialize()#inicializa el reloj de simulacion
g=Generador()#instanciado a un generador
activate(g.g generar(cantidad=5,interarribo=10.0).at=0.0)
# invocando al generadort
simulacion(until=400.0)#inicio de la simulacion hasta el tiempo 400

1 comentario:

  1. Flora ya lo corrí con Python 2.6.5:

    Sí funciona. Cuando uso IDLE, sin embargo, la última instrucción:
    result = model(393939)

    marca error de sintaxis.

    Traten de entender porqué.

    Pongo el código en el blog.

    ResponderEliminar