Está en la página 1de 4

Captulo 1: Introduccin a los autmatas 1.1 Por qu estudiar la teora de autmatas? 1.1.1 Introduccin a los autmatas finitos 1.1.

2 Representaciones estructurales 1.1.3 Autmatas y omple!idad 1." onceptos fundamentales de la teora de autmatas 1.".1 Alfa#etos 1.".2 adenas de aracteres 1.".3 $en%ua!es 1.".& Pro#lemas 1.' Resumen del aptulo 1

1 INTRODUCCION A LOS AUTOMATAS


$a teora de autmatas es el estudio de dispositi(os de c)lculo a#stractos* es decir* de las +m)quinas,. -n la dcada de los a.os treinta* A. /urin% estudi una m)quina a#stracta que tena todas las capacidades de las computadoras de 0oy da* al menos en lo que respecta a lo que podan calcular. -l o#!eti(o de /urin% era descri#ir de forma precisa los lmites entre lo que una m)quina de c)lculo poda y no poda 0acer1 estas conclusiones no slo se aplican a las mquinas abstractas de Turing, sino a todas las m)quinas reales actuales. -n las dcadas de los a.os cuarenta y cincuenta* una serie de in(esti%adores estudiaron las m)quinas m)s simples* las cuales toda(a 0oy denominamos +autmatas finitos+. /am#in a finales de la dcada de los cincuenta* el lin%2ista 3. 0oms4y inici el estudio de las +%ram)ticas+ formales. Aunque no son m)quinas estrictamente* estas %ram)ticas est)n estrec0amente relacionadas con los autmatas a#stractos y sir(en actualmente como #ase de al%unos importantes componentes de soft5are* entre los que se incluyen componentes de los compiladores. -n 16'6* 7. oo4 ampli el estudio reali8ado por /urin% so#re lo que se poda y no se poda calcular. oo4 fue capa8 de separar aquellos pro#lemas que se podan resol(er de forma eficiente mediante computadora de aquellos pro#lemas que* en principio* pueden resol(erse* pero que en la pr)ctica consumen tanto tiempo que las computadoras resultan in9tiles para todo e:cepto para casos muy simples del pro#lema. -ste 9ltimo tipo de pro#lemas se denominan +insolu#les+ o +3P; difciles+.

1.1 !or "u# $studiar la t$ora d$ autmatas%


7on (arias las ra8ones por las que el estudio de los autmatas y de la comple!idad de c)lculo constituyen una parte importante del n9cleo de la iencias de la omputacin.

1.1.1 Introduccin a los autmatas &initos


$os autmatas finitos constituyen un modelo 9til para muc0os tipos de 0ard5are y soft5are. -numeramos al%unos de los e!emplos m)s importantes< 1. 7oft5are para dise.ar y pro#ar el comportamiento de circuitos di%itales. 2. -l +anali8ador l:ico+ de un compilador tpico* es decir* el componente del compilador que separa el te:to de entrada en unidades l%icas* tal como identificadores* pala#ras cla(e y si%nos de puntuacin. 3. 7oft5are para e:plorar cuerpos de te:to lar%os* como colecciones de p)%inas 5e#* o para determinar el n9mero de apariciones de pala#ras* frases u otros patrones. &. 7oft5are para (erificar sistemas de todo tipo que ten%an un n9mero finito de estados diferentes* tales como protocolos de comunicaciones o protocolos para el intercam#io se%uro de informacin. =n #oceto de lo que es y lo que 0ace un autmata finito puede ser< e:isten muc0os sistemas o componentes* como los que 0emos enumerado anteriormente* que pueden encontrarse siempre en uno de una serie de +estados+ finitos. -l propsito de un estado es el de recordar la parte rele(ante del 0istorial del sistema. Puesto que slo e:iste un n9mero finito de estados* %eneralmente* no es posi#le recordar el 0istorial completo* por lo que el sistema de#e dise.arse cuidadosamente* con el fin de recordar lo que es importante y ol(idar lo que no lo es. $a (enta!a de disponer de slo un n9mero finito de estados es que podemos implementar el sistema mediante un con!unto fi!o de recursos. Por e!emplo* podramos implementarlo por 0ard5are como un circuito* o como una forma simple de pro%rama que puede tomar decisiones consultando slo una cantidad limitada de datos o utili8ando la posicin del propio cdi%o para tomar la decisin.

->-?P$@ 1.1

?odelo de un autmata finito de un interruptor de apa%adoAencendido (on/off). $os estados est)n representados mediante crculos1 en este e!emplo* 0emos denominado a los estados on y off. $os arcos entre los estados est)n etiquetados con las +entradas+* las cuales representan las influencias e:ternas so#re el sistema* e indican a que estado pasa el autmata partiendo de un estado dado y reci#iendo una entrada concreta. =no de los estados se desi%na como el +estado inicial+* el estado en el que el sistema se encuentra inicialmente. A menudo es necesario especificar uno o m)s estados como estado +final+ o +de aceptacin+. $le%ar a uno de estos estados despus de una secuencia de entradas indica que dic0a secuencia es correcta. $os estados de aceptacin se indican mediante un crculo do#le. ->-?P$@ 1.2 Autmata finito que podra formar parte de un anali8ador l:ico. -l tra#a!o de este autmata consiste en reconocer la pala#ra cla(e t0en* por lo que necesita cinco estados* representando cada uno de ellos la posicin dentro de dic0a pala#ra que se 0a alcan8ado 0asta el momento.

?odelo de autmata finito para el reconocimiento de la pala#ra t0en.

1.1.' R$pr$s$ntacion$s $structural$s


-:isten dos importantes notaciones que no son las utili8adas normalmente con los autmatas* pero que desempe.an un importante papel en el estudio de los autmatas y sus aplicaciones. l. $as gramticas son modelos 9tiles en el dise.o de soft5are que sir(e para procesar datos con una estructura recursi(a. -l e!emplo m)s conocido es el de un +anali8ador sint)ctico+ (parser), el componente de un compilador que se ocupa de las funciones anidadas recursi(amente de los len%ua!es de pro%ramacin tpicos* tales como e:presiones aritmticas* condicionales* etc. Por e!emplo* una re%la %ramatical como E BC E D E esta#lece que una e:presin puede formarse tomando cualesquiera dos e:presiones y conect)ndolas mediante un si%no m)s1 2. $as expresiones regulares tam#in especifican la estructura de los datos* especialmente de las cadenas de te:to. -l estilo de estas e:presiones difiere si%nificati(amente del de las %ram)ticas. Eeamos a continuacin un e!emplo simple de esto. $a e:presin re%ular estilo =3IF GHA; IJ Ha;8JKH J HA;IJ HA;IJ* representa pala#ras que comien8an por una letra may9scula* se%uida de cualquier cantidad de letras min9sculas* un espacio y dos letras may9sculas.

1.1.( Autmatas ) compl$*idad


$os autmatas son esenciales para el estudio de los lmites de la computacin. omo 0emos indicado en la introduccin del captulo* e:isten dos factores importantes a este respecto< l. Lu puede 0acer una computadora? -sta )rea de estudio se conoce como +decidi#ilidad+* y los pro#lemas que una computadora puede resol(er se dice que son +decidi#les+. 2. Lu puede 0acer una computadora de manera eficiente? -sta )rea de estudio se conoce como +intrata#ilidad+* y los pro#lemas que una computadora puede resol(er en un tiempo proporcional a al%una funcin que cre8ca lentamente con el tama.o de la entrada se dice que son +trata#les+.

1.+ Conc$ptos &undam$ntal$s d$ la t$ora d$ autmatas


$os trminos m)s importantes empleados en la teora de autmatas son<

1.+.1 Al&a,$tos
=n alfabeto es un con!unto de sm#olos finito y no (aco. on(encionalmente* utili8amos el sm#olo un alfa#eto. -ntre los alfa#etos m)s comunes se incluyen los si%uientes< 1. B MN* 1O* el alfa#eto binario. 2. B {a,b , .. . ,z}, el con!unto de todas las letras min9sculas. 3. -l con!unto de todos los caracteres A7 II o el con!unto de todos los caracteres A7 II imprimi#les.

para desi%nar

1.+.' Cad$nas d$ caract$r$s


=na cadena de caracteres Pque tam#in se denomina en ocasiones palabra) es una secuencia finita de sm#olos seleccionados de al%9n alfa#eto. La cad$na -aca $a cadena ac!a es aquella cadena que presenta cero apariciones de sm#olos. -sta cadena* desi%nada por cadena que puede construirse en cualquier alfa#eto.

* es una

Lon.itud d$ una cad$na 7uele ser 9til clasificar las cadenas por su longitud, es decir* el n9mero de posiciones ocupadas por sm#olos dentro de la cadena. 3o confundir n9mero de sm#olos de una cadena PdistintosQ con posiciones ocupadas por dic0os sm#olos. $a notacin est)ndar para indicar la lon%itud de una cadena " es R5R. Por e!emplo* RN11R B 3 y R R B N. !ot$ncias d$ un al&a,$to 7i es un alfa#eto* podemos e:presar el con!unto de todas las cadenas de una determinada lon%itud de dic0o alfa#eto # para que sea el con!unto de las cadenas de lon%itud #, tales que cada utili8ando una notacin e:ponencial. Sefinimos uno de los sm#olos de las mismas pertenece a . K Por con(enio* el con!unto de todas las cadenas de un alfa#eto se desi%na mediante . Por e!emplo* K MN*1 O B M * N* 1* NN* N1* 1N* 11* NNN*... O. -:presado de otra forma< K = N 1 2 ... . -n ocasiones* desearemos e:cluir la cadena (aca del con!unto de cadenas. -l con!unto de cadenas no (acas del alfa#eto se desi%na como + . Por tanto* dos equi(alencias apropiadas son<

+ = 1 2 3 ... . K = + MO .

Concat$nacin d$ cad$nas 7ean x e $ dos cadenas. -ntonces* x$ denota la concatenaci%n de x e $, es decir* la cadena formada por una copia de x se%uida de una copia de $. ->-?P$@ 1.2" 7ean x B N11N1 e $ B 11N. -ntonces x$ B N11N111N e $x B 11NN11N1. Para cualquier cadena 5* tenemos las ecuaciones " B " B 5. -s decir* es el elemento neutro de la concatenaci%n.

1.+.( L$n.ua*$s
K =n con!unto de cadenas* todas ellas seleccionadas de un , donde es un determinado alfa#eto se denomina K lengua&e. 7i es un alfa#eto y ' * entonces ' es un lengua&e de . @#ser(e que un len%ua!e de no necesita incluir cadenas con todos los sm#olos de * ya que una (e8 que 0emos esta#lecido que ' es un lengua&e de * tam#in sa#emos que es un len%ua!e de cualquier alfa#eto que sea un supercon!unto de $. =n e!emplo es el len%ua!e * o cualquier otro len%ua!e de pro%ramacin* donde los pro%ramas correctos son un su#con!unto de las posi#les cadenas que pueden formarse a partir del alfa#eto del len%ua!e. -ste alfa#eto es un su#con!unto de los caracteres A7 II. -l alfa#eto en concreto puede diferir li%eramente entre diferentes len%ua!es de pro%ramacin* aunque %eneralmente incluye las letras may9sculas y min9sculas* los d%itos* los caracteres de puntuacin y los sm#olos matem)ticos.
K es un len%ua!e para cualquier alfa#eto .

N* el len%ua!e (aco* es un len%ua!e de cualquier alfa#eto.

MO , el len%ua!e que consta slo de la cadena (aca* tam#in es un len%ua!e de cualquier alfa#eto. @#ser(e que N M O ( el primero no contiene nin%una cadena y el se%undo slo tiene una cadena.
$a 9nica restriccin importante so#re lo que puede ser un len%ua!e es que todos los alfa#etos son finitos. Se este modo* los len%ua!es* aunque pueden tener un n9mero infinito de cadenas* est)n restrin%idos a que dic0as cadenas estn formadas por los sm#olos que definen un alfa#eto finito y prefi!ado. D$&inicin d$ l$n.ua*$s m$diant$ d$scripcion$s d$ con*untos -s 0a#itual descri#ir un len%ua!e utili8ando una +descripcin de con!untos+* e!emplo< M5 R 5 consta de un n9mero i%ual de ceros que de unosO. /am#in es 0a#itual reempla8ar 5 por al%una e:presin con par)metros y descri#ir las cadenas del len%ua!e esta#leciendo condiciones so#re los par)metros< MNn1n R n 1O . -sta e:presin se lee< +-l con!unto de N a la n 1 a la n tal que n es mayor o i%ual que 1+.

1.+./ !ro,l$mas
-n la teora de autmatas* un problema es la cuestin de decidir si una determinada cadena es un elemento de un determinado len%ua!e. omo (eremos* cualquier cosa que coloquialmente denominamos +pro#lema+ podemos e:presarlo como elemento de un len%ua!e. Se manera m)s precisa* si es un alfa#eto y ' es un len%ua!e de , entonces el pro#lema ' es) K T Sada una cadena 5 de * decidir si 5 pertenece o no a ' . 0s un l$n.ua*$ o un pro,l$ma% $en%ua!es y pro#lemas son realmente la misma cosa. -l trmino que empleemos depende de nuestro punto de (ista.

1.1 R$sum$n d$l Captulo 1


* +ut%matas finitos. $os autmatas finitos utili8an estados y transiciones entre estados en respuesta a las entradas. Resultan 9tiles para construir di(ersos tipos de soft5are* incluyendo el componente de an)lisis l:ico de un compilador y los sistemas que permiten (erificar la correccin de* por e!emplo* circuitos o protocolos. * Expresiones regulares. Sefinen una notacin estructural que permite descri#ir los mismos patrones que se pueden representar mediante los autmatas finitos. 7e emplean en muc0os tipos comunes de soft5are* incluyendo 0erramientas para la #9squeda de patrones* por e!emplo* en te:tos o en nom#res de arc0i(o. * ,ramticas independientes del contexto. Sefinen una importante notacin para descri#ir la estructura de los len%ua!es de pro%ramacin y de los con!untos relacionados de cadenas de caracteres1 resultan 9tiles en la construccin del anali8ador sint)ctico de un compilador. * -quinas de Turing. 7on autmatas que modelan la potencia de las computadoras reales. 3os permiten estudiar la decidi#ilidad* es decir* el pro#lema de qu puede o no puede 0acer una computadora . /am#in nos permiten distin%uir los pro#lemas trata#les Paquellos que pueden resol(erse en un tiempo polinmicoQ de los pro#lemas intrata#les Plos que no se pueden resol(er en un tiempo polinmicoQ. * +lfabetos. =n alfa#eto es cualquier con!unto finito de sm#olos. * .adenas de caracteres. =na cadena es una secuencia de sm#olos de lon%itud finita. * 'engua&es $ problemas. =n len%ua!e es un con!unto Pposi#lemente infinitoQ de cadenas* donde los sm#olos sm#olo de todas ellas se 0an seleccionado de un determinado alfa#eto. uando las cadenas de un len%ua!e se interpretan de al%una manera* la cuestin de si una cadena pertenece o no al len%ua!e se dice* en ocasiones* que es un pro#lema.

&