Sunteți pe pagina 1din 30

Unidad 6.

- Introduccin a los Lenguajes formales

Lenguaje formal
En matemticas, lgica, y las ciencias computacionales, un lenguaje formal es un conjunto de palabras (cadenas de caracteres) de longitud finita formadas a partir de un alfabeto (conjunto de caracteres) finito. Informalmente, el trmino lenguaje formal se utiliza en muchos contextos (en las ciencias, en derecho, etc.) para referirse a un modo de expresin ms cuidadoso y preciso que el habla cotidiana. Hasta finales de la dcada de 1990, el consenso general era que un lenguaje formal, en el sentido que trata este artculo, era en cierto modo la versin lmite de este uso antes mencionado: un lenguaje tan formalizado que poda ser usado en forma escrita para describir mtodos computacionales. Sin embargo, hoy en da, el punto de vista de que la naturaleza esencial de los lenguajes naturales (sin importar su grado de formalidad en el sentido informal antes descrito) difiere de manera importante de aquella de los verdaderos lenguajes formales (en el sentido estricto de este artculo) gana cada vez ms adeptos. Un posible alfabeto sera, digamos, {a, b}, y una cadena cualquiera sobre este alfabeto sera, por ejemplo, ababba. Un lenguaje sobre este alfabeto, que incluyera esta cadena, sera: el conjunto de todas las cadenas que contienen el mismo nmero de smbolos a que b, por ejemplo. La palabra vaca (esto es, la cadena de longitud cero) es permitida y frecuentemente denotada mediante o . Mientras que el alfabeto es un conjunto finito y cada palabra tiene una longitud tambin finita, un lenguaje puede bien incluir un nmero infinito de palabras. Algunos ejemplos varios de lenguajes formales: el conjunto de todas las palabras sobre {a, b} n el conjunto {a : n es un nmero primo} el conjunto de todos los programas sintcticamente vlidos en un determinado lenguaje de programacin el conjunto de entradas para las cuales una particular mquina de Turing se detiene. Los lenguajes formales pueden ser especificados en una amplia variedad de maneras, como: cadenas producidas por una gramtica formal (ver Jerarqua de Chomsky) cadenas producidas por una expresin regular cadenas aceptadas por un autmata, tal como una mquina de Turing. Varias operaciones pueden ser utilizadas para producir nuevos lenguajes a partir de otros dados. Supngase que L1 y L2 son lenguajes sobre un alfabeto comn. Entonces: la concatenacin L1L2 consiste de todas aquellas palabras de la forma vw donde v es una palabra de L1 y w es una palabra de L2 la interseccin L1&L2 consiste en todas aquellas palabras que estn contenidas tanto en L1 como en L2 la unin L1|L2 consiste en todas aquellas palabras que estn contenidas ya sea en L1 o en L2
Ing. Miguel ngel Durn Jacobo 1

Unidad 6.- Introduccin a los Lenguajes formales

el complemento ~L1 consiste en todas aquellas palabras producibles sobre el alfabeto de L1 que no estn ya contenidas en L1 el cociente L1/L2 consiste de todas aquellas palabras v para las cuales existe una palabra w en L2 tales que vw se encuentra en L1 la estrella L1* consiste de todas aquellas palabras que pueden ser escritas de la forma W1W2...Wn donde todo Wi se encuentra en L1 y n 0. (Ntese que esta definicin incluye a & epsilon en cualquier L*) la intercalacin L1*L1 consiste de todas aquellas palabras que pueden ser escritas de la forma v1w1v2w2...vnwn son palabras tales que la concatenacin v1...vn est en L1, y la concatenacin w1...wn est en L2

Una pregunta que se hace tpicamente sobre un determinado lenguaje formal L es cun difcil es decidir si incluye o no una determinada palabra v. Este tema es del dominio de la teora de la computabilidad y la teora de la complejidad computacional. Por contraposicin al lenguaje propio de los seres vivos y en especial el lenguaje humano, considerados lenguajes naturales, se denomina lenguaje formal a los lenguajes artificiales propios de las matemticas o la informtica, los lenguajes artificiales son llamados lenguajes formales (incluyendo lenguajes de programacin). Sin embargo, el lenguaje humano tiene una caracterstica que no se encuentra en los lenguajes de programacin: la diversidad. En 1956, Noam Chomsky cre la Jerarqua de Chomsky para organizar los distintos tipos de lenguaje formal. LENGUAJES Se considera el conjunto S * que consta de todas las cadenas finitas de elementos del conjunto S. Existen muchas interpretaciones posibles de los elementos de S * , segn la naturaleza de S. Si se piensa en S como un conjunto de palabras, entonces S * se puede considerar como la coleccin de todas las oraciones posibles formadas con palabras de S. Por supuesto, tales oraciones no necesariamente tienen sentido ni una estructura evidente. Se puede pensar un lenguaje como una especificacin completa, al menos en principio, de tres cosas. En primer lugar, debe existir un conjunto S con todas las palabras que se consideran parte del lenguaje. En segundo lugar, hay que designar un subconjunto de S como el conjunto de las oraciones con construccin adecuada en el lenguaje. Supngase, a manera de ejemplo, que S consta de todas las palabras del espaol. La especificacin de una oracin con construccin adecuada implica todas las reglas de la gramtica espaola; el significado de una oracin queda determinado por esta construccin y por el significado de las palabras. La oracin Iba a la tienda Juan Jorge a cantar Es una cadena en S pero no una oracin con una construccin adecuada. La disposicin de los sustantivos y los verbos no es vlida.

Ing. Miguel ngel Durn Jacobo

Unidad 6.- Introduccin a los Lenguajes formales

Por otro lado, la oracin Los sonidos azules se sientan y cruzan la pierna bajo la cima de la montaa tiene una construccin adecuada pero carece completamente de sentido. Para otro ejemplo, S podra constar de los enteros, los smbolos +, , X y , as como los parntesis izquierdo y derecho. Se obtendr un lenguaje si se designa como adecuadas las cadenas en S que representen sin ambigedades expresiones algebraicas con parntesis. As, ((3 2) + (4 X 7)) 9 y (7 (8 (9 10))); son oraciones con construccin adecuada en este lenguaje. Por otro lado, (2 3)) + 4, 4 3 2 y)2 + (3 ) X 4 no tienen una construccin adecuada. La primera tiene demasiados parntesis, la segunda, pocos (no se sabe cul resta se debe realizar primero) y la tercera tiene parntesis y nmeros completamente fuera de lugar. Todas las expresiones con construccin adecuada tienen sentido, excepto las que implican la divisin entre cero. El significado de una expresin es el nmero racional que representa. As, el significado de ((2 1) 3) + (4 X 6) es 73/3, mientras que 2 + (3 0) y (4 + 2) (0 0) no tienen sentido. La disciplina que regula la construccin adecuada de las oraciones es la sintaxis de un lenguaje. La que se encarga del significado de las oraciones es la semntica de un lenguaje. Gramticas Una gramtica para estructura de expresiones G es una 4-ada ( V , S , vo , a ), donde V es un

conjunto finito, S es un subconjunto de V , v0 V S y a es una relacin finita en V * . La idea es que S es, como ya se ha analizado, el conjunto de todas las palabras permitidas en el lenguaje, y V consta de S adems de algunos otros smbolos. El elemento v0 de V es un punto de partida para las sustituciones, que sern analizadas en breve. Por ltimo la relacin a sobre V* especifica los reemplazos permisibles, en el sentido de que, si w a w se puede reemplazar w con w siempre que aparezca la cadena w, ya sea sola o como subcadena de alguna otra cadena. Tradicionalmente, a la proposicin w a w se le llama produccin de G. Entonces, w y w son los lados izquierdos y derecho de la produccin, respectivamente. Supngase que ninguna produccin de G tiene a la cadena vaca como lado izquierdo. Es la a relacin de produccin de G.
Esto parecera complicado, pero en realidad es una idea sencilla, como muestran los siguientes ejemplos. Si G = ( V , S , vo , a ) es una gramtica para la estructura de oraciones, S es el conjunto de smbolos terminales y N = V S es el conjunto de smbolos no termina obsrvese que V = S N.

Ing. Miguel ngel Durn Jacobo

Unidad 6.- Introduccin a los Lenguajes formales

Ejemplo 1. Sea S = {Juan, Julia, maneja, corre, descuidadamente, rpido, frecuentemente), N = {oracin, sujeto, predicado, verbo, adverbio) y sea V=S N. Sea v0 =oracin, y supngase que la relacin a en V* queda descrita enumerando todas las producciones como sigue. Oracin a sujeto predicado Sujeto a Juan sujeto a Julia predicado a verbo adverbio verbo a maneja verbo a corre adverbio a descuidadamente adverbio a rpido adverbio a frecuentemente El conjunto S contiene todas las palabras permitidas en el lenguaje; N consta de las palabras que describen partes de la oracin, pero que en realidad no estn contenidas en el lenguaje. Se afirma que la oracin Julia maneja frecuentemente, que ser denotada por w, es una oracin permisible o con sintaxis correcta, de acuerdo con las reglas de este lenguaje. Para demostrar esto, considrese la siguiente serie de cadenas en V*. Oracin. sujeto predicado Julia Julia Julia Julia predicado verbo maneja maneja adverbio adverbio frecuentemente

Ahora bien, cada una de las cadenas es consecuencia de la anterior, utilizando una produccin para realizar una sustitucin parcial o completa. En otras palabras, cada cadena est relacionada con la siguiente cadena por la relacin , de modo que oracin w. Por definicin, w tiene una sintaxis correcta ya que, en este ejemplo, y es una oracin. En las gramticas para la estructura de oraciones, la bsqueda de una sintaxis correcta se refiere slo al proceso mediante el cual al formar una oracin se procura que sta sea correcta gramaticalmente hablando, y nada ms. Hay que observar que la serie de sustituciones que producen una oracin vlida, serie que es llamada deduccin (o derivacin) de la oracin, no es nica.

Ing. Miguel ngel Durn Jacobo

Unidad 6.- Introduccin a los Lenguajes formales

La siguiente deduccin produce la oracin w del ejemplo 1, pero no es idntica a la deduccin dada antes. Oracin sujeto predicado sujeto verbo adverbio sujeto verbo frecuentemente sujeto maneja frecuentemente Julia maneja frecuentemente

El conjunto de todas las oraciones con construccin adecuada que pueden ser producidas aplicando las reglas de una gramtica G es el lenguaje de G y se denota L(G). El lenguaje de la gramtica del ejemplo 1 constituye un sublenguaje sencillo del espaol, y contiene precisamente 12 oraciones. El lector puede verificar que Juan corre descuidadamente est en el lenguaje L(G) de esta gramtica, mientras que Julia frecuentemente corre no est en L(G).

Diagrama de sintaxis
Un segundo mtodo para desplegar las producciones de ciertas gramticas de tipo 2 es el diagrama de sintaxis. Permite ver al usuario como un movimiento a travs de diagramas

oracin

rbol de deduccin oracin

sujeto

predicado

sujeto

predicado

(a) (b)
Julia

Ing. Miguel ngel Durn Jacobo

Unidad 6.- Introduccin a los Lenguajes formales

oracin

oracin

Sujeto

predicado

sujeto

predicado

Verbo Julia Julia verbo adverbio

adverbio

(d) (c)
maneja oracin sujeto Julia predicado

(e)
verbo adverbio

maneja frecuentemente Tipo 0 si no se establecen restricciones sobre las producciones de G. Tipo 1 si para cualquier produccin w1 a w2 , la longitud de w1 es menor o igual que la longitud de w2 (donde la longitud de la cadena es el numero de palabras en la cadena). Tipo 2 si el lado izquierdo de cada produccin es un nico smbolo no terminal y el lado derecho consta de uno o mas smbolos. Tipo 3 si el lado izquierdo de cada produccin es un nico smbolo no terminal y el lado derecho tiene uno o mas smbolos, incluyendo a lo mas un smbolo no terminal, que debe estar en el extremo derecho de la cadena.

Ing. Miguel ngel Durn Jacobo

Unidad 6.- Introduccin a los Lenguajes formales

REPRESENTACIONES DE LENGUAJES Y GRAMTICAS ESPECIALES Notacin BNF


Una alternativa que se encuentra con frecuencia es la flotacin BNF (forma Backus-Naur). Se sabe que los lados izquierdos de todas las producciones en una gramtica de tipo 2 son smbolos no terminales nicos. Para cada uno de tales smbolos w, se combina todas las producciones que tienen a w como lado izquierdo. El smbolo w permanece a la izquierda, y todos los lados derechos asociados con w son enumerados juntos, separados por el smbolo . El smbolo a relacional se reemplazan por el smbolo :: =. Por ltimo, los smbolos no terminales, cuando aparezcan, sern encerrados entre parntesis agudos . Ejemplo 1. En la notacin BNF, las producciones del ejemplo 1 aparecen Como sigue. oracin sujeto predicado verbo adverbio :: = :: = :: = :: = :: = sujeto Juan verbo maneja Julia adverbio corre rpido frecuentemente predicado

descuidadamente

Ejemplo 2. En la notacin BNF, las producciones aparecen como sigue.

v0
w

::= a ::= bb

w w c

Observe que el lado izquierdo de una produccin puede aparecer tambin en una de las cadenas del lado derecho. As, en la segunda lnea del ejemplo 2, (w) aparece a la izquierda, y aparece en la cadena bb(w) de la derecha. Cuando esto ocurre, se dice que la produccin correspondiente w a bbw es recursiva. Si una produccin recursiva tiene a w como lado izquierdo, la produccin es normal si w aparece slo una vez en el lado derecho y es el smbolo del extremo derecho. En el lado derecho tambin pueden aparecer otros smbolos no terminales.

Diagramas de sintaxis
Es una imagen de las producciones que permite al usuario ver las sustituciones en forma dinmica es decir verlas como un movimiento a travs del diagrama. Son los diagramas de traduccin de conjuntos de producciones tpicos. Un enunciado BNF que tiene una nica produccin, como w :: = w1 w2 w3 produce como resultado al siguiente diagrama:
7

Ing. Miguel ngel Durn Jacobo

Unidad 6.- Introduccin a los Lenguajes formales

W1

W2

W3

Los smbolos (palabra) que forman el lado derecho de la produccin son trazados en serie de izquierda a derecha. Las flechas indican la direccin la direccin en la que se debe hacer los movimientos para realizar una sustitucin, mientras que la etiqueta w indica lo que se esta sustituyendo en vez del smbolo w. Los rectngulos que encierran a w1, w2, w3, denotan el hecho de que son smbolos no terminales. Si existen smbolos terminales, se los encierra en crculo o elipse.

Gramticas regulares y expresiones regulares.


Existe una conexin estrecha entre el lenguaje de una gramtica regular y una expresin regular. Teorema 1. Sea S un conjunto finito y L S *. Entonces L es un conjunto regular si y solo si L = L(G) para alguna gramtica regular G = (V, S, v0, a ). El teorema dice que el lenguaje L(G) de una gramtica regular G debe ser el conjunto correspondiente a cierta expresin regular sobre S, pero no dice cmo determinar tal expresin regular. Si la relacin de G se especifica en forma BNF o en forma de diagrama de sintaxis, se puede calcular la expresin regular deseada de manera razonablemente directa. Ejemplo: G = (V, S, v0, a ) y que a est dada por un conjunto de diagramas de sintaxis. D1 D1 1 D2 2 D1 3 D2

Ing. Miguel ngel Durn Jacobo

Unidad 6.- Introduccin a los Lenguajes formales

Gramtica formal
La gramtica es un ente o modelo matemtico que permite especificar un lenguaje, es decir, es el conjunto de reglas capaces de generar todas las posibilidades combinatorias de ese lenguaje, ya sea ste un lenguaje formal o un lenguaje natural. La expresin gramtica formal tiene dos sentidos: (a) gramtica de un lenguaje formal. (b) descripcin formal de la gramtica de un lenguaje natural. Cuando nos referimos a lenguaje natural estas reglas combinatorias reciben el nombre de sintaxis, y son inconscientes. Hay distintos tipos de gramticas formales que generan lenguajes formales (vase la Jerarqua de Chomsky). Imaginemos una gramtica con estas dos reglas: 1. A bAc 2. A de La idea es sustituir el smbolo inicial de la izquierda por otros smbolos aplicando las reglas. El lenguaje al cual representa esta gramtica es el conjunto de cadenas de smbolos que pueden ser generados de esta manera: en este caso, por ejemplo:
A bAc bbAcc bbbAccc bbbdeccc.

El elemento en maysculas es el smbolo inicial. Los elementos en minsculas son smbolos terminales. Las cadenas de la lengua son aquellas que solo contienen elementos terminales, como por ejemplo: bbbdeccc, de, bdec,... Estas seran tres posibles realizaciones del lenguaje cuya gramtica hemos definido con dos reglas. Para comprender mejor el concepto pondremos algunas reglas de la gramtica castellana:

Una FRASE se puede componer de SUJETO + PREDICADO Un SUJETO se puede componer de un ARTICULO + NOMBRE Un PREDICADO se puede componer de un VERBO conjugado Un ARTICULO puede ser la palabra "el" Un NOMBRE puede ser "nio" etc.

Vemos que existen unas definiciones especiales como FRASE, SUJETO, etc... que no aparecen en la frase final formada. Son unas entidades abstractas denominadas Categoras Sintcticas que no son utilizables en una frase.
Ing. Miguel ngel Durn Jacobo 9

Unidad 6.- Introduccin a los Lenguajes formales

Las categoras sintcticas definen la estructura del lenguaje representando porciones ms o menos grandes de las frases. Existe una jerarqua interna entre las categoras sintcticas. La categora superior sera la FRASE que representa una oracin vlida en lengua castellana. Por debajo de ella se encuentran sus componentes. Ninguna de estas categoras dan lugar a frases vlidas solo la categora superior. Al finalizar toda la jerarqua llegamos a las palabras que son las unidades mnimas con significado que puede adoptar una frase. Aplicando las jerarquas y sustituyendo elementos, llegamos al punto en donde todas las categoras sintcticas se han convertido en palabras, obteniendo por tanto una oracin VALIDA. (Como por ejemplo: El nio corre). Este proceso se llama produccin o generacin. En resumen: Elementos constituyentes Una gramtica formal es un modelo matemtico compuesto por una serie de categoras sintcticas que se combinan entre s por medio de unas reglas sintcticas que definen como se crea una categora sintctica por medio de otras y/o smbolos de la gramtica. Existe una nica categora superior que denota cadenas completas y vlidas.

Mecanismos de Especificacin Por medio de estos elementos constituyentes se define un mecanismo de especificacin consistente en repetir el mecanismo de sustitucin de una categora por sus constituyentes en funcin de las reglas comenzando por la categora superior y finalizando cuando la oracin ya no contiene ninguna categora.
De esta forma, la gramtica puede generar o producir cada una de las cadenas del lenguaje correspondiente y solo estas cadenas.

Categora: Lenguajes formales


Hay 10 artculos en esta categora.

C
Alfabeto Autmata finito Cadena de caracteres

J
Clausura de Kleene

Jerarqua de Chomsky Lenguaje formal Lenguaje regular

L
Expresin regular Gramtica formal Gramtica regular

Ing. Miguel ngel Durn Jacobo

10

Unidad 6.- Introduccin a los Lenguajes formales

Jerarqua de Chomsky
En 1956, Noam Chomsky clasific las gramticas en cuatro tipos de lenguajes y esta clasificacin es conocida como la jerarqua de Chomsky, en la cual cada lenguaje es descrito por el tipo de gramtica generado. Estos lenguajes sirven como base para la clasificacin de lenguajes de programacin. Los cuatro tipos son: lenguajes recursivamente enumerables, lenguajes sensibles al contexto, lenguajes libres de contexto y lenguajes regulares. Dichos lenguajes tambin se identifican como lenguajes de tipo 0, 1, 2 y 3. Existe una exacta correspondencia entre cada uno de estos tipos de lenguajes y particulares arquitecturas de mquinas en el sentido que por cada lenguaje de tipo T hay una arquitectura de mquina A que reconoce el lenguaje de tipo T y por cada arquitectura A hay un tipo T tal que todos los lenguajes reconocidos por A son de tipo T. La correspondencia entre lenguajes y arquitectura son mostrados en la siguiente tabla.

Gramtica
Tipo-0 Tipo-1 Tipo-2 Tipo-3

Lenguaje

Autmata

Normas de produccin
Sin restricciones A

recursivamente enumerable Mquina de Turing (MT) (LRE) dependiente del contexto(LSC) independiente del contexto (LLC) regular (RL) Autmatas Linealmente Acotados Autmata a Pila Autmata Finito

A A aB Aa

Lenguajes Recursivamente Enumerables (de tipo 0) Son los lenguajes naturales. Las gramticas pueden tener reglas compresoras. Lenguajes Dependientes del Contexto (sensibles al contexto, de tipo 1) No existen reglas compresoras, salvo, opcionalmente, la que deriva el axioma a la palabra vaca. Existen reglas en las que un smbolo no terminal puede derivar a formas sentenciales distintas, segn los smbolos que aparezcan a su alrededor. Lenguajes Independientes del Contexto (de contexto libre, de tipo 2) La mayora de los lenguajes de programacin entran en sta categora. Lenguajes Regulares (de tipo 3) Se pueden expresar tambin mediante expresiones regulares. Expresin regular
Una expresin regular es una forma de representar a los lenguajes regulares (finitos o infinitos) y se construye utilizando caracteres del alfabeto sobre el cual se define el lenguaje.

Ing. Miguel ngel Durn Jacobo

11

Unidad 6.- Introduccin a los Lenguajes formales

Ms especficamente, las expresiones regulares se construyen utilizando los operadores unin, concatenacin y clausura de Kleene.

Ejemplos simples
La expresin regular a.b (o simplemente ab) se lee a concatenado con b y representa al lenguaje L = {ab} La expresin regular dada por a + ab se lee a unin ab, es decir, a o ab y representa al lenguaje L = {a, ab} El lenguaje de todas las palabras definidas sobre el alfabeto {a, b} que comienzan con a se puede representar mediante la expresin regular a(a + b) *

Expresiones regulares en teora de lenguajes formales


Las expresiones regulares estn formadas por constantes y operadores y denotan conjuntos de palabras llamados conjuntos regulares. Dado un alfabeto finito , se definen las siguientes constantes: 1. (conjunto vaco) que denota el conjunto 2. (palabra vaca) que denota el conjunto {} 3. (carcter del alfabeto) a elemento de que denota el conjunto {"a"} y las siguientes operaciones: 1. (unin) r|s que denota la unin de R y S, donde R y S son respectivamente los conjuntos denotados por las expresiones r y s. 2. (concatenacin) rs que denota el conjunto { | en R y en S}, donde R y S representan respectivamente los conjuntos denotados por las expresiones r y s. Por ejemplo, la expresin "(ab|c)(d|ef)" denota el conjunto {"ab", "c"}{"d", "ef"} = {"abd", "abef", "cd", "cef"}. 3. (clausura de Kleene) r* que denota el ms pequeo conjunto que extiende a R, contiene y est cerrado por concatenacin de palabras, donde R es el conjunto denotado por la expresin r. r* es tambin el conjunto de todas las palabras que pueden construirse por concatenacin de cero o ms ocurrencias de R. Por ejemplo, "ab|cc*" contiene las palabras , "ab", "c", "abab", "abc", "cab", "cc", "ababab", etc. Para reducir al mnimo el nmero de parntesis necesarios para escribir una expresin regular, se asume que la clausura de Kleene es el operador de mayor prioridad, seguido de concatenacin y luego la unin de conjuntos. Los parntesis solo se incluyen para eliminar ambigedades. Por ejemplo, "(ab)c" se escribe igualmente como "abc" y "U(b(c*))" puede escribirse "Ubc*".

Ing. Miguel ngel Durn Jacobo

12

Unidad 6.- Introduccin a los Lenguajes formales

Aplicaciones
Numerosos editores de texto y otras utilidades (especialmente en el sistema operativo UNIX), como por ejemplo sed y awk, utilizan expresiones regulares para, por ejemplo, buscar palabras en el texto y remplazarlas con alguna otra cadena de caracteres.

Autmata
Un autmata es una mquina auto-operada y en ocasiones la palabra es utilizada para describir a un robot. En informtica, (Teora de los lenguajes formales) se describen tres tipos de autmatas que reconocen tipos diferentes de lenguajes: autmatas finitos, autmatas a pila y mquinas de Turing. Los autmatas programables aparecieron en los Estados Unidos de Amrica en los aos 1969-70 y ms particularmente en la industria del automvil; fueron empleados en Europa dos aos ms tarde. Su fecha de creacin coincide pues, con el comienzo de la era del microprocesador y con la generacin de la lgica cableada modular. El autmata es la primera mquina con lenguaje es decir, un calculador lgico cuyo juego de instrucciones se orienta hacia los sistemas de evolucin secuencial. Podramos definirlo como un aparato electrnico, programado por un usuario, y destinado a gobernar, dentro de un entorno industrial, mquinas o procesos lgicos secuenciales.

Mquina de Turing
La mquina de Turing es un modelo computacional creado por Alan Turing con el cual l afirmaba que se poda realizar cualquier cmputo. La mquina de Turing, como modelo matemtico, consta de un cabezal lector/escritor y una cinta infinita en la que el cabezal lee el contenido, borra el contenido anterior y escribe un nuevo valor. Las operaciones que se pueden realizar en esta mquina se limitan a: avanzar el cabezal lector/escritor para la derecha; avanzar el cabezal lector/escritor para la izquierda.

El cmputo es determinado a partir de una tabla de estados de la forma: (estado,valor) (\nuevo estado, \nuevo valor, direccin)
Ing. Miguel ngel Durn Jacobo 13

Unidad 6.- Introduccin a los Lenguajes formales

Esta tabla toma como parmetros el estado actual de la mquina y el carcter ledo de la cinta, dando la direccin para mover el cabezal, el nuevo estado de la mquina y el valor a ser escrito en la cinta. Con este aparato extremadamente sencillo es posible realizar cualquier cmputo que un computador digital sea capaz de realizar. Mediante este modelo terico y el anlisis de complejidad de algoritmos, fue posible la categorizacin de problemas computacionales de acuerdo a su comportamiento, apareciendo as, el conjunto de problemas denominados P y NP, cuyas soluciones en tiempo polinmico son encontradas segn el determinismo y no determinismo respectivamente de la mquina de Turing. De hecho, se puede probar matemticamente que para cualquier programa de computadora es posible crear una mquina de Turing equivalente. Esta prueba resulta de la Tesis de Church Turing, formulada por Alan Turing y Alonzo Church, de forma independiente a mediados del siglo XX.

Alfabeto
El alfabeto es la agrupacin de smbolos con un orden determinado utilizado en el lenguaje escrito que sirve como sistema de comunicacin. La palabra alfabeto se deriva del nombre de las dos primeras letras griegas alfa () y beta (). En matemticas, un alfabeto es un conjunto finito y ordenado de smbolos.

Ejemplos de alfabetos Alfabeto rabe Alfabeto batak Alfabeto cirlico Alfabeto georgiano (Mxedruli) Alfabeto gtico Alfabeto griego

Alfabeto hebreo Alfabeto romano (o latino) Alfabeto espaol

Alfabetos especiales Alfabeto Morse Alfabeto por palabras

Conjunto
En matemticas, un conjunto es una coleccin de objetos, tales que dos conjuntos son iguales si, y slo si, contienen los mismos objetos. Se puede obtener una descripcin mas detallada en la Teora de conjuntos. Los conjuntos son uno de los conceptos bsicos de las matemticas. Como ya se ha dicho, un conjunto es, ms o menos, una coleccin de objetos, denominados elementos. La notacin estndar utiliza llaves ('{' y '}') alrededor de la lista de elementos para indicar el contenido del conjunto, como por ejemplo: {rojo, amarillo, azul} ; {rojo, azul, amarillo, rojo} ; {x: x es un color primario}

Ing. Miguel ngel Durn Jacobo

14

Unidad 6.- Introduccin a los Lenguajes formales

Las tres lneas anteriores denotan el mismo conjunto. Como puede verse, es posible describir el mismo conjunto de diferentes maneras: Bien dando un listado de sus elementos (lo mejor para conjuntos finitos pequeos) o bien dando una propiedad que defina todos sus elementos. Por otro lado, no importa el orden, ni cuantas veces aparezcan en la lista sus elementos.

Si A y B son dos conjuntos y todo elemento x de A est contenido tambin en B, entonces se dice que A es un subconjunto de B. Todo conjunto tiene como subconjunto a s mismo y al conjunto vaco, {}. La unin de una coleccin de conjuntos S = {S1, S2, S3,...} es el conjunto de todos los elementos contenidos en, al menos, uno de los conjuntos S1, S2, S3,.... La interseccin de una coleccin de conjuntos T = {T1, T2, T3,...} es el conjunto de todos los elementos contenidos en todos los conjuntos. La unin y la interseccin de conjuntos, A1, A2, A3,... se representa como A1 A2 A3 ... y A1 A2 A3 ... respectivamente. Algunos ejemplos de conjuntos de nmero son: 1. Los nmeros naturales utilizados para contar los elementos de un conjunto. 2. Los nmeros enteros 3. Los nmeros racionales 4. Los nmeros reales, que incluyen a los nmeros irracionales 5. Los nmeros complejos que proporcionan soluciones a ecuaciones del tipo x2 + 1 = 0. La teora estadstica se construye sobre la base de la teora de conjuntos y la teora de la probabilidad.
Ing. Miguel ngel Durn Jacobo 15

Unidad 6.- Introduccin a los Lenguajes formales

Cadena de caracteres
En matemticas, una cadena de caracteres, palabra o frase es una secuencia ordenada de longitud arbitraria (aunque finita) de elementos que pertenecen a un cierto alfabeto. Habitualmente se usan las letras w, x, y,... para referirnos a cadenas. Por ejemplo, si tenemos un alfabeto = {a, b, c}, una cadena podra ser: x = aacbbcba. En general, una cadena de caracteres es una sucesin de caracteres (letras, nmeros y/o determinados signos). Se utilizan en programacin, normalmente como un tipo de dato predefinido, para palabras, frases o cualquier otra sucesin de caracteres. Es muy habitual que se delimiten mediante comillas superiores ("). Para poder mostrar, por ejemplo, una comilla (") dentro de la cadena y no tener problemas con las comillas que la delimitan, se usan secuencias de escape. Esto se aplica a otros caracteres reservados o no imprimibles como el retorno de carro. No obstante, las expresiones para producir estas secuencias de escape dependen del lenguaje de programacin que se est usando. Una forma comn, en muchos lenguajes, de escapar un carcter es anteponindole un \ (sin comillas), p. e.: \" (sin comillas).

Algunas operaciones comunes Concatenacin: unir dos cadenas de caracteres.


$pareja = "Luis"." y "."Carmen" # en Perl y PHP; pareja = "Luis" & " y " & "Carmen" # en Visual Basic; pareja = "Luis" + " y " + "Carmen"; # en C++ con el tipo string.

Multiplicar una cadena: repetir una cadena un nmero de veces


$puntos ="." x 5 # pone 5 puntos en Perl

Mquinas de estado finito Autmatas


Cuando se traza un crculo adicional alrededor del vrtice "continuar", debido a que este estado indica que la mquina ha aceptado el dinero y permitir continuar. Cuando se desea indicar que una mquina ha logrado un objetivo cuando llega a cierto estado, a este estado se le denomina estado de aceptacin y se traza un crculo alrededor de ste en la digrfica de la mquina. Un autmata es una mquina con un conjunto selecto de estados denominados estados de aceptacin y un solo estado denominado estado inicial.

Ing. Miguel ngel Durn Jacobo

16

Unidad 6.- Introduccin a los Lenguajes formales

Una mquina de estado finito o autmata finito es aquella que tiene un nmero finito de estados. As como se puede introducir una serie de monedas a una mquina recaudadora, tambin se puede dar a cualquier autmata una serie de caracteres de su alfabeto de entrada. Una serie finita de caracteres se llama cadena de caracteres. Se dice que el autmata acepta una cadena de caracteres si, cuando empieza en su estado inicial y recibe esta serie de entradas, la maquina llega a un estado de aceptacin.

EJEMPLO: Describa el conjunto de estados, el alfabeto de entrada y el conjunto de cadenas de caracteres aceptados por el autmata determinista de la figura 55.

Solucin: El conjunto de estados es {empezar, no, a, b, c, d}. Los estados de aceptacin son b y d. El alfabeto de entrada es {O, 1}, ya que los bordes que salen de cada vrtice tienen la etiqueta O o la etiqueta 1. Una serie que conduce al estado b solamente puede tener ceros. Se puede demostrar por induccin sobre el nmero de ceros que una serie de ceros conduce a un estado a si tiene un nmero impar de ceros y a un estado b si tiene un nmero par de ceros. Por tanto, una cadena de caracteres que consiste en ceros es aceptada si y slo si tiene un nmero par de ceros. De manera semejante, una cadena que consiste en unos es aceptada si y slo si tiene un nmero par de unos. As, una cadena es aceptada si y slo si consiste en un nmero par de ceros o en un nmero par de unos.
Una mquina procesadora de informacin es un dispositivo que recibe un conjunto de seales de entrada, y produce en correspondencia un conjunto de seales de salida. Como se ilustra en la siguiente figura.

Mquina procesadora de informacin

Seales de salida

Por tanto, podemos considerar que una lmpara de mesa es una mquina procesadora de informacin: la seal de entrada es la posicin ENCENDlDO y la posicin APAGADO del interruptor, y la seal de salida es la ILUMINACIN o la OSCURIDAD Otro ejemplo de mquina
Ing. Miguel ngel Durn Jacobo 17

Unidad 6.- Introduccin a los Lenguajes formales

procesadora de informacin es un sumador, cuyas seales de entrada son dos nmeros decimales y la seal de salida su suma. En un automvil. Que es una mquina procesadora de informacin, las seales de entrada son la presin sobre el acelerador y la posicin angular del volante, y las seales de salida corresponden a la velocidad y direccin del vehculo. En una mquina vendedora, tambin una procesadora de informacin las seales de entrada son las monedas depositadas y la seleccin de la mercanca, las seales de salida son la mercanca y, posiblemente, el cambio. Por ultimo una computadora digital es una mquina procesadora de informacin; el programa del usuario y los datos son las seales de entrada, y los resultados impresos del clculo son las seales de salida. En general, las seales de entrada para una mquina procesadora de informacin cambian con el tiempo. En ese caso, las seales de salida tambin variarn con el tiempo en la forma correspondiente. As, una mquina procesadora de informacin recibe una serie (temporal) de seales de entrada y produce una correspondiente serie (temporal) de seales de salida. Consideremos el ejemplo de una lmpara de mesa: la seal de entrada es una las dos posibles posiciones del interruptor, ENCENDIDO o APAGADO, y la seal de salida es. Una de las dos posibles condiciones, ILUMINACIN u OSCURIDAD. Por tanto, en correspondencia con la serie de seales de entrada

ENCENDIDO APAGADO
existe la serie de seales de salida

APAGADO ENCENDIDO

APAGADO ENCENDIDO

ENCENDIDO

ILUMINACIN OSCURIDAD

OSCURIDAD ILUMINACIN

OSCURIDAD ILUMINACION

ILUMINACIN

En el ejemplo del sumador, donde las seales de entrada son dos nmeros de un digito y la seal de salida es un nmero de dos dgitos, a las series de seales de entrada son 3 5 0 3 3 9 2. 4 4 6 1 4 5 5. Y la correspondiente de seales de salida es 7 9 6 4 7 14 7.

Consideremos el ejemplo de la mquina vendedora, donde las seales de entrada son monedas de cinco, diez o veinticinco centavos, y la seal de salida es un paquete de goma de mascar o nada. Suponga que un paquete de goma de mascar cuesta 30 centavos.

Ing. Miguel ngel Durn Jacobo

18

Unidad 6.- Introduccin a los Lenguajes formales

Entonces, como corresponde a la serie de seales de entrada

Diez

Diez

Diez

Veinticinco

Veinticinco

Cinco

Veinticinco

Cinco

existe la serie de seales de salida nada nada goma de mascar nada goma de mascar nada goma de mascar nada

Advirtamos que existe una diferencia significativa entre las mquinas de este ejemplo. En el caso de la lmpara de mesa, siempre que la seal de entrada es ENCENDIDO, la seal de salida es ILUMINACIN, y siempre que la seal de entrada es APAGADO, la seal de salida es OSCURIDAD. Es decir, la seal de salida en depende en cualquier momento slo de u seal de entrada activada en tal instante, y no de las seales de entrada anteriores a dicho instante. En el caso del sumador sucede lo mismo, la seal de salida en cualquier momento siempre es la suma de los dos nmeros dados como entrada en tal instante, y es independiente por completo de los nmeros que fueron sumados con anterioridad. Por otro lado, en el caso de la mquina vendedora, la seal de salida obtenida en cualquier instante depende no solo de la seal de entrada dada en tal instante, sino, adems, de las seales de entrada precedente. As, para las tres seales de entrada sucesivas DIEZ Las correspondientes seales de salida son Nada

DIEZ

DIEZ

Nada

Goma de mascar

En forma ms especfica, en el primer instante la entrada es DIEZ y la correspondiente salida es NADA; en el segundo instante la entrada es DIEZ y la salida correspondiente es NADA pero en el tercer instante, la entrada es DIEZ y la salida correspondiente es GOMA DEMAR. Es por esto que dividimos a las mquinas en dos clases -unas con memoria y otras sin memoria. Para que una mquina sin memoria su salida en cualquier instante, slo depende de la entrada en tal instante. Tanto la lmpara de mesa como el sumador analizados, son ejemplos de mquinas que no tienen memoria. Para una mquina con memoria, su salida en cualquier instante depende de la entrada en dicho instante como de las entradas en instantes previos debido a que la mquina puede recordar "qu ha sucedido en el pasado". Es claro que uno mquina vendedora puede recordar qu ha sucedido en el pasado. No obstante, sta no recuerda (o no puede recordar) todo lo que ha sucedido en el pasado. En un instante la mquina recuerda la cantidad total que ha sido depositada hasta entonces. Es decir, mientras la cantidad total- sea, digamos, 25 centavos, la mquina no hace diferencia alguna acerca que si se depositaron cinco monedas de cinco centavos, dos monedas de diez centavos y una de cinco centavos, una moneda de veinticinco centavos, u otras combinaciones posibles. Para describir los pasados eventos, introducimos el concepto de estado. Un estado representa resumen de la historia pasada de una mquina. En el ejemplo de la mquina vendedora existen siete estados diferentes, que corresponden al depsito total acumulado a saber, 0, 5, 10, 15, 20, 25 Y 30 o ms centavos. En consecuencia, el estado de la mquina junto con las seales de entrada en un instante particular, determinarn las
Ing. Miguel ngel Durn Jacobo 19

Unidad 6.- Introduccin a los Lenguajes formales

seales de salida correspondientes a dicho instante. Siguiendo con el ejemplo de esta mquina, en un instante cualquiera, el estado en que se encuentra en la mquina ms el nuevo depsito, permitirn a la mquina determinar si deber tener NADA o GOMA DE MASCAR como salida. Adems conforme llega otra seal de entrada, la mquina pasar desde un estado a otro, puesto que necesita actualizar el resumen de su historia. Deposito Total 0c 5c 10c 15c 20c 25c 30c o ms Deposito nuevo 10c 10c 15c 20c 25c 30c o mas 30c o mas 10c

5c 5c 10c 15c 20c 25c 30c o mas 5c

25c 25c 30c o mas 30c o mas 30c o mas 30c o mas 30c o mas 25c

Si iniciamos con una entrada de 5 centavos llevara a la mquina al estado de 5 centavos, una entrada de 10 centavos llevara a la mquina al estado de 15 centavos, una entrada de 10 centavos llevara a la mquina al estado de 25 centavos o una entrada de 25 centavos la llevara al estado de 30 centavos o ms, etctera. El comportamiento de la mquina vendedora puede resumirse como se muestra en la tabla siguiente. Depsito total 0c 5c 10c 15c 20c 25c 30 o mas o ms Mercanca entregada Nada Nada Nada Nada Nada Nada Goma de mascar

Como otro ejemplo, consideremos una mquina que acepta una sucesin de enteros positivos entre 1 y 100, Y produce como salida en cualquier instante el entero ms grande que ha recibido hasta ese momento, como se ilustra en la siguiente figura. Observemos que en tanto la mquina pueda recordar el mayor entero que ha recibido, cuando llega una nueva entrada, la mquina puede comparar el mayor entero recibido hasta el momento con la nueva entrada, y determinar la
Ing. Miguel ngel Durn Jacobo 20

Unidad 6.- Introduccin a los Lenguajes formales

salida correspondiente, la cual es el "nuevo" entero ms grande recibido hasta el momento. As, para esta mquina, un resumen de la historia pasada puede ser representado mediante un entero igual al mayor entero que haya recibido. Por tanto, la mquina deber tener 101 estados correspondientes a los enteros 0, 1,. . ., 100, que representan el mayor entero que la mquina ha recibido (es claro que el estado 0 significa que ningn entero ha sido recibido)

. . , 3, 4, 9, 7, 5, 7, 3,4

. . , 9, 9, 9, 7, 7, 7, 4, 4

MQUINAS DE ESTADO FINITO


Ahora introducimos un modelo abstracto de una mquina de estado finito, la cual est especificada por: 1. 2. 3. 4. 5. 6. Un conjunto finito de estados S= {s0, s1, s2, . . .}. Un elemento especial del conjunto S, s0, es conocido como estado inicial. Un conjunto finito de caracteres de entrada I = {i1, i2...} Un conjunto finito de caracteres de salida O = {o1, 02. . .}. Una funcin f de S x / a S, conocida como funcin de transicin. Una funcin g de S a O, conocida como funcin de salida.

En un instante cualquiera, una mquina de estado finito se encuentra en uno de sus estados. Al llegar un carcter de entrada, la mquina pasar a otro estado de acuerdo con la funcin de transicin. Adems, en cada estado la mquina produce un carcter de salida de acuerdo con la funcin de salida. Al principio, la mquina se encuentra en su estado inicial. Una forma conveniente para describir una mquina de estado finito es la forma tabular usada en la figura siguiente. Para la mquina de estado finito de la tabla (a), el conjunto de estados es {s0, s1, s2, s3, s4, s5, s6}, el conjunto de caracteres de entrada es {a, b, c}, y el conjunto de caracteres de salida es {0, 1}. La doble flecha que apunta hacia S0 indica que S0 es el estado inicial. La funcin de transicin f est especificada en la figura (a), donde el estado en 1a interseccin de una fila (correspondiente al estado sp) y una columna correspondiente al carcter de entrada iq), es el valor f(sp, iq)

Ing. Miguel ngel Durn Jacobo

21

Unidad 6.- Introduccin a los Lenguajes formales

Estado

a
=> s0 s1 s2 s3 s4 s5 s6 s1 s2 s3 s4 s5 s6 s1

Entrada b s2 s3 s4 s5 s6 s6 s2 (a)

c
s5 s6 s6 s6 s6 s6 s5

Estado

Salida 0 0 0 0 0 0 1

s0 s1 s2 s3 s4 s5 s6
(b)

La funcin de salida se especifica en la tabla (b). Por lo regular, las tablas (a) y (b) pueden combinarse en una sola tabla, como en la figura siguiente. Estado Entrada b s2 s3 s4 s5 s6 s6 s2 Salida 0 0 0 0 0 0 1

s0 s1 s2 s3 s4 s5 s6

a s1 s2 s3 s4 s5 s6 s1

c s5 s6 s6 s6 s6 s6 s5

De hecho, la mquina de estado finito de la figura anterior es precisamente la mquina vendedora mostrada de la figura, 7.6. En especfico, los estados so, s1, s2, s3, s4, s5 y s6, corresponden a los estados 0,5, 10, 15, 20,25 Y 30 o ms centavos. Los caracteres de entrada a, b y c corresponden a las monedas de CINCO, DIEZ Y VEINTICINCO centavos caracteres de salida 0 y 1 corresponden al momento en que la mquina entregar; NADA O GOMA DE MASCAR. Estado Entrada c s2 s3 s4 s5 s6 s6 s2

a
=> s0 s1 s2 s3 s4 s5 s6 s1 s2 s3 s4 s5 s6 s1

b
s5 s6 s6 s6 s6 s6 s5

Estado

Salida 0 0 0 0 0 0 1

s0 s1 s2 s3 s4 s5 s6

Ing. Miguel ngel Durn Jacobo

22

Unidad 6.- Introduccin a los Lenguajes formales

Podemos describir una mquina de estado finito en forma grfica, como la figura 7.6. En el grafo dirigido de la figura 7.6, cada vrtice corresponde a un estado de la mquina. De nuevo, el estado inicial se identifica por una doble flecha que apunta hacia l. La salida asociada con un estado se coloca bajo el nombre del estado, separado por una barra horizontal. La transicin desde un estado a otro se indica mediante una arista dirigida y etiquetada con el(los) correspondiente(s) carcter(es) de entrada. Efectivamente las tablas anteriores describen la misma mquina de estado finito, como puede verificar rpidamente el lector.

MQUINAS DE ESTADO FINITO COMO MODELOS DE SISTEMAS FSICOS


Una mquina de estado finito puede ser til para modelar un sistema fsico. Anteriormente vimos cmo una mquina vendedora puede ser modelada como una mquina finita. Mostraremos ms ejemplos. Consideremos el problema de disear un contador mdulo 3 que reciba de nmeros 0, 1 Y 2 como entrada, y produzca una sucesin de nmeros 0, 1 Y 2 como salida de manera que en cualquier instante la salida sea igual al mdulo 3 de la suma de los dgitos de la sucesin de entrada. La mquina de la figura siguiente generar la sucesin de salida como:

Ing. Miguel ngel Durn Jacobo

23

Unidad 6.- Introduccin a los Lenguajes formales

Estado =>A B C

O A B C

Entrada 1 B C A

2 Salida C O 1 A 2 B

Se especifica. Observe que A es un estado correspondiente a la situacin en que el mdulo 3 de la suma de todos los dgitos de entrada es 0; B es un estado que corresponde a la situacin en que el mdulo 3 de la suma de todos los dgitos de entrada es 1, Y C es un estado que corresponde a la situacin en que el mdulo 3 de la suma de todos los dgitos de entrada es 2. Ahora analicemos otro ejemplo, en el cual se dispositivo que compara dos nmeros binarios para determinar si stos son iguales, o cul de los dos es mayor. Suponemos que los dgitos de los dos nmeros llegan uno por uno, empezndose con los dgitos de orden inferior. As, el alfabeto de entrada es {00, 01, 10, 11}, donde los dos dgitos de cada pareja son los dgitos correspondientes en los nmeros a ser comparados. El alfabeto de salida es {IGUAL, MAYOR, MENOR}. La figura a continuacin muestra la mquina.

Estado
=>A B C

00 A B C

Entrada 01 10 C B C B C B

11 A B C

Salida IGUAL MAYOR MENOR

Por ltimo, la figura siguiente muestra un ejemplo de una mquina de estado finito que modela el comportamiento de un estudiante. El conjunto de estados es {FELIZ, ENOJADO, DEPRIMIDO}, el conjunto de entradas es {TAREA, FIESTA, MAL EXAMEN}, Y el conjunto de salidas es {CANTAR, MALDECIR, DORMIR}. Aunque ste es un modelo muy simplificado, de hecho, abarca un cierto aspecto de cmo reacciona un estudiante bajo diversas condiciones (debemos sealar que ste no es un ejemplo vano incluido aqu para impresionar al lector. En realidad, los psiclogos, socilogos, economistas y cientficos de diversas disciplinas hacen uso de mquinas de estado finito para modelar los sistemas que ellos estudian).
Ing. Miguel ngel Durn Jacobo 24

Unidad 6.- Introduccin a los Lenguajes formales

Entrada Estado
=> A (feliz) B (enojado) C (deprimido) Tarea Fiesta Mal examen B B C

Salida
cantar maldecir dormir

A C C

A A A

Digrficas y mquinas
Una aplicacin importante de las digrficas es obtener un modelo del funcionamiento interno de una mquina "inteligente" como una computadora. Una mquina as es el dispositivo utilizado en el carril de "cambio exacto" en la caseta de derecho de trnsito de una carretera o un puente. Esta mquina suma los valores de las monedas depositadas hasta que el valor total es la cuota requerida y luego indica al conductor que puede continuar su camino. En la figura 53 se muestra una mquina que colecta exactamente 25 centavos. Digrfica de una mquina colectora de "cambio exacto".

Manera en que las digrficas pueden representar mquinas


Cuando para representar una mquina se usa una digrfica, los vrtices de sta se llaman estados de la mquina. As, la mquina representada en la figura 53 tiene un estado de alerta, uno de cinco centavos, uno de diez centavos, uno de quince centavos, uno de van: te centavos y un estado de avanzar. Cuando un conductor llega a la mquina, sta se encuentra en su estado de alerta (tambin se dice que est "lista" o "preparada") esperando que alguien introduzca moneda". Las entradas legales (las monedas que el conductor puede introducir) son de cinco, diez y veinticinco centavos. Cada vez que la mquina recibe una entrada, puede modificar su estado con base en la entrada. Por ejemplo, si se encuentra en el estado de cinco centavos y recibe una entrada de una moneda de diez centavos, cambiar al estado de quince centavos. Cada borde de la digrfica representa este cambio de estado; la etiqueta sobre el borde indica la entrada que conduce a ese cambio de estados.
Ing. Miguel ngel Durn Jacobo 25

Unidad 6.- Introduccin a los Lenguajes formales

En vez de intentar definir de manera precisa el trmino mquina. Se definir el trmino digrfica de mquina. Una digrfica de mquina con conjunto de estados S y alfabeto de entrada I se define como una digrfica cuyo conjunto de vrtices es S y cuyos bordes estn identificados con elementos elegidos de I. (Es vlido que un borde tenga ms de una identificacin.) En la figura 53 se observa una digrfica de mquina con conjunto de estados {alerta, 5, 10,15, 20, avanzar} y alfabeto de entrada {C, D, V}. La digrfica no representa perfectamente una mquina recaudadora. Puede ser posible que una persona deposite una moneda de veinticinco centavos en la mquina inclusive si sta se encuentra en el estado 5, 10, 15 20. Como la accin de la mquina con una entrada as no est determinada se dice que este es un ejemplo de maquina no determinista.(Ms tarde se proporcionar una definicin ms formal.) El siguiente: ejemplo hace ms realista el modelo de la mquina, aunque tambin ms complicado.

EJEMPLO 29 Trace una digrfica de mquina para una mquina recaudadora que permita avanzar al conductor tan pronto como deposite 25 centavos () Tnls.
Solucin: Es necesario agregar flechas a la figura 53, para indicar que la mquina pasa al estado "avanzar" si en el estado 20 se introduce una moneda de 10 centavos o en los estados 5, 10, 15 20 se introduce una moneda de 25 centavos. Adems, si en el estado "avanzar" se deposita ms dinero, el estado de la mquina ya no cambia. Esto se muestra en la figura 54. .

Figura 54

Observe en la figura 54 que de cada vrtice salen tres bordes, con uno y slo un borde para cada entrada posible. Se dice que una digrfica de mquina es una digrfica de una mquina determinista si para cada vrtice hay un correspondencia uno a uno entre las etiquetas en los bordes que salen del vrtice y el alfabeto de entrada. As, la mquina de la figura 54 es determinista.

Ing. Miguel ngel Durn Jacobo

26

Unidad 6.- Introduccin a los Lenguajes formales

Maquinas de turing
Las maquinas de turing son mas generales que cualquier autmata finito y cualquier autmata de pila, debido a que ellas pueden reconocer tanto como los lenguajes regulares como los lenguajes independientes del contexto y, adems, muchos otros tipos de lenguajes. Una mquina de turing es una 7-tupla M= (Q, , , s, , F, ), donde Q es un conjunto de estados es un alfabeto de entrada es un alfabeto llamado alfabeto de la cinta S Q es el estado inicial es el smbolo blanco (y no esta en ) F C Q es el conjunto de estados finales o de aceptacin : Q x Q x x {L, R} es una funcin parcial que se llama funcin de transicin En esta definicin se supone que el valor inicial de todas las celdas de la cinta es el smbolo . La definicin requiere que no elemento de . Generalmente, permitimos que C {}.La funcin de transicin transforma pares (q, ) formados por el estado actual y los smbolos de la cinta en ternas de la forma (p, t, X), donde p es el estado siguiente, t es el smbolo escrito en la cinta y X es un movimiento de lectura/escritura de la cabeza, que puede ser L o R, segn que el movimiento sea hacia la izquierda o hacia la derecha (nos imaginamos que la cinta se extiende de izquierda a derecha). Consideremos la mquina de Turng definida mediante: Q = {q1, q2} = {a, b} = {a, b, } F = {q2} Y dado por (q1,a) = (q1,a, R) (q1,b) = (q1,a, R) (q1,b) = (q2,b, L) Esta mquina empieza sus operaciones en el estado q1. Si el contenido de la celda de la cinta sobre la que se encuentra la cabeza de lectura/escritura es a, la transicin que se puede aplicar es (q1, a) = (q1, a, R).

Ing. Miguel ngel Durn Jacobo

27

Unidad 6.- Introduccin a los Lenguajes formales

La mquina de Turing sobrescribir la a que est en la cinta con otra a. a b b a Estado q1 a b b a Estado q1 a a b a Estado q1 a a a a Estado q1 a a a a Estado q1 a a a a Estado q2 Sea cual sea la notacin que utilicemos, denotaremos el paso de una configuracin otra por medio del smbolo ya familiar . Por tanto, en el ejemplo anterior se tiene qu (q1,abba) (q1,abba) (q1,aaba) (q1,aaaa) (q1,aaaa ) (q2,aaaa) q1,abba aq1bba) aaq1ba aaaq1a aaaq1 aaaq2a Veamos otro ejemplo en el que consideremos la siguiente maquina de turing. Q= {q1, q2, q3} = {a, b} = {a, b, } F= {q3} S= q1 (q1,a)= (q1,q,L) (q1,b)= (q1,b,L) (q1,)=(q2,,R) (q2,a)=(a3,a,L) (q2,b)=(q3,b,L) (q2,)=(q3,,L)
28

Ing. Miguel ngel Durn Jacobo

Unidad 6.- Introduccin a los Lenguajes formales

Esta mquina de Turing examinar la cinta hacia la izquierda que se encuentre con la primera celda en blanco. Entonces parar y se colocar sobre el blanco. Por tanto, deberamos tener: (q1, aababb)(q1,aababbb)(q1,aababb) (q1,aababbb) (q1,baababb) (q2,aababbb)(q3,aababb) aabq1abbaaq1babbaq1ababbq1aababb q1aababbq2aababbq3aababb

Aplicaciones. Mquina Finita Determinstica.


Dada la tabla:

Entrada q0 q1 q2 q3 q4 q5 q6

a q1 q2 q3 q4 q5 q6 q1

b q2 q3 q4 q5 q6 q6 q2

c q5 q6 q6 q6 q6 q6 q5

salida 0 0 0 0 0 0 1

Y dado los valores: a b c 10 20 50 q0 q1 q2 q3 q4 q5 q6 0 10 20 30 40 50 60

Ing. Miguel ngel Durn Jacobo

29

Unidad 6.- Introduccin a los Lenguajes formales

Represntelo grficamente:

0
10

20 10 10 50 20

10
20 10 50

20
20

30
20

50 50

10 10

40
20, 50

50

10, 20, 50 50

60

Maquina Finita No Deterministica.


Dada la grafica:

b Q0 a Q1 a Q2 a

b a a

Q3

Q4 b

Q5

b c
Hacer su tabla BNF: <q0> <q1> <q2> <q3> <q4> <q5> a <q1> a <q2> a <q3> a <q4> a <q5> b <q2> b <q3> b <q4> b <q5> c <q5>

Ing. Miguel ngel Durn Jacobo

30

S-ar putea să vă placă și