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.
1
->-?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<
2
1.+.1 Al&a,$tos
=n alfabeto es un con!unto de sm#olos finito y no (aco. on(encionalmente* utili8amos el sm#olo para desi%nar
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 A7II o el con!unto de todos los caracteres A7II imprimi#les.
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 * es una
cadena que puede construirse en cualquier alfa#eto.
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
utili8ando una notacin e:ponencial. Sefinimos
#

para que sea el con!unto de las cadenas de lon%itud #, tales que cada
uno de los sm#olos de las mismas pertenece a .
Por con(enio* el con!unto de todas las cadenas de un alfa#eto se desi%na mediante
K

. Por e!emplo*
K
O 1 * N M B M * N* 1* NN* N1* 1N* 11* NNN*... O. -:presado de otra forma<
...
2 1 N K
= .
-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<


...
3 2 1
=
+
.
O M
K

+
= .
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
=n con!unto de cadenas* todas ellas seleccionadas de un
K

, donde es un determinado alfa#eto se denomina


lengua&e. 7i es un alfa#eto y
K
' * 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 A7II. -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.
3
O M
, 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
O M ( 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< O 1 R 1 N M n
n n
. -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)
T Sada una cadena 5 de
K

* 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.
&

También podría gustarte