Está en la página 1de 34

REPUBLICA BOLIVARIANA DE VENEZUELA UNIVERSIDAD FERMN TORO ESCUELA DE INGENIERIA CABUDARE EDO.

LARA

PROLOG Y REDES DE PETRI

Integrantes: ngela Nunes Jessika Moreno Juan Colmenarez Roberto Cauna Ulimar Rivero Vanessa Guzmn Wilcar Rojas

Cabudare, enero de 2013

PROLOG Programacin de sistemas expertos en PROLOG El PROLOG, cuyo nombre proviene del francs PROgrammation en LOGique, es un lenguaje de programacin declarativa muy utilizado en Inteligencia Artificial, principalmente en Europa. El lenguaje fue a principios de los aos 70 en la Universidad de Aix-Marseille (Marsella, Francia) por los profesores Alain Colmerauer y Philippe Roussel, como resultado de un proyecto de procesamiento de lenguajes naturales. Alain Colmerauer y Robert Pasero trabajaban en la parte del procesamiento del lenguaje natural y Jean Trudel y Philippe Roussel en la parte de deduccin e inferencia del sistema. Interesado por el mtodo de resolucin SL, Trudel persuadi a Robert Kowalski para que se uniera al proyecto, dando lugar a una versin preliminar del lenguaje PROLOG a finales de 1971, cuya versin definitiva apareci en 1972. La primera versin de PROLOG fue programada en ALGOL W e, inicialmente, se trataba de un lenguaje totalmente interpretado. En 1983, David H.D. Warren desarroll un compilador capaz de traducir PROLOG en un conjunto de instrucciones de una mquina abstracta, denominada Warren Abstract Machine. Se populariz en la dcada de los 80 por la aparicin de herramientas para microordenadores (p.ej. Turbo PROLOG, de Borland) y su adopcin para el desarrollo del proyecto de la quinta generacin de computadoras, para el que se desarroll la implementacin paralelizada del lenguaje llamada KL1. Las primeras versiones del lenguaje diferan, en sus diferentes implementaciones, en muchos aspectos de sus sintaxis, emplendose mayormente como forma normalizada el dialecto propuesto por la Universidad de Edimburgo, hasta que en 1995 se estableci un estndar ISO (ISO/IEC 13211-1), llamado ISO-Prolog. El lenguaje PROLOG Como shell para la programacin de Sistemas Expertos Basados en Reglas, PROLOG usa Lgica de Predicados de Primer Orden (restringida a clusulas de

Horn) para representar datos y conocimiento, utiliza encadenamiento hacia atrs y una estrategia de control retroactiva sin informacin heurstica (backtracking).

Elementos del lenguaje Smbolos del Lenguaje Caracteres Alfanumricos: A..Z a..z 0..9 Especiales: + - * / <> = :- & Hechos (tomos). Reglas (clusulas de Horn). Preguntas u objetivos (conjunciones disyunciones de tomos).

Tokens del lenguaje Los nombres de predicados y las constantes del dominio empiezan con

minscula y se construyen como cadenas de letras, dgitos y _ p. ej. pedro x25 x_1 funcion predicado CUIDADO: Algunos ya estn predefinidos: atomic, var, repeat Para PROLOG, el predicado padre/2 es distinto del predicado padre/1; es

decir, padre(juan) y padre(juan,maria) son legales y hacen referencia a distintos predicados, aunque es mejor evitar este tipo de situaciones. Literales numricos, como cualquier lenguaje de programacin, y cadenas de

caracteres entre comillas simples (p.ej. 'Pedro', 'Nueva York') Variables: Cadenas de letras, dgitos y _ empezando con mayscula p.ej. X Lista Persona Comentarios como en C: /* Comentario */

Estrategia de control de PROLOG esHombre(juan). esHombre(pedro). quiere(juan,maria). quiere(juan,elena). quiere(pedro,raquel). quiere(pedro,belen). ?- esHombre(X) , quiere(X,Y). Operadores predefinidos ?- consult(<nombre de fichero>). Aade todas las construcciones (hechos y reglas) del fichero a las que ya existen en memoria (correspondientes al fichero actual). Se aaden al final, tal cual. ?- reconsult(<nombre de fichero>). Aade todas las construcciones (hechos y reglas) del fichero a las que ya existen en memoria. Se aaden al final, pero se borran todas aquellas reglas antiguas cuya cabecera coincide con alguna de las nuevas. dem con los hechos. NOTA: ste es realmente la accin realizada con File > Consult en SWI-Prolog. ?- [<fichero_1> , ... , <fichero_n>]. Equivale a realizar reconsult sobre los ficheros indicados. Reglas Representacin de reglas A Juan le gusta todo lo que le gusta a Mara x (gusta(maria,X) gusta(juan,X)) gusta(juan,X) :- gusta(maria,X). gusta(juan,X) es el consecuente (la cabecera de la regla). :- se lee si [if] gusta(maria,X) es el antecedente (el cuerpo de la regla). El mbito de la variable X llega hasta el punto.

En PROLOG existen dos tipos de objetivos: _ Los especificados directamente por el usuario, en el prompt ?-. _ Los correspondientes a los antecedentes de las reglas (invocados directamente por PROLOG). Cuando se intenta satisfacer un objetivo, PROLOG busca en la memoria de trabajo, secuencialmente, desde el principio hasta el final, o bien un hecho que se unifique con el objetivo, o bien una regla que tenga una cabecera que se unifique con el objetivo. En caso de encontrar una regla, PROLOG intentar demostrar los objetivos descritos en los antecedentes uno a uno, de izquierda a derecha. Listas La representacin de hechos simples no es lo comn en la clasificacin de elementos, sino que se agrupan los elementos de un mismo tipo en una lista. Las listas son colecciones de elementos en Prolog. Una lista se divide en dos partes: cabeza. Es el primer elemento de la lista. Cola. Es una lista con el resto de los elementos de la lista. La cabeza y la cola de una lista se separan con el smbolo "|". Ejemplos de cdigo Prolog Ejemplo simple %% %% declaraciones %% padrede('juan', 'maria'). % juan es padre de maria padrede('pablo', 'juan'). % pablo es padre de juan padrede('pablo', 'marcela'). padrede('carlos', 'debora').

% A es hijo de B si B es padre de A hijode(A,B) :- padrede(B,A). % A es abuelo de B si A es padre de C y C es padre B abuelode(A,B) :padrede(A,C), padrede(C,B). % A y B son hermanos si el padre de A es tambin el padre de B y si A y B no son lo mismo hermanode(A,B) :padrede(C,A) , padrede(C,B), A \== B.

% A y B son familiares si A es padre de B o A es hijo de B o A es hermano de B familiarde(A,B) :padrede(A,B). familiarde(A,B) :hijode(A,B). familiarde(A,B) :hermanode(A,B). %% %% consultas %% % juan es hermano de marcela? ?- hermanode('juan', 'marcela'). yes

% carlos es hermano de juan?

?- hermanode('carlos', 'juan'). no

% pablo es abuelo de maria? ?- abuelode('pablo', 'maria'). yes

% maria es abuela de pablo? ?- abuelode('maria', 'pablo'). no Factorial de un nmero % La sintaxis es factorial(N, F) -> Factorial de N es F (el resultado se guarda en F) factorial(0, 1). factorial(N, F) :- N>0, N1 is N - 1, factorial(N1, F1), F is N * F1.

%el factorial se llama recursivamente dejando el resultado en F Usos de Listas en Prolog Creacin y consulta de listas plantas([manzana, naranja, limon, espinaca, gardenia, alfalfa, pino]).

lista([1,2,3]).

?-lista([H|T]). H=1 T=[2,3]

?-lista([H,J|T]). H=1 J=2 T=[3] Longitud de una lista % Si queremos hallar la longitud de una lista. % La longitud de una lista vacia es 0. % La longitud de cualquier lista es la longitud de la cola + 1.

longitud([],0). longitud([_|T],N):-longitud(T,N0), N is N0 + 1.

?- longitud([a,b,c],L). L=3 ?- longitud([a,b,c],4). No Bsqueda de un elemento % Si queremos determinar si un elemento pertenece a una lista. % El elemento pertenece a la lista si coincide con la cabeza de la lista. % El elemento pertenece a la lista si se encuentra en la cola de la lista.

pertenece(X,[X|_]) . pertenece(X,[_|R]):- pertenece(X,R).

?- pertenece(b,[a,b,c]). Yes

?- pertenece(b,[a,[b,c]]). No ?- pertenece([b,c],[a,[b,c]]). Yes ?- pertenece(X,[a,b]). X=a; X=b Eliminar elemento de una lista % Si queremos eliminar un elemento de la lista. % Si X es la cabeza de la lista, la cola T es la lista sin X % Si X no es la cabeza de la lista, conservamos la cabeza de la lista % como parte de la respuesta y continuamos eliminando X de la cola T.

elimina(X,[X|T],T). elimina(X,[H|T],[H|T1]):- elimina(X,T,T1).

?- elimina(1,[1,2,3,4],R). R = [2,3,4] ?- elimina(1,R,[2,3]). R = [1, 2, 3] ; R = [2, 1, 3] ; R = [2, 3, 1] ?- elimina(X,[1,2,3],Y). X = 1, Y = [2,3] ; X = 2, Y = [1,3] ; X = 3, Y = [1,2]

Concatenar listas % Si queremos concatenar dos listas lista. % Concatenar una lista vacia con L es L. % Concatenar X|L1 con L2 es poner el primer % elemento de la primera lista (X) ms la % concatenacin del resto de la lista (L1) con L2

concatenar([],L,L). concatenar([X|L1],L2,[X|L3]):-concatenar(L1,L2,L3).

?- concatenar([1,2],[3,4],R). R = [1, 2, 3, 4]. ?- concatenar(X,Y,[1,2]). X = [], Y = [1,2] ; X = [1], Y = [2] ; X = [1,2], Y = [] Comprobar si una lista es la inversa de otra % Si queremos calcular la inversa de una lista. % La inversa de una lista vacia es una lista vacia. % La inversa de H|T es la inversa de T concatenada con H.

inversa([],[]). inversa([H|T],L):- inversa(T,R), concatenar(R,[H],L).

?- inversa([a,b,c,d],[d,c,b,a]). Yes/Si

% Utilizando un parametro acumulador.

inver(L1,L2):-inver(L1,L2,[]).

inver([],L,L). inver([H|T],L,S):-inver(T,L,[H|S]).

?- inver([a,b,c,d],[d,c,b,a]). Yes

REDES DE PETRI Una Red de Petri es una representacin matemtica o grfica de un sistema a eventos discretos en el cual se puede describir la topologa de un

sistema distribuido, paralelo o concurrente. La red de Petri esencial fue definida en la dcada de los aos 1960 por Carl Adam Petri ,y son consideradas una herramienta para el estudio de los sistemas. Con su ayuda podemos modelar el comportamiento y la estructura de un sistema, y llevar el modelo a condiciones lmite, que en un sistema real son difciles de lograr o muy costosas. Una red de Petri es un grafo orientado con dos tipos de nodos: lugares (representados mediante circunferencias) y transiciones (representadas por segmentos rectos verticales). Los lugares y las transiciones se unen mediante arcos o flechas. ELEMENTOS DE UNA RED DE PETRI: Lugares: Los lugares representan entidades del mundo real interpretados como entes pasivos. Transiciones: representan entidades del mundo real interpretados como entes activos.

Arcos: son los que unen los lugares con transiciones Los lugares pueden presentar marcas (una marca se representa mediante un punto en el interior del crculo). Los lugares que contiene marcas se consideran lugares activos. MARCA (representa un lugar activo) Un lugar puede tener ms de una marca, ejemplo:

DOS MARCAS Un arco une siempre lugares con transiciones y nunca dos lugares o dos transiciones.
lugar marca transicin

p1

t1 arco

p2

Una transicin puede ser destino de varios lugares y un lugar puede ser el destino de varias transiciones.

Una transicin puede ser origen de varios lugares y un lugar puede ser origen de varias transiciones.

LUGAR ACTIVO Cuando un lugar est activo sus salidas estn a uno. Cada lugar tiene asociada una accin o salida. A P1 B P2 Salida=1 Salida =0

TRANSICION SENSIBILIZADA Una transicin se dice que est sensibilizada cuando todos su lugares origen estn marcados, transicin sensibilizada

P1

P2

TRANSICION VALIDADA Cuando ocurre un evento asociado a una transicin (la funcin lgica se hace uno), se dice que la transicin est validada.

P1

P2

P3

P4

P5= 1

Transicin Validada

VENTAJAS REDES DE PETRI : Tratamiento individual de procesos independientes. Procesos paralelos o concurrentes. Recursos compartidos. RECURSOS COMPARTIDOS Las Redes de Petri permiten modelar sistemas donde un recurso es

compartido por dos procesos de forma que el uso del recurso durante la ejecucin de un proceso impide que dicho recurso sea utilizado por el otro proceso.

Recurso Compartido

T1

proceso 1

T2

Proceso 2

Transaccin en conflicto Conflicto

Transaccin en

Representacin matricial Una transicin tiene un determinado nmero de lugares de entrada (o precondiciones) y de lugares de salida (o postcondiciones). Cada uno de estos se puede representar por una matriz binaria de dos dimensiones, donde las columnas representan las transiciones, las filas los lugares y las celdas la conexin entre ambas. Las matrices reciben los nombres de Matriz de incidencia previa y Matriz de incidencia posterior respectivamente. Podemos decir que una RdP N se encuentra definida matricialmente por medio de dos matrices. Sea n = |P| (nmero de lugares de P) y m = |T| (nmero de transiciones de T).

Se denominan: Matriz de incidencia previa: C = [cij]nm en la que cij = Pre(pi, tj). Matriz de incidencia posterior: C+ = [c+ij]nm en la que c+ij = Post(ti, pj). Matriz de incidencia de N: C = C+ C. Ejemplo 1 Dada la RdP R1 = (P, T, F, W, M0), donde: P = {p1, p2, p3, p4}, T = {t1, t2, t3 }, Mo=(5, 0, 0, 0)

t2

p4

p1

t1

p2

t3
Figura 1 Red

p3

de Petri con cuatro lugares y tres transiciones.

Matriz de Incidencia previa y matriz de incidencia posterior: 1 0 C = Pre(pi, tj) = 0 0 0 0 0 0


-

0 1

0 1 C+ = Post(pi, tj) =

0 1 0 0

0 1 0 0

0 1 0 0

Sea N una RdP, donde t T y p P. Se definen los siguientes conjuntos: Conjunto de lugares de entrada a t : t = {p P | Pre(p, t) > 0} Conjunto de lugares de salida de t : t = {p P | Post(t, p) > 0} Conjunto de transiciones de entrada a p : p = {t T | Post(t, p) > 0} Conjunto de transiciones de salida de p : p = {t T | Pre(p, t) > 0} Marcado Un marcado es una funcin que asigna a cada lugar un entero no negativo (marca), de forma que decimos que un lugar p est marcado con k marcas, si el marcado asigna al lugar p un entero k. Un marcado M se representa mediante un vector con tantos componentes como lugares tenga la red. La cantidad de marcas en el lugar p ser M(p). Una RdP marcada es un par (N, M) formado por una RdP N y un marcado M. El marcado de la RdP del ejemplo 1 : 5 0 M0 = 0 0

Evolucin de marcado El marcado cambia al disparar las transiciones. Para disparar una transicin ha de estar validada y sensibilizada. Cuando una transicin se dispara desaparecen las marcas de los lugares origen y se aade una marca a cada uno de los lugares destino. Una transicin t T est sensibilizada (habilitada) para un marcado M dado, sii p t se verifica M(p) Pre(p, t). El grado de habilitacin de una transicin indica el mximo nmero que la transicin puede ser disparada concurrentemente. Regla de evolucin del marcado: Si t est habilitada para un marcado M entonces t puede dispararse. En la operacin se alcanza un nuevo marcado M0, y se denota por M[t] > M0, el cual resulta de quitar Pre(p, t) marcas de cada lugar p t y aadir Post(t, p) marcas a cada lugar p t. El cambio en el marcado esta dado por la ecuacin: M0(p) = M(p) Pre(p, t) + Post(t, p), p P Cada disparo de una transicin modifica la distribucin de las marcas, y por ello produce un nuevo marcado en la red. Siguiendo con el ejemplo 1, al disparar la transicin t1, obtenemos: M0 5 0 - Pre(p, t) + Pos(t, p) = Mf 1 0 0 0 1 1 0 0 0 1 1 1 4 1

0 0

0 0 0 0 0 0

0 0 0 0 0 0

0 0

t2

p4

p1

t1

p2

t3
Figura 2 Evolucin

p3

del marcado de la red del ejemplo 1.

Estructuras bsicas Seleccin Selecciona el proceso a ejecutar

t1

p1 t2 t3

p2

p2

Figura 3 Estructura

bsica. Seleccin.

Atribucin Ejecucin independiente de un proceso por dos procesos distintos

t1

t2

p1

t3
Figura 4 Estructura

bsica. Atribucin.

Distribucin Ejecucin de procesos paralelos o concurrentes

Figura 5 Estructura

bsica. Distribucin.

Conjuncin Sincronizacin de procesos en paralelo

Figura 6 Estructura

bsica. Conjuncin.

Ejecucin Secuencial La transicin t2 puede ser disparada sea antes disparado t1.

p1

t1

p2

t2

p3

Figura 7 Estructura

bsica. Ejecucin secuencial.

Sincronizacin La transicin t1 estar habilitada para ser disparada todos los nodos de entrada de la transicin t1 poseen al menos una marca en cada uno de ellos. Esto ocurre principalmente en la electrnica. Ej: El en circuito AND las dos entradas producen una salida lgica.

p1 t1 p2 p3

=>

p1 t1 p2 p3

Figura 8 Estructura

bsica. Sincronizacin.

Concurrencia Las transiciones t2 y t3 son concurrentes. Con esta propiedad, las RdP es capaz de modelar sistemas de control distribuido con mltiples procesos ejecutndose concurrentemente.

p2 p1 t1 p4
Figura 9 Estructura

t2

p3

t3

p5

bsica. Concurrencia.

Conflictos Tanto la transicin t1 como t2 estn listas para ser disparadas, pero el disparo de alguna de disparada. ellas produce que la otra transicin quede inhabilitada para ser

p1 t1 p2 p4 t2 p3

p1 t1 p2 p4 t2 p3

=>

Propiedades En las RdP podemos encontrar propiedades estructurales, que dependen de la estructura topolgica de las RdP, independientes del marcado inicial y, las propiedades de comportamiento que s dependen del marcado inicial Propiedades estructurales RdP Pura Una RdP N es una red pura si no existe ninguna transicin que tenga un lugar que sea al mismo tiempo de entrada y salida de la transicin: tj T , pi P, Pre(pi, tj) Post(tj , pi) = 0 Red de Petri Acotada Estructuralmente Una red de Petri est acotado estructuralmente si est acotada para cualquier marcado inicial finito. Un lugar p en una red de Petri se dice no acotado estructuralmente si existe un marcado M y una secuencia de disparo desde M tal que p no est acotado. Red de Petri Estructuralmente Viva Una red de Petri est estructuralmente viva si existe algn marcado inicial para el que est viva. Red de Petri Completamente Controlable Una red de Petri se dice completamente controlable si cualquier marcado es alcanzable desde cualquier otro marcado.

Red de Petri Estructuralmente Conservativa Una red de Petri es estructuralmente conservativa si, para cualquier marcado inicial M0 y un marcado alcanzable M R(M0), existe un vector x (n 1) tal que xi0, para cualquier i = 1,...,n, y xtM = xtM0. Red de Petri (parcialmente) Repetitiva Una red de Petri es (parcialmente) repetitiva si existe un marcado finito M0 y una secuencia de disparo s tal que (alguna) toda transicin ocurre un nmero infinito de veces en . Red de Petri (parcialmente) Consistente Una red de Petri es (parcialmente) consistente si existe un marcado finito M0 y una secuencia de disparo s cclica (desde M0 a M0 tal que (alguna) toda transicin ocurre al menos una vez en . Propiedades de comportamiento Vivacidad Una transicin t est viva para un marcado inicial dado M0, sii existe una secuencia de disparos a partir de un marcado M sucesor de M0 que comprenda a t : M M(R, M0) : M M0 tal que t . Una RdP marcada est viva para M0 sii todas sus transiciones son vivas para M0 . Se puede decir que la propiedad de vivacidad significa la ausencia en el conjunto de alcanzabilidad de un marcado en el que la red se bloquee totalmente (deadlock), ya que, para que est viva, todas sus transiciones deben ser disparables desde cualquier marcado alcanzable.

Se dice que una RdP marcada est parcialmente viva para M0 si, tomando como punto de partida cualquier marcado alcanzable a partir de M0, existe al menos una transicin disparable y otra transicin no viva. Toda RdP marcada parcialmente viva tiene la posibilidad de evolucin global, independientemente de que existan transiciones que no puedan ser disparadas. Ejemplo: Una red de Petri no viva.

p1

t3

t1

p4 p3 t4 p5

p2

t2
Figura 10

Ejemplo de una RdP no viva.

Para la secuencia de disparos t1, t2, t1, t2, no hay bloqueo. Si ahora se disparan las transiciones t1, t3, t4, ya no se puede disparar ninguna transicin ms, la red queda bloqueada. Podemos tener redes pseudo-vivas en las que existen algunas transiciones vivas y no se bloquea totalmente. Ejemplo: RdP Pseudoviva

p1 t1

p2

p3

t2

t3

p4

p5

t4

Figura 11

Ejemplo de una Redes de Petri pseudoviva.

Ciclicidad Se dice que una Redes de Petri posee un comportamiento globalmente cclico para M0 si existe una secuencia de disparos que permite alcanzar el marcado inicial M0 a partir de cualquier marcado M alcanzable a partir de M0: M M(R, M0), tal que M M0. La ciclicidad o reversibilidad de una Redes de Petri marcada garantiza que no existen subconjuntos finales de estados (marcados). Un subconjunto final de estados (marcados) contiene estados (marcados) mutuamente alcanzables entre s y tales que el estado inicial (marcado inicial) no es alcanzable a partir de ninguno de ellos. Ejemplo de una red no reversible:

p1 t1

p2

p3

t2

p4

t3

Figura 12

Ejemplo de una RdP no reversible.

Estas Redes de Petri son pseudoviva, adems no tiene la propiedad de reversibilidad ya que el marcado inicial no se puede obtener jams. Acotamiento El significado de esta propiedad es el de asegurar que el sistema que una red representa posee un nmero finito de estados (si suponemos que cada lugar de la red representa a una variable de estado del sistema y su marcado el valor de dicha variable). Luego la propiedad de acotamiento determina la finitud del nmero de estados del sistema representado por una Red de Petri. Un lugar p es k-acotado para M0 sii existe un nmero entero k tal que M(p) k para cualquier marcado M M(R, M0). Se denomina cota del lugar p al menor entero k que verifica la desigualdad anterior.

Una Rede de Petri marcada es k-acotada para M0 sii todos sus lugares son kacotados para M0: p P y M M(R, M0), M (p) k. Merece una consideracin especial la 1-acotacin. Si una Redes de Petri es 1acotada para M0, su marcado es binario (un lugar est o no est marcado) y se dir que la Red es binaria para M0. Una red segura, es una Red de Petri 1-acotada. Una Red de Petri es estructuralmente acotada si es acotada para cualquier marcado inicial y finito. Se dice que la red est k-acotada si para todo marcado alcanzable tenemos que ningn lugar tiene un nmero de marcas mayor que k. Las redes 1-acotadas son conocidas como binarias. Si la red diseada generar ms marcas que las que su acotacin permite el modelado ser errneo. Ejemplo: Una red no acotada
p1 t1

p2

t2

p3

p4

t3

p5 t4

Figura 13

Ejemplo de una Red de Petri no acotada.

Conservatividad Las marcas de una red se pueden entender como recursos del sistema. Normalmente los recursos de un sistema ni se crean ni se destruyen. Cuando las marcas se conservan, tras el disparo de una secuencia de transiciones, se dice que la red es conservativa. Sea R = (P, T, Pre, Post, M0) se dice que es estrictamente conservativa sii M0 M(R, M0), iM0 (pi) = iM(pi), pi P. Esto es, se ha de mantener el nmero de marcas para cualquier marcado de la red. La definicin anterior implica que el nmero de entradas ha de coincidir con nmero de salidas, es decir: (|I(tj)|) = |O(tj)|), para cada transicin disparable. Alcanzabilidad La alcanzabilidad es una base fundamental para estudiar las propiedades dinmicas de cualquier sistema. al dispararse una transicin habilitada, esta cambiar la distribucin de las seales ( marcado). De esta forma, de una secuencia de disparos resultar una secuencia de marcados, luego un marcado Mn es alcanzable a partir de M0, si existe una secuencia de disparos que a partir de M0 nos lleve a Mn. Una secuencia de disparos la denotaremos por = t1, t2, ....., tn . en este caso Mn es alcanzable desde M0, sii t.q. M0 [i Mn. Ejemplo Red de Petri y su grafo de alcanzabilidad

Figura 14

Ejemplo de una Red de Petri con su grafo de alcanzabilidad.

Mtodos de Anlisis Las tcnicas para el anlisis de RdP (anlisis cualitativo de redes) se clasifican normalmente en tres grupos. Tcnicas Enumerativas En primer lugar se tienen las tcnicas enumerativas. Se basan en la generacin del grafo de alcanzabilidad para sistemas limitados o del grafo de cobertura para sistemas no limitados. Estas tcnicas se pueden aplicar en teora, pero en la prctica estn limitadas a sistemas pequeos debido a su elevada complejidad computacional. En este grafo los nodos corresponden al marcado

alcanzable y los arcos corresponden al disparo de las transiciones. En la figura se muestra una red de Petri y su grafo de alcanzabilidad (Grafo de marcados).

Figura 15

Tcnica enumerativa de validacin.

Este grafo puede ser utilizado para mostrar que la red es segura, viva, reversible y que esta tiene dos componentes que se repiten t1, t2,t4 y t1, t3,t5. En una red no limitada, el nmero de seales en un lugar puede ser infinito. Un lugar que puede llegar a tener un nmero infinito de seales se repres enta por . El grafo resultante es llamado grafo de cobertura. Tcnicas de Transformacin En segundo lugar se tienen las tcnicas de transformacin. En este grupo de tcnicas el objetivo es reducir el tamao de los modelos mediante reglas de reduccin que preserven las propiedades que se quieren estudiar. En la figura puede observarse un conjunto sencillo de seis reglas de reduccin que preservan vivacidad y klimitacin. Reglas de reduccin que presentan vivacidad y k-limitacin:

Figura 16

Tcnica de transformacin de validacin.

Con este conjunto de reglas es posible reducir la complejidad del clculo de la vivacidad y limitacin de un sistema. Tcnicas Estructurales En tercer lugar se tienen las tcnicas estructurales. En este grupo de tcnicas el objetivo es obtener la mxima informacin del modelo utilizando nicamente su estructura y marcado inicial.

Los mtodos de lgebra lineal son utilizados para determinar las propiedades de la red. La ecuacin de estado de una red de Petri se define como sigue: el marcado Mk se define como un vector columna m 1. La jesima entrada de Mk denota el nmero de seales en el lugar j inmediatamente despus del kesimo disparo en la secuencia de disparos. El kesimo disparo o vector de control uk es un vector columna de n 1, con n1 ceros y una entrada 1 en la iesima posicin, indicando el disparo de la transicin i. Esto es, la iesima fila de la matriz de incidencia C denota el cambio de marcado como el resultado del disparo de la transicin i, luego la ecuacin de estado para la red de Petri se escribe como sigue: Mk = Mk1 + CT uk, k = 1, 2, 3, . El marcado de una red de Petri puede ser cambiado cada vez que una transicin se dispara. Si no ocurre un bloqueo, el nmero de disparos es ilimitado. Sin embargo, no todos los marcados pueden ser alcanzados y no todas las secuencias de disparos pueden ser llevadas a cabo. Las restricciones son dadas por los invariantes de la red. Un marcado invariante es obtenido si la suma de los pesos de el marcado de un subconjunto de lugares en una red es siempre constante. Los lugares contenidos en este subconjunto son llamados componentes conservativos y el vector que contiene los pesos es P-Invariante. Si el disparo de una cierta secuencia de transiciones resulta en el mismo marcado como cuando inicio, la secuencia es llamada componente repetitivo. El vector caracterstico de la secuencia de disparos es el T-Invariante.

También podría gustarte