martes, 23 de octubre de 2012

Red de petri

Bueno para esta semana se encargo realizar una Red de Petri, primer daremos un poco de introduccion:

Una Red de Petri es una simulación de un sistema, con eventos de forma paralela, concurrente o de manera distribuida, puede ser representada tanto matemáticamente o gráficamente.

Estos sistemas por lo general están compuestos por:
  • Transiciones: Estas transiciones están unidas por lo general a dos lugares o mas.
  • Lugares: Son los estados del sistema.
  • Marcas: Representación de los objetos dentro de los lugares.
Estas redes de petri tienen condiciones que se deben cumplir al momento de construirse:
  • Un arco une siempre lugares con transiciones y nunca dos lugares o dos transiciones.
  • Una transición puede ser destino de varios lugares y un lugar puede ser el destino devarias transiciones.
  • Una transición puede ser origen de varios lugares y un lugar puede ser origen de varias transiciones.
  • Los lugares pueden presentar marcas (una marca se representa mediante un punto en el interior del círculo).
  • Cada lugar tiene asociada una acción o salida. Los lugares que contiene marcas se consideran lugares activos. Cuando un lugar está activo sus salidas están a uno.
  • A las transiciones se les asocia eventos (funciones lógicas de las variables de entrada). Una transición se dice que está sensibilizada cuando todos su lugares origen están marcados.
  • Cuando ocurre un evento asociado a una transición (la función lógica se hace uno), se dice que la transición está validada.
Bien ahora vamos a realizar nuestra red de petri con la ayuda de python-snakes.


Bien lo que se hizo fue la del funcionamiento de un elevador

Estos son los estados:
  • Espera
  • BPS = Boton para subir
  • BPB = Boton para bajar
  • Abrirps = puerta se abre para subir
  • Cerrar = puerta se cierra para el viaje
  • P1 = Piso 1 
  • P2 = Piso 2
  • P3 = Piso 3 
  • Abrirpb = se abre elevador para bajar.
Estas son las transiciones:
  • Selec Pet = Selecciona peticion(para que llegue el elevador).
  • Esperabps = Espera la llegada si presiono BPS.
  • Esperabpb = Espera la llegada si presiono BPB.
  • Tiempo Subida = Tiempo para abordar el elevador.
  • Presion P1 = Se preciono la tecla P1.
  • Presion P2 = Se preciono la tecla P2.
  • Presion P3 = Se preciono la tecla P3.
  • Tiempo Bajada = Tiempo para bajar del elevador.
  • if btn <= 1 = esta es condicion por si otro boton esta presionado.



Aqui la imagen que me lanza python snake:





Aqui esta el codigo:


Referencias:
http://es.wikipedia.org/wiki/Red_de_Petri
Tutorial

1 comentario: