Teor a de la Computabilidadcs.uns.edu.ar/materias/tc2do/downloads/Apuntes/Redes de... · 2019. 10....

18
Teor´ ıa de la Computabilidad Notas de curso referidas a Redes de Petri Dr. Carlos Iv´ an Ches˜ nevar Dr. Mar´ ıa Laura Cobo atedra de Teor´ ıa de la Computabilidad Departamento de Ciencias e Ingenier´ ıa de la Computaci´ on Universidad Nacional del Sur Bah´ ıa Blanca, 2019 (1ra.Edici´on)

Transcript of Teor a de la Computabilidadcs.uns.edu.ar/materias/tc2do/downloads/Apuntes/Redes de... · 2019. 10....

  • Teoŕıa de la Computabilidad

    Notas de curso referidas a

    Redes de Petri

    Dr. Carlos Iván Chesñevar

    Dr. Maŕıa Laura Cobo

    Cátedra de Teoŕıa de la Computabilidad

    Departamento de Ciencias e Ingenieŕıa de la ComputaciónUniversidad Nacional del Sur

    Bah́ıa Blanca, 2019(1ra. Edición)

  • Teoŕıa de la Computabilidad – Notas de Curso – por C.I. Chesñevar y M. L. Cobo

    Introducción

    El presente texto intenta brindar una versión integrada de algunos temas teóri-cos y prácticos que forman parte del programa de la materia Teoŕıa de la Compu-tabilidad, correspondiente al Departamento de Cs. e Ing. de la Computación de laUniversidad Nacional del Sur. En particular, el material aqúı presentado desarrollalos conceptos correspondientes al tema de Redes de Petri.

    Si bien existe gran número de textos para abordar los conceptos correspondientesa este tema, resulta dif́ıcil encontrar un único libro de texto que considere el enfo-que utilizado en esta materia. Esta situación dio origen a un conjunto de apunteselaborados por la profesora Sandra Gabelli, posteriormente consolidados y refina-dos en notas de curso realizadas por el profesor Juan C. Augusto en 1995, quien sedesempeñó como profesor hasta 2001. A partir de 2002 se introdujeron nuevos recur-sos didácticos y materiales adicionales, que obligaron a revisar, replantear, corregiry actualizar varios aspectos de los presentados en las notas de curso del profesorJuan C. Augusto. Esa motivación fue la que guió la confección de este nuevo texto,que complementa y corrige apuntes y notas usadas hasta el momento en la mate-ria. El material presentado está en constante evolución y corrección, por lo que seagradecerá especialmente toda sugerencia, cŕıtica o comentario sobre el mismo.

    Carlos Iván ChesñevarUniversidad Nacional del Sur – Bah́ıa Blanca, Argentina

    Nota: puede contactarse a los responsables del presente texto por v́ıa electrónica alas direcciones abajo indicadas.Dr. Carlos Iván Chesñevar: Email: [email protected] – Web: http://cs.uns.edu.ar/∼cicDr. Maŕıa Laura Cobo: Email: [email protected]

    –2–

  • Teoŕıa de la Computabilidad – Notas de Curso – por C.I. Chesñevar y M. L. Cobo

    Redes de Petri

    1. Introducción y motivaciones

    En nuestro análisis de distintos modelos formales de la computación hemos co-menzado siempre por alternativas deterministas. Aśı, al estudiar autómatas finitoscomenzamos por los autómatas finitos deterministas (AFD) y luego consideramosla variante no determinista de los mismos (AFNDs). Algo análogo hicimos con losautómatas a pila y las máquinas de Turing.

    En este caṕıtulo abordaremos un nuevo formalismo denominado redes de Petri(RPs). A diferencia de los acercamientos anteriores, las redes de Petri son inheren-temente no deterministas. El nombre de red de Petri debe su nombre a Carl AdamPetri, investigador alemán que desarrolló las mismas en 1962 como parte de sutrabajo de Tesis Doctoral en la Universidad de Darmstadt (Alemania).

    Nota bibliográfica: Carl Petri nació el 12 de julio de 1926, enLeipzig (Alemania). Estudió Matemática en la Univ. de Hanno-ver, donde fue profesor. Fue el primero en definir el lenguaje delas redes de Petri. Lo hizo en su Tesis Doctoral “Kommunikationmit Automaten” (Comunicación con autómatas), en 1962 (Univ.de Darmstadt). En 1997 fue nombrado miembro de la Academiade Ciencias de Nueva York, y recibió la distinción Werner Von Sie-mens (Alemania). En 1999 fue nombrado Doctor Honoris Causapor la Universidad de Zaragoza (España).

    Las redes de Petri resultan atractivas para modelar problemas en los cuales inter-vienen procesos que presentan grados de dependencia temporal.1 Considere el trozode programa Pascal que se muestra en la figura 1.2 Normalmente las instruccionesse ejecutaŕıan en forma secuencial, esto es primero A:=1, luego B:=2 y aśı sucesi-vamente. Sin embargo, debe notarse que no hay ninguna razón lógica para evitarque las primeras tres instrucciones se procesen en cualquier orden o de manera con-currente (esto es, al mismo tiempo). Con la disminución del precio del hardwareen general y de los procesadores en particular existe especial interes en el procesa-miento concurrente para lograr mayor velocidad y eficiencia. Las redes de Petri sonuna representación gráfica que permite modelar y estudiar distintos problemas deprocesamiento concurrente.

    Definición 1.1 [Red de Petri como Grafo] Una red de Petri es un grafo dirigidoG=(V,E), donde V = P ∪ T y P ∩ T = ∅. Toda arista e en E es inicidente en unelemento de P y un elemento de T . El conjunto P es llamado conjunto de lugares,y el conjunto T es el conjunto de transiciones. 2

    Definición 1.2 [Red de Petri – Versión formal] Una red de Petri es una cuaterna(P, T, IF,OF ) donde:3

    1El concepto de proceso será abordado en profundidad en la asignatura “Sistemas Operativos”.2Ejemplo tomado de [Joh97].3Nótese que estas letras representa los términos en inglés places, transitions, Input Function y

    Output Function, respectivamente.

    –1–

  • Teoŕıa de la Computabilidad – Notas de Curso – por C.I. Chesñevar y M. L. Cobo

    A := 1;B := 2;C := 3;A := A + 1;C := B + C;B := A + C;

    Figura 1: Un trozo de código Pascal

    P = {p1, p2, . . . , pg} es un conjunto finito de lugares.

    T = {t1, t2, . . . , tg} es un conjunto finito de transiciones.

    IF : P × T → Nat es una función de entrada a las transiciones.

    OF : T × P → Nat es una función de salida de las transiciones.

    2

    Una RP puede representarse gráficamente mediante un multidigrafo bipartitoG = (N,A). El conjunto N es el conjunto de nodos del grafo y A es el conjunto dearcos tal que se verifica que N = P ∪ T y P ∩ T = ∅. Usualmente los lugares serepresentan con nodos “circulares” y las transiciones mediante nodos con forma debarra. Las funciones IF y OF indicarán cuáles son los arcos presentes en el grafo Gsegún el siguiente criterio:

    Para cada par lugar-transición (p, t), sea v el valor de IF (p, t). Entonces setrazan v arcos desde p hacia t.

    Para cada par transición-lugar (t, p), sea v el valor de OF (t, p). Entonces setrazan v arcos desde t hacia p.

    Ejemplo 1.1 Sea una red de Petri M = (P, T, IF,OF ) donde P = {p1, p2, p3},T = {t1, t2} y

    IF :

    P/T t1 t2p1 1 1p2 0 0p3 0 1

    y OF :T/P p1 p2 p3t1 1 0 1t2 0 1 0

    2

    2. Evolución de una Red de Petri

    2.1. Marcado de una RP

    La especificación de una red de Petri presentada en la sección precedente co-rresponde a una caracterización estática. A los fines de que una red RP se pueda

    –2–

  • Teoŕıa de la Computabilidad – Notas de Curso – por C.I. Chesñevar y M. L. Cobo

    comportar dinámicamente se requiere colocar marcas (también llamados tokens) enlos diferentes lugares de la RP . Una transición t de RP podrá activarse (o dispa-rarse) si los lugares desde donde parten arcos entrantes a t poseen al menos tantasmarcas como arcos existentes. Seguidamente se definen formalmente estos conceptos.

    Definición 2.1 [Marcado] Un marcado de una red de Petri es un mapeo M que acada lugar p ∈ P le asigna un número natural n ∈ Nat. Formalmente M(p) = n,∀p ∈ P , con n ∈ Nat. 2

    La definición 2.1 permite hacer notar que una misma red de Petri puede tenerdistintos marcados posibles (véase ejemplo en la figura 2). El marcado de la red seutiliza para definir la situación o configuración en la que se encuentra la misma enun momento dado.

    Figura 2: Distintos marcados para una misma red de Petri

    Cuando el valor n es pequeño basta con utilizar M(p) puntos en el nodo querepresenta el lugar p. Caso contrario se escribe directamente el número M(p) dentrodel lugar p

    Ejemplo 2.1 Sea una red de Petri M2 = (P, T, IF,OF ) donde P = {p1, p2, p3, p4},T = {t1, t2, t3, t4} y

    IF :

    P/T t1 t2 t3 t4p1 1 0 1 0p2 0 1 0 0p3 0 1 0 2p4 0 0 0 0

    y OF :

    T/P p1 p2 p3 p4t1 1 2 0 0t2 0 0 1 0t3 0 0 1 0t4 0 0 0 1

    2

    Para una gran variedad de problemas, las marcas o tokens se utilizan para re-presentar recursos disponibles dentro de un sistema que se está modelando. Todorecurso estará ocupando un cierto lugar p en un momento m del tiempo dado, ypodrá pasar a un nuevo lugar p′ en un momento posterior m′. Al modelar sistemas através de redes de Petri, podemos afirmar genéricamente que los lugares representancondiciones y las transiciones representan eventos.

    Una transición t representará un evento que podrá ocurrir cuando en cada lugarpi que posea arcos inicidentes a t tenga al menos tantos tokens como arcos existentesdesde pi hacia t. En tal situación diremos que la transición t está habilitada. Todatransición que esté habilitada puede dispararse, modificando el marcado de la red,haciendo que este evolucione y cambie.

    –3–

  • Teoŕıa de la Computabilidad – Notas de Curso – por C.I. Chesñevar y M. L. Cobo

    Figura 3: Conjunto de instrucciones correspondiente a la figura 1 modelado usandouna RP

    Ejemplo 2.2 Considérese el trozo de código mostrado en la figura 1.4 La figura 3muestra una red de Petri que modela la relación de precedencia en la ejecución de lasdistintas instrucciones. Nótese que la red muestra que las tres primeras asignacionesson independientes entre śı, y que pueden ejecutarse en cualquier orden. También seevidencia que otras asignaciones (por ejemplo C := B + C) son eventos que puedentener lugar solo si se satisfacen ciertas condiciones previas (en este caso, que lasvariables B y C hayan recibido previamente un valor a través de una asignación). 2

    Definición 2.2 [Transición habilitada] Sea RP = (P, T, IF,OF ) una red de Petri,y sea M su marcado asociado. Diremos que una transición t en RP está habilitadapor M (o también activada por M) si y solo si para cada lugar p que tenga k arcosentrantes en t se cumple que M(p) ≥ k. Más formalmente, t está habilitada si severfica que para todo p ∈ P , M(p) ≥ IF (p, t). 2

    Ejemplo 2.3 La figura 4 muestra cómo distintos marcados para una misma red dePetri tienen como resultado la activación de diferentes transiciones. 2

    Figura 4: Transiciones activadas a partir de diferentes marcados de una RP

    Una transición habilitada es aquella que puede dispararse, haciendo que la redde Petri evolucione de un cierto marcado M en otro marcado M ′. Definiremos for-malmente estos conceptos como sigue:

    4Adaptado de [Joh97].

    –4–

  • Teoŕıa de la Computabilidad – Notas de Curso – por C.I. Chesñevar y M. L. Cobo

    Definición 2.3 [Disparo de una transición] Sea R = (P, T, IF,OF ) una red dePetri, y sea M(P ) un marcado de R tal que existe una transición t ∈ T que estáhabilitada. Se define el disparo de t como un nuevo marcado M ′(P ) definido comosigue: para cada lugar p ∈ P , M ′(p) = M(p)− IF (p, t) +OF (t, p). 2

    Dada una red de Petri R = (P, T, IF,OF ) con un cierto marcado M(P ), es claroque puede existir más de una transición t ∈ T que esté habilitada para ser disparada.Considérese en tal sentido el ejemplo mostrado en la figura 5. A partir de la redinicial, puede dispararse la transición t1 o alternativamente dispararse la transiciónt2. En ambos casos, la situación resultante lleva a un nuevo marcado. En particular,tras disparar t2 puede volver a dispararse la misma transición t2 nuevamente.

    Figura 5: Distintos disparos alternativos a partir de una RP con marcado

    Definición 2.4 [Relación de Transición `rp] Sea R una red de Petri, y sea MR elconjunto de todos los marcados posibles para R. Se define la relación de transición`rp ⊆MR×MR de la siguiente forma: se dirá que un marcado M0 para R evolucionaen un marcado M1 para R (abreviado M0`rpM1) si y solo si existe una transiciónt habilitada en M0 tal que al disparar t el marcado resultante es M1. EscribiremosM0`rp∗Mk si existe una secuencia M0`rpM1`rp . . .Mk−1`rpMk. 2

    Definición 2.5 [Marcado alcanzable. Marcado estancado] Sea R una red de Petri,y sean M y M ′ marcados para R. Se dirá que M ′ es alcanzable a partir de M siM`rp∗M ′. De la misma manera, un marcado M se dirá estancado si no existe ningúnmarcado M ′, siendo M ′ distinto de M , alcanzable desde M . 2

    3. RPs en problemas de multiprocesamiento

    En esta sección abordaremos un problema t́ıpico del área de sistemas operativos:el multiprocesamiento. Una computadora que tiene facilidades de multiprocesamien-to puede realizar más de una tarea al mismo tiempo con un único procesador oCPU. Una estrategia común que se utiliza en estos casos consiste en que el pro-cesador asigne pequeñas fracciones de tiempo a las distintas tareas en ejecución,logrando que el usuario tenga la sensación de que todas las tareas se están ejecutan-do simultáneamente. Este acercamiento es comunmente usado en los denominados

    –5–

  • Teoŕıa de la Computabilidad – Notas de Curso – por C.I. Chesñevar y M. L. Cobo

    Figura 6: Red de Petri para modelar una computadora multitarea con dos terminalesvirtuales

    sistemas multiusuarios, donde varios usuarios pueden trabajar simultáneamente des-de distintas terminales V T1, V T2, . . . , V Tk haciendo uso de un mismo procesador,el cual asigna pequeñas fracciones de tiempo a cada terminal. Las redes de Petripermiten modelar este tipo de situaciones de una manera muy versátil. Las termina-les pueden representarse a partir de lugares de la red, mientras que las transicionesposibilitan representar la disponibilidad de la CPU como recurso necesario para queuna terminal pueda funcionar. El siguiente ejemplo permite apreciar cómo utilizarlas redes de Petri para capturar los aspectos antes mencionados.

    Ejemplo 3.1 [Multiprocesamiento con dos terminales virtuales]5 Considérese unacomputadora multitarea (esto es, que puede realizar más de una tarea al mismotiempo, asignándole un tiempo de procesamiento a cada una de ellas). La compu-tadora posee una única CPU y dos terminales virtuales V T1 y V T2. En cada terminalhay un usuario que quiere ejecutar su programa (ver figura 6). En consecuencia, lacomputadora dará primeramente cierta fracción de tiempo de CPU al usuario dela terminal V T1, luego dará otra fracción de tiempo al usuario de la terminal V T2,luego volverá a dar una fracción de tiempo al usuario de la terminal V T1, y aśısucesivamente.

    Este sistema puede modelarse a través de una red de Petri como la que se muestraen la figura 6. Formalmente, la red definida tendrá la forma M = (P, T, IF,OF,M),donde el conjunto de lugares P representará los distintos elementos de nuestro sis-tema, esto es P = {CPU, V T1, V T2, p1, p2}. Inicialmente el marcado de la red depetri será M(CPU) = 1, M(V T1) = 1 y M(V T2) = 1. El lugar p1 indica que si setiene un token en dicho lugar, entonces el programa de la terminal V T1 está siendoejecutado por la CPU. Lo mismo se aplica para el lugar p2 y la terminal V T2.

    El conjunto T de transiciones involucrará un conjunto T = {t1, t′1, t2, t′2}. A partirde la figura 6 puede verse que la transición t1 estará activada solamente si se disponede la CPU y la terminal V T1 está preparada para ejecución (esto es, hay un tokenen el lugar CPU y otro en el lugar V T1). Lo mismo ocurre para la terminal V T2. Sila terminal V T1 ejecuta su programa asociado, esto se capturará a través del disparode t1. Nótese que una vez que se ha disparado la transición t1, la transición t2 ya nopuede dispararse. Análogamente, si se dispara t2, entonces t1 no podrá dispararse(ver figura 7).

    5Este problema fue adaptado a partir del presentado originalmente en [Aug95].

    –6–

  • Teoŕıa de la Computabilidad – Notas de Curso – por C.I. Chesñevar y M. L. Cobo

    Figura 7: La terminal V T1 en ejecución

    Si la primera vez se dispara t1, la terminal V T1 será atendida, y disparandoluego t′1 se vuelve a la situación de marcado inicial. Luego se dispara t2, y ahorala terminal V T2 será atendida, y V T1 será la que deberá esperar. En consecuencia,la red de Petri modela el hecho de que la CPU es un recurso cuya apropiaciónpuede ser llevada a cabo indistintamente por V T1 o por V T2, pero nunca por ambasterminales simultáneamente.

    2

    Ejercicio 3.1 Dar una definición formal de la red de Petri M = (P, T, IF,OF,M)correspondiente al ejemplo 3.1. 2

    Puede notarse que la red de Petri tal como esta definida no necesariamente in-tercalará su antención entre las dos terminales de usuario. Puede darse el caso quese otorge el tiempo de CPU a la misma terminal una y otra vez dejando a la otra sinantención. Este problema es común en el análisis y estudio de los sistemas operativosy es conocido como inanición.6 Dado que la red de Petri es inherentemente no de-terminista, nada obliga a que V T1 sea siempre la única terminal que seleccionemos,disparando únicamente las transiciones t1 y t

    ′1. En consecuencia, el usuario que tiene

    asignada la terminal V T2 percibirá que la misma está “colgada” y no realiza activi-dad alguna. Para resolver el problema de la inanición debe garantizarse que ambasterminales tengan disponible a la CPU como recurso, y que ninguna de ellas pue-da apropiarse de la misma indefinidamente. La figura 8 muestra una formalizaciónalternativa que resuelve este problema.

    4. Redes de Petri como reconocedoras de lengua-

    jes formales

    Sin importar cual sea la red de Petri con la que se cuente siempre se puede obtenersu lenguaje asociado. El manejo de redes de Petri como reconocedoras de lenguajesademás de las facilidades naturales para el establecimiento de propiedades, brinda

    6También conocido por su nombre en inglés como starvation.

    –7–

  • Teoŕıa de la Computabilidad – Notas de Curso – por C.I. Chesñevar y M. L. Cobo

    Figura 8: Un sistema multitarea sin inanición

    Figura 9: Disparos de transiciones en el sistema multitarea sin inanición

    capacidades para la especificación y śıntesis automática de otras redes de Petri. Si elcomportamiento deseado de una red, puede ser especificado a través de un lenguaje;entonces una red de Petri que lo reconozca puede especificarse de manera autómatica.Esta red de Petri se puede utilizar como una especie de ‘controlador’ que aceptesolo aquellas secuencias que son esperadas. Otro aspecto a tener en cuenta comomotivación para el estudio de redes de Petri como reconocedoras de lenguajes, es eldeseo de determinar las condiciones de decibilidad de esta formalismo y su relacióncon el resto de los formalismos existentes para el reconocimiento de lenguajes.

    En caṕıtulos anteriores hemos presentado distintos autómatas reconocedores paralenguajes formales. Aśı, hemos visto por caso que todo lenguaje regular tiene unautómata finito reconocedor asociado. Algo análogo suced́ıa con los autómatas apila no deterministas y los lenguajes libres de contexto. Veremos en esta secciónque un uso particular que tienen las RPs es el reconocimiento de lenguajes formales.La forma habitual de realizar esto es asociar cadenas de un lenguaje L dado a‘secuencias de disparos’ de la red. Para lograr esto, cada transición de la red de Petriserá rotulada con un elemento del alfabeto asociado al lenguaje L. Otro aspecto quedebe tenerse en cuenta es que debe establecerse cual será el equivalente al estadoinicial y cual a los estados finales o aceptadores. Estos dos conceptos quedaránespecificados en la definición a través de dos marcados distinguidos Minicio y Mfinal.Luego una red de Petri R reconocerá una cadena w = c1c2 . . . ck como perteneciente

    –8–

  • Teoŕıa de la Computabilidad – Notas de Curso – por C.I. Chesñevar y M. L. Cobo

    En un lenguaje formal En Redes de PetriAlfabeto Σ Conjunto de transiciones T = {t1, t2, . . . , tk}Conjunto Σ∗ Conjunto T ∗ de todas las secuencias de transiciones posiblesLenguaje L ⊆ Σ∗ Lenguaje Lt ⊆ T ∗Cadena w ∈ L Secuencia de disparos S ∈ Lt tal que S = ti1 , ti2 , . . . , tin

    Figura 10: Analoǵıa entre conceptos de lenguajes formales y transiciones en RPs

    En Teoŕıa de Autómatas En Redes de PetriAlfabeto Σ Conjunto de transiciones T = {t1, t2, . . . , tk}Estados S = {s0, s1, . . . sk } Conjunto de lugares P = {p1, p2, . . . , pk}Estado inicial s0 Marcado Incial MinicioEstados aceptadores F ⊆ S Conjunto de Marcados Finales MfinFunción de transición δ Tablas de especificación IF y OF

    Figura 11: Analoǵıa entre conceptos de teoŕıa de autómatas y transiciones en RPs

    a un cierto lenguaje L si partiendo del marcado inicial Minicio para R se alcanza elmarcado Mfin realizando sucesivos disparos de transiciones t1, t2, . . . tk, donde latransición ti corresponde al śımbolo ci de la cadena w. Más adelante se presentaránformalmente estos conceptos. Introduciremos primeramente la noción de red de Petriaceptadora, definida como sigue:

    Definición 4.1 [Red de Petri aceptadora] Una red de Petri aceptadora es una 6-upla (P, T, IF,OF,Minicio,Mfin), donde P ,T ,IF y OF cumplen un rol análogo alde la definición 1.2, y Minicio y Mfin son marcados denominados inicial y final,respectivamente. 2

    Una red de Petri aceptadora tiene la peculiaridad de que se distinguen en ellalos marcados inicial y final. Sea T ∗ el conjunto de todas las secuencias posiblesde transiciones en una red de Petri aceptadora. Si se piensa cada transición comoun śımbolo de un lenguaje formal Lt, entonces cualquier secuencia de transicionest, t′, t′′, . . . , tm es una cadena del lenguaje Lt. Dado que la secuencia de transicionest, t′, t′′, . . . , tm está formada a partir de una serie de disparos de transiciones, lamisma es denominada secuencia de disparos. Las figuras 10 y 11 ilustran la analoǵıaentre los distintos conceptos vistos para redes de Petri y su correspondencia con lateoŕıa de lenguajes formales y la teoŕıa de autómatas.

    Definición 4.2 [Secuencia de disparos en una red de Petri aceptadora] Una secuen-cia de disparos S para una red de Petri aceptadora R = {P, T, IF,OF,M0,Mf}, esun elemento de T ?. 2

    Definición 4.3 [Secuencia S aceptada por red de Petri aceptadora R] Sea S =t1, t2, . . . , tn una secuencia de disparos para una red de Petri R. Se dirá que S esaceptada por R si y solo si existen n − 1 marcados M1,M2, . . . ,Mn−1 de R tal queM0 ` M1 ` M2 ` . . . ` Mn−1 ` Mf por el disparo de t1, . . . , tn. respectivamente. Ellenguaje de secuencias de disparo de R se define como

    –9–

  • Teoŕıa de la Computabilidad – Notas de Curso – por C.I. Chesñevar y M. L. Cobo

    Figura 12: Reconocimiento de la cadena c (ejemplo 4.1)

    L(R) = {S | S ∈ T ?y S es aceptada por R}

    2

    Ejemplo 4.1 [Adaptado a partir de [Aug95]] Considere la RP

    M = (P, T, IF,OF,M0,Mf )

    donde P = {p1, p2, p3} y T = {a, b, c}, tal que IF , OF , M0 y Mf se definen comosigue:

    IF :

    P\T a b cp1 1 0 1p2 0 1 0p3 0 1 0

    y OF :

    T\P p1 p2 p3a 1 1 0b 0 0 1c 0 0 1

    M0 =def

    M0(p1) = 1M0(p2) = 0M0(p3) = 0

    y Mf =def

    Mf (p1) = 0Mf (p2) = 0Mf (p3) = 1

    La figura 12 ilustra cómo la red R acepta la secuencia c. Otras secuencias acep-tadas son acb, aacbb, aaacbbb, etc. Esto puede generalizarse, concluyéndose que ellenguaje aceptado por la red R es L(R) = {ancbn|n ≥ 0}. 2

    5. Etiquetado de Redes de Petri

    Cuando se realiza el etiquetado de una Red de Petri se establece una correspon-dencia (mapeo) entre transiciones y elementos asociados a ellas. Las formas usualesde realizar etiquetados se categorizan de acuerdo al tipo de etiquetas permitidas, yson las siguientes:

    1. Etiquetado arbitrario: es un mapeo Φ : T → Σ ∪ {λ}

    –10–

  • Teoŕıa de la Computabilidad – Notas de Curso – por C.I. Chesñevar y M. L. Cobo

    2. Etiquetado libre de λ: En este caso el mapeo Φ se define como antes, exceptoque λ no es permitida como etiqueta.

    3. Etiquetado libre: Es todo mapeo Φ tal que para toda ti, tj ∈ T tal que secumple que Φ(ti) =Φ(tj), entonces ti = tj. En otras palabras, Φ es una funcióninyectiva.7

    Definición 5.1 [Clases de lenguajes aceptados por RPs según etiquetado] Denomi-naremos como Larbit, Lλ−libre y Llibre a las clases de lenguajes aceptados por RPscon etiquetado arbitrario, libre de λ y libre, respectivamente. 2

    La categorización de lenguajes de redes de Petri es más compleja, ya que tambiénexisten clasificaciones que dependen de las restricciones impuestas a los marcadosinicial y final. Un estudio exhaustivo de todas las clases de lenguajes escapa al alcancede este curso. Notemos que en este caṕıtulo hemos analizado la clase de lenguajesLarbit, la que constituye la clase más general de los lenguajes reconocibles con Redesde Petri como se desprende a partir del siguiente lema.

    Lema 5.1 Sean Larbit, Lλ−libre y Llibre las clases de lenguajes aceptados por RPscon etiquetado arbitrario, libre de λ y libre, respectivamente. Entonces se verificaque

    Larbit ⊇ Lλ−libre ⊇ Llibre

    2

    Demostración: La demostración de este lema puede hallarse en la sección 6.3.4 de[Pet81].

    6. Propiedades de Clausura en Larbit

    Al igual que para los demás lenguajes vistos en el curso, revisaremos brevementelas propiedades de clausura más usuales. Al hacerlo puede caracterizarse con mejorprecisión el alcance representativo de las RP y permite conocer métodos para cons-truir sistemas más grandes a partir de módulos más pequeños. Consideraremos launión, concatención, intersección, complemento, estrella de Kleene y homomorfismosobre lenguajes de la misma forma que en los caṕıtulos anteriores. Respecto de lasustitución, consideraremos la sustitución finita que solo permite reemplazar a ca-da uno de los elementos de un lenguaje por un lenguaje finito cualquiera. Ademásde la propiedades tradicionales mencionadas por las caracteristicas particulares delformalismo de los reconoce, estos lenguajes también son cerrados bajo operacionesespeciales denominadas concurrencia y reverso.

    Teorema 6.1 [Propiedades de clausura de Larbit] Los lenguajes de la clase Larbit soncerrados bajo unión, concatención, intersección, homomorfismo finito y sustituciónfinita. No lo son bajo estrella de Kleene, complemento y sustitución generalizada. 2

    7Informalmente, un etiquetado libre asegura toda transición recibe una etiqueta única que esdistinta a la del resto de las transiciones.

    –11–

  • Teoŕıa de la Computabilidad – Notas de Curso – por C.I. Chesñevar y M. L. Cobo

    Demostración: La demostración de este teorema puede hallarse en las secciones6.4 y 6.5 de [Pet81].

    Saber que las redes de Petri son cerradas bajo sustitución finita es relevante almomento de diseño ya que permite modularizar más fácilmente muchos problemascomplejos.

    7. Expresividad de las redes de Petri

    Hemos visto en la sección 4 que las redes de Petri aceptadoras permiten reconocerlas cadenas que pertenecen a un lenguaje formal dado. Surge naturalmente entoncesuna pregunta: ¿cuál es el alcance expresivo de las redes de Petri en el marco de lajerarqúıa de Chomsky? Para delimitar la expresividad de las redes de Petri comoreconocedoras de lenguajes recurriremos a algunos teoremas enunciados en [Pet81],remitiéndose al lector interesado a dicho texto para encontrar alĺı la correspondientedemostración. El análisis que sigue a continuación se basa asimismo en el desarrolladoen [Pet81].

    Teorema 7.1 Todo lenguaje regular puede reconocerse a través de una red de Petriaceptadora. 2

    Demostración: La prueba puede hallarse en [Pet81, Sección 6.6].El ejercicio 7.1 permite ver que también existen lenguajes no regulares que pueden

    reconocerse a través de una red de Petri, con lo cual debemos concluir que las redesde Petri reconocen no solo lenguajes regulares, sino también algunos que –comohemos visto anteriormente– pertenecen a la clase de los lenguajes libres de contexto.¿Reconocerán las redes de Petri aceptadoras todos los lenguajes libres de contexto?Puede demostrarse que esto no es aśı, tal como lo enuncia el siguiente teorema:

    Teorema 7.2 Existen lenguajes libres de contexto que no pueden reconocerse através de una red de Petri. 2

    Demostración: La demostración consiste en dar un contraejemplo. Puede probarseque el lenguaje L : {wwR : w ∈ {a, b}?} no puede reconocerse a través de una red dePetri. La razón intuitiva es la siguiente: dada una cadena wwR ∈ L, cualquier redde Petri RRP será capaz de recordar la cantidad de śımbolos a y b que se asociaronpara w, pero no puede identificar si aparecen luego en el orden correcto (esto es, enel orden inverso) al procesar wR. La prueba formal de este teorema puede hallarseen [Pet81, Sección 6.6].

    Ejercicio 7.1 [Adaptado de [Pet81]] Mostrar que el lenguaje libre del contextoLLC = {anbn | n > 1} es representable mediante una red de Petri aceptadora. 2

    El ejercicio 7.2 muestra asimismo que la clase de lenguajes reconocidos por redesde Petri no está estrictamente incluida en la clase de los lenguajes libres del contexto.

    Ejercicio 7.2 [Adaptado de [Pet81]] Mostrar que el lenguaje sensible al contextoL = { anbncn | n > 1} es reconocible a través de una red de Petri aceptadora. 2

    –12–

  • Teoŕıa de la Computabilidad – Notas de Curso – por C.I. Chesñevar y M. L. Cobo

    Figura 13: Relación entre los lenguajes reconocidos a través Redes de Petri y laclasificación de los lenguajes según la jerarqúıa de Chomsky

    Ya que existen lenguajes libres del contexto no reconocibles por redes de Petri esclaro que no es posible que los LSC estén estrictamente incluidos en la clase de loslenguajes reconocidos por redes de Petri o que se trate del mismo conjunto. Luego entérminos conjuntistas restan dos situaciones posibles para denotar la relación entrelos lenguajes sensibles al contexto y los reconocibles por una red de Petri. O bien loslenguajes reconocidos por redes de Petri están estrictamente incluidos en el conjuntode los LSC o existe entre ellos una intersección pero ninguno está contenido en elotro. El siguiente resultado aclara la situación.

    Teorema 7.3 Todo lenguaje reconocido por una red de Petri aceptadora pertenecea la clase de lenguajes sensibles al contexto. 2

    Demostración: Véase sección 6.6 de [Pet81].Los resultados anteriores son resumidos mediante el gráfico de la figura 13.Los resultados presentados muestran que las redes de Petri tienen una potencia

    expresiva limitada, inferior a la de los autómatas acotados linealmente (capaces dereconocer todo lenguaje sensible al contexto). Posteriormente se verá que es factibleextender el poder de cómputo de las redes de Petri a través de un tipo especial dearcos, denominados arcos inhibidores. Las redes de Petri extendidas de esta formatendrán un poder equivalente a las máquinas de Turing, y serán en consecuenciacapaces de reconocer la clase de lenguajes sensibles al contexto. No obstante, noabundaremos aqúı en mayores detalles sobre esta cuestión, y postergaremos el tra-tamiento detallado de este tema para la próxima sección.

    8. Redes de Petri Extendidas con Arcos Inhibi-

    dores

    A lo largo de las secciones precedentes se han presentado las caracteŕısticas prin-cipales de las redes de Petri, las bases de su funcionamiento y su capacidad paraprocesar lenguajes. Se mostró que las redes de Petri no son capaces de procesar to-dos los lenguajes libres de contexto. Esta sección se introducirá un tipo especial dearco denominado arco inhibidor, que –como se verá más adelante– permite aumentarnotablemente su capacidad de cómputo.

    –13–

  • Teoŕıa de la Computabilidad – Notas de Curso – por C.I. Chesñevar y M. L. Cobo

    Los arcos inhibidores permiten lograr lo que se denomina “capacidad de testeopor cero”. Al incorporar arcos inhibidores, la red de Petri tendrá la capacidad deverificar si en un determinado lugar la cantidad de tokens es nula (esto es, no hayningún token). Notemos que esto es imposible de llevar a cabo con los arcos con-vencionales, dado que se requiere la existencia de al menos un token para llevar acabo el disparo de una transición. Por el contrario, un arco inhibidor asociado a unatransición t ayudará a dispararla solo si el lugar o nodo desde el cual parte no tieneningún token.

    La propuesta agrega otro tipo de arcos a los ya considerados para una red dePetri. Es decir, además de tener dos tipos de nodos tendremos dos tipos de arcos: loscomúnes y los inhibidores. Un arco común ayuda a que una transición sea disparadasiempre que en el nodo desde el cual parte el arco haya un token para “alimentarlo”.Por el contrario un arco inhibidor ayuda a que una transición se dispare si en el nododesde el cual parte no hay tokens. Gráficamente indicaremos un arco inhibidor conuna ĺınea y una pequeña circunferencia en su terminación.

    Ejemplo 8.1 [Adaptado de [Aug95]] La figura 14 (izq.) ilustra una red de Petri conun arco inhibidor. Se muestra cómo se comporta la misma a partir de dos marcadosiniciales diferentes, ilustrándose cómo utilizar un arco inhibidor para determinar siun cierto lugar p está vacio o no.

    Figura 14: Uso de un arco inhibidor para implementar testeo por cero.

    En el caso de que el lugar p no contenga tokens se dispara la transición t1,colocando un token en en lugar p1. En caso contrario se disparará la transición t2con un doble efecto: se devuelve el token disparado al lugar p y se coloca tambiénun token en el lugar p2. Nótese que la presencia posterior de un token en el lugarp1 indica que el lugar p estaba vaćıo; en caso contrario, el token será ubicado en ellugar p2.

    Nótese también que independientemente de cuál sea la transición disparada (t1 ot2), el contenido original del lugar p no se altera. Decimos entonces que se lleva a caboun testeo no-destructivo. Puede pensarse entonces que la red de Petri en cuestiónimplementa un test similar al realizado por una estructura de control condicional:si p = 0 then p1 else p2. Los lugares p1 y p2 pueden entenderse como posibles cursosde acción a realizar. 2

    –14–

  • Teoŕıa de la Computabilidad – Notas de Curso – por C.I. Chesñevar y M. L. Cobo

    El uso de arcos inhibidores en redes de Petri no será abordado en profundidad enesta materia. Posteriormente veremos una aplicación útil de los mismos al mostrarla equivalencia de las redes de Petri con otros formalismos alternativos.

    9. Aplicaciones de Redes de Petri

    En Ciencias de la Computación es común que sea necesario modelar sistemascomplejos en los cuales las distintas partes puedan evolucionar de manera indepen-diente entre śı. Las Redes de Petri son consideradas una herramienta sumamenteimportante para el estudio de estos sistemas. Con su ayuda podemos modelar elcomportamiento y la estructura de un sistema complejo, y estudiar sus caracteŕısti-cas sin necesidad de realizar ese análisis sobre el sistema real (lo que normalmentees costoso o imposible de realizar).

    La teoŕıa de las redes de Petri ha llegado a ser reconocida como una metodoloǵıacomún en robótica para modelar sistemas de manufactura que sean flexibles y quepuedan respetar restricciones temporales y de sincrońıa. En efecto: a diferencia de losautómatas finitos (u otro tipo de autómatas), las redes de Petri ofrecen una formade expresar procesos que requieren sincrońıa. Dicha sincrońıa puede estudiarse yanalizarse de manera formal y obtener información del comportamiento dinámicodel sistema modelado.

    Algunas aplicaciones de redes de Petri son las siguientes:

    Servicios de redes inteligentes (aplicados por caso por la empresa alemanaDeutsche Telekom).

    Protocolos para sistemas de audio y video (aplicados por la empresa Bang &Olufsen A/S).

    Algoritmos para manejo de redes de cajeros automáticos (University of Aarhus,Dinamarca).

    Estándares de comunicación multimedia en Internet.

    Sistemas de señales (Brasil).

    10. Referencias

    El orden de presentación de los conceptos de este caṕıtulo está basado parcial-mente en los presentados en [Aug95] y [Pin97]. Los conceptos fundamentales de redesde Petri pueden consultarse en la Tesis Doctoral de Carl Adam Petri [Pet62]. Unanálisis detallado de las redes de Petri y sus propiedades y aplicaciones puede encon-trarse en [Pet81]. Un tratamiento sucinto de redes de Petri (incluyendo ejercitación)puede consultarse en [Joh97].

    –15–

  • Teoŕıa de la Computabilidad – Notas de Curso – por C.I. Chesñevar y M. L. Cobo

    Referencias

    [Aug95] Juan Carlos Augusto. Fundamentos de Ciencias de la Computación - Notasde Curso. Universidad Nacional del Sur, Bah́ıa Blanca, Argentina, 1995.

    [Joh97] Richard Johnsonbaugh. Matemáticas Discretas. Prentice Hall, 1997.

    [Pet62] Carl Petri. Komunikation mit Automaten. PhD thesis, Universidad deDarmstadt, Alemania, 1962.

    [Pet81] James Peterson. Petri Net Theory and the modeling of systems. PrenticeHall, Englewood Cliffs, New Jersey, 1981.

    [Pin97] Ramón Brena Pinero. Lenguajes formales y autómatas. Centro de Inteligen-cia Artificial. Instituto Tecnológico y de Estudios Superiores de Monterrey,Monterrey, México, 1997.

    –16–