Aplicación

Type in the content of your page here.



**Idea general de SimPy: **  El módulo SimPy posee aplicaciones diversas. Su nombre es la abreviación de Simulation in Python (simulaciones en Python) lo cual nos brinda una idea acerca de su utilidad; que puede ser tan diversa, que depende de la persona que lo utiliza, la forma en que las herramientas brindadas le son provechosas.

Simpy es utilizado para representar fenómenos simples; posee la capacidad de manejar el tiempo (e inclusive manejarlo en timepo real), de realizar estadísticas según la simulación, realizar trazas, hacer histogramas, entre otras. Es un módulo que nos permite trabajar desde Python, simuladores de eventos varios. Al momento de utilizar el módulo, es siempre importante importarlo, ejecutando la instrucción:

SimPy nos permite manejar datos, a grandes rasgos, de dos tipos: entidades activas y entidades pasivas. - Las entidades activas son todas aquellas que se transforman o cambian a lo largo de la simulación (carros, clientes, cartas). Estas serán clasificades como pertenecientes a la clase Process. - Las entidades pasivas son todas aquellas que no cambian en el sistema (tanques, servidores). Estas reciben el nombre de Facilities. Estas interactuan con las entidades activas.
 * Ideas generales sobre su uso: ** 

La simulación consitirá entonces, en la relación entre entidades activas y entidades pasivas.

**Ejemplos: **  Una persona puede aplicar el método SimPy en la simulación de eventos que desee. Para ilulstrar de mejor manera este enunciado, proseguiremos a explicar un programa que utilice el módulo SimPy.

from SimPy.Simulation import * # importamos la libreria de SimPy from random import * #importamos el poder crear valores aleatorios class Persona(Process):  # entidad activa, va a ser nuestro generador de datos, sometido a estados diversos def comer(self): # metodo PEM, el cual representa el proceso de "comer" de la "Persona" """Metodo PEM que representa la actividad de comer""" print "%7.4f: Llegada "%(now) <span style="color: #ff0000; font-family: Arial,Helvetica,sans-serif; font-size: 140%;"> #obtener el reloj del simulación, lo retorna <span style="font-family: Arial,Helvetica,sans-serif; font-size: 140%;"> t = uniform(15.0,25.0) <span style="color: #ff0000; font-family: Arial,Helvetica,sans-serif; font-size: 140%;"># se genera un valor uniforme <span style="font-family: Arial,Helvetica,sans-serif; font-size: 140%;"> yield hold,self,t <span style="color: #ff0000; font-family: Arial,Helvetica,sans-serif; font-size: 140%;">#Se espera el tiempo t como el tiempo de la visita <span style="font-family: Arial,Helvetica,sans-serif; font-size: 140%;"> print "%7.4f: Salida"%(now <span style="color: #ff0000; font-family: Arial,Helvetica,sans-serif; font-size: 140%;">)#obtener el reloj del simulación, lo retorna
 * 1) nuestro modelo

<span style="color: #ff0000; font-family: Arial,Helvetica,sans-serif; font-size: 140%;"># Programa principal <span style="font-family: Arial,Helvetica,sans-serif; font-size: 140%;">p = Persona <span style="color: #ff0000; font-family: Arial,Helvetica,sans-serif; font-size: 140%;">#instanciando a la persona <span style="font-family: Arial,Helvetica,sans-serif; font-size: 140%;"> initialize <span style="color: #ff0000; font-family: Arial,Helvetica,sans-serif; font-size: 140%;">#inicializa el reloj de simulacion, lo coloca en 0 y comienza el ciclo <span style="font-family: Arial,Helvetica,sans-serif; font-size: 140%;"> activate(p,p.comer) <span style="color: #ff0000; font-family: Arial,Helvetica,sans-serif; font-size: 140%;"> #invocando a comer <span style="font-family: Arial,Helvetica,sans-serif; font-size: 140%;"> simulate(until=400.0) <span style="color: #ff0000; font-family: Arial,Helvetica,sans-serif; font-size: 120%;"> **#inicio de la simulacion hasta el tiempo 400**

<span style="font-family: Verdana,Geneva,sans-serif; font-size: 140%;">Este programa nos dara como resultado: 0.0000: Llegada 19.4224: Salida

Siendo siempre la salida un dato variante, pues es aleatorio. Para trabajar este programa directamente en Python, baje el archivo



y abralo desde Python Shell, ejecútelo con F5, y ¡vea los resultados! <span style="font-family: Verdana,Geneva,sans-serif;">

**<span style="color: #0000ff; font-family: Arial,Helvetica,sans-serif; font-size: 140%;"> Más ejemplos: **

<span style="font-family: Arial,Helvetica,sans-serif; font-size: 235.2%;">[|Ejemplos 1] <span style="font-family: Arial,Helvetica,sans-serif; font-size: 140%;">.

Estos ejemplos se explicarán paso a paso; al final se presentará el código y usted puede abrir una nueva ventana en Python, pegar ahí el código, guardar el archivo y correrlo para observar el resultado.

Al instalar el módulo de SimPy, se crea una carpeta llamada SimPy-2.1.0beta, dentro de la misma hay una carpeta llamada SimPyModels. Todos los archivos contenidos en ella son ejemplos, y pueden ser ejecutados a través de Python Shell.