Vous êtes sur la page 1sur 8

T Teora de la Computacin II a

1. Lengua regulares y autm ajes matas finito os

1. 1 INT DUCCIN TROD


La te eora de aut tmatas es el estudio d dispositi de ivos de clc culo abstrac ctos, es dec de cir, las mquinas Antes de que exist . e tieran las computador ras, en la dcad de los a da aos treinta (1930). Al Turing estudi una mquina lan a abstr racta que te ena todas la capacida as ades de las computador de hoy c ras da, a menos en lo que res al n specta a lo que podan calcular. El objetivo n E de T Turing era d describir de forma prec cisa los lm mites entre lo que una mqu uina de clc culo poda y no poda h hacer; estas conclusion no slo nes se ap plican a la mquina abstracta de Turin sino a todas las as as as ng, mqu uinas reales actuales. s as de d adores estud diaron En la dcadas d los aos cuarenta y cincuenta, una serie de investiga las m mquinas m simples las cuale todava hoy denom ms s, es minamos aut matas finit tos. Origin nalmente, es stos autma se prop atas pusieron para modelar e funciona el amiento de cerebro y, posterio el ormente, ltaron extre emadamente tiles pa muchos otros pro e ara s opsitos. resul Tamb bin a final de la d les cada de los cincuenta, el lingista Noam s Chom msky inici el estudio de las gram mticas fo ormales. Aun nque no son m mquinas e estrictament estas gr te, ramticas es stn estrech hamente relac cionadas co los aut on matas abst tractos y sirven actu s ualmente como base de a o algunos imp portantes co omponentes de softwar entre re, los q se incluy compon que yen nentes de lo compiladores. os En 1969, Stephe Cook am en mpli el estu udio realiza por Tur ado ring sobre lo que se po o oda y no se poda cal lcular. Coo fue capa de separ aquellos problemas que se podan ok az rar s s resol lver de for rma eficien mediant computa nte te adora de aq quellos pro oblemas qu en ue, princ cipio, puede resolverse, pero qu en la pr en ue ctica consu umen tanto tiempo qu las o ue comp putadoras re esultan int tiles para to excepto para casos muy simpl del problema. odo les Este ltimo tip de pro po oblemas se denomina insolub e an bles. Es extremadam mente robable que incluso la mejora de c m carcter exp ponencial en la velocida el clculo que n ad impr el ha ardware de la computa adora ha exp perimentado (Ley de Moore) te enga un im mpacto signi ificativo sob nuestra capacidad p bre para resolve complejos problemas insolubles er s s. Todo estos de os esarrollos tericos af fectan directamente a lo que l los experto en os comp putadoras h hacen. Alg gunos de l los concep ptos, como el de aut tmata finito y deter rminados tip de gram pos mticas form males, se em mplean en el diseo y la construccin de a impo ortantes cla ases de soft ftware. Otro concepto como la mquina de Turing nos os os, g, ayud a comp dan prender lo que podemo esperar de nuestro software. E particul la q os En lar, teora de los pro a oblemas int tratables no permite deducir si podremos en os d p nfrentarnos a un s probl lema y esc cribir un programa par resolverl (porque no pertenec a la cla de ra lo ce ase probl lemas intrat tables) o si tenemos qu hallar al ue lguna forma de salvar dicho problema: a halla una aprox ar ximacin, em mplear un m mtodo heur rstico o alg otro mt gn todo para li imitar el tie empo que el programa invertir en resolver el problema. l i n

o Julio 2011 Ciclo Marzo J

JCSA J

1.1.1 Conjuntos
El fundamento ms importante para el estudio de los lenguajes y autmatas es la Teora de Conjuntos. En efecto, siempre que se hable de formalizar una nocin, estaremos diciendo en realidad expresar en trminos de la Teora de Conjuntos. Un conjunto es cualquier coleccin bien definida de objetos. A menudo, los objetos que forman un conjunto comparten alguna caracterstica en comn. Un elemento de un conjunto es cualquiera de los objetos que lo constituyen. Los conjuntos pueden expresarse de dos maneras bsicamente: Por extensin, lo cual quiere decir que citamos explcitamente cada uno de sus elementos, como en el conjunto {1, 3, 5, 7, 9} que contiene exactamente los nmeros 1, 3, 5, 7 y 9. Por comprensin, dando una descripcin precisa de los elementos que forman parte del conjunto, en vez de citarlos explcitamente. Por ejemplo, el conjunto del punto anterior puede ser visto como {i N | impar (i), i < 6}, donde se supone que los nmeros impares cumplen la condicin impar (i). La barra vertical | se lee en la forma tal que. Los conjuntos se representan utilizando letras maysculas, como en A = {2,4}. Los conjuntos pueden contener conjuntos como elementos, como en B = {{a}, {b,c}}. El conjunto sin elementos (vaco) se representa por o bien por {}. La notacin a B significa que a es elemento o est contenido en el conjunto B; por ejemplo {2,3} {1, {2,3},4}. Para indicar que a no est en B se escribe a B. Las comas separan elementos individuales, mientras que los puntos suspensivos (...) denotan la repeticin de un patrn claramente establecido como por ejemplo C = {a, b, c, ..., z} es el conjunto de letras minsculas. El tamao de un conjunto es el nmero de elementos que contiene, y se representa como |A| para un conjunto A, por ejemplo, el tamao de {a, b, c} es 3, y el tamao de es cero. Dos conjuntos A y B son iguales, A = B, s y solo s tienen los mismos elementos, esto es x A ssi x B. Por ejemplo {1.{2,3}} = {{3,2},1}, el orden de los elementos en un conjunto es irrelevante. Se supone que en los conjuntos no hay repeticiones de elementos, y que cada elemento del conjunto es distinto de todos los otros elementos. La notacin A B significa que el conjunto A es un subconjunto de B. Por ejemplo el conjunto {a, c} es un subconjunto de {a, b, c}. Para indicar que un subconjunto contiene menos elementos que otro, es decir, que es un subconjunto propio de ste, se escribe A B. Por ejemplo {a, c} {a, b, c}.

T Teora de la Computacin II a

1. Lengua regulares y autm ajes matas finito os

Las relaciones de inclusi entre co n onjuntos se acostumbr represent grficam ra tar mente medi iante los lla amados dia agramas de Venn, qu denotan mediante r e ue m reas cerrada los as conju untos. Por e ejemplo en la figura A e subconju l es unto de B y B es subcon njunto de C. C

Una operacin es con nmutativa si x y = y x, como es el caso de la suma o la i o o a multi iplicacin d nmeros. Se dice qu es asocia de ue ativa si x (y z) = ( y) z; por (x z ejem mplo la suma es asociati pero no la resta, po ejemplo 8 (4 3) (8 4) 3. a iva, o or 3 Prod ducto cartesiano de dos conjuntos A x B es el conjunt de pares ordenados (a,b) s s, s to tales que a A y b B. Po ejemplo: or {1,2} x {3,4,5} = {(1,3), (1,4), (1,5), (2 } 2,3), (2,4), (2,5)} El ta amao de u producto cartesiano A x B es |A| multiplicado por |B|. El producto un o o carte esiano no es conmutativ ni asocia s vo, ativo. Conj junto finito, es aqul que tiene un nmero det q terminado de elemento d os. Conj junto infini es un co ito, onjunto cuy tamao no puede ex yo n xpresarse co un nmer ( o on ro que tiene un n nmero ind definido de elementos) un ejem ), mplo es el conjunto de los d eros les nme natural N = {1, 2, 3,...} junto conta able, es aqu conjunt cuyos el uel to lementos so enumera on ables (se pu ueden Conj listar por ejem r) mplo P = { n | n N y n es < 10}, Q = { n | n N } Conj junto no c contable, es aquel con s njunto que dado cualq quier parej a de eleme entos, siem mpre existir un eleme ento interm medio entre ambos, po ejemplo el conjunt de or to nme raciona eros ales. Uno de los conceptos ms importante de la Teo de Aut es ora tmatas es el del Leng guaje. Para llegar a es concepto es necesa ste o ario definir antes otras nociones m elemen ms ntales. Para todas las de efiniciones se utilizar extensivam mente la teor elementa de conjun ra al ntos.

o Julio 2011 Ciclo Marzo J

JCSA J

1.1.2 Alfabeto
La nocin ms primitiva es la de smbolo, que es una representacin distinguible de cualquier informacin. Los smbolos pueden ser cualquiera, como W, 9, #, etc. Un smbolo es una entidad indivisible. Un alfabeto es un conjunto no vaco de smbolos. As el alfabeto del idioma espaol, E = {a,b,c, ..., z}es slo uno de los alfabetos posibles. En general se utilizar la notacin A para representar un alfabeto. Ejemplos de alfabetos: Alfabeto de dgitos decimales D = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9}. Alfabeto de dgitos binarios B = {0,1} Alfabeto de caracteres C = {a,b,...,z,A,B,...Z, ?, ! ,...,*,$}

1.1.2.1 Cadenas
Una cadena de caracteres es una secuencia finita de smbolos seleccionados de algn alfabeto. Las cadenas de caracteres son llamadas tambin palabras. Por ejemplo, 01101 es una cadena del alfabeto binario B = {0,1}. La cadena 111 es otra cadena de dicho alfabeto. Cadena vaca Un caso particular de cadenas es la cadena vaca, , es aquella cadena que presenta cero apariciones de smbolos. Esta cadena puede construirse en cualquier alfabeto. Longitud de una cadena La longitud de una cadena es la cantidad de smbolos que la contiene, contando las repeticiones, se denota por |w| para una palabra w. Por ejemplo |perro| = 5.

1.1.2.2 Operaciones con cadenas


Igualdad de cadenas w1 = w2, si se cumple que |w1| = |w2| y (i: 1 i n: ai = bi) Reversa de una cadena w1R denota la reversa de la cadena w1 . Por ejemplo si w1 = casa, w1R = asac Concatenacin de cadenas Cuando se escriben varias palabras o caracteres uno a continuacin de otro, se supone que forman una sola palabra (se concatenan). La notacin utilizada para denotar la concatenacin de cadenas w1 y w2 es w1w2. Por ejemplo si w1 = abra y w2 = cadabra;

Teora de la Computacin II

1. Lenguajes regulares y autmatas finitos

w1w2 = abracadabra. La concatenacin de cadenas es asociativa, esto es, (w1w2) w3 = w1 (w2 w3), pero no conmutativa en el caso general. La longitud de una concatenacin cumple la propiedad | w1w2| = | w1| + | w2|.

, es el elemento neutro de la concatenacin.

w1 = w1 = w1

Solo se concatenan cadenas del mismo alfabeto. Potencia de una cadena w1k denota la concatenacin de w, con s misma k-1 veces (o la repeticin de w1, k veces). w1k = w1k-1. w1, w10 = {} por convencin w11 = w1 w12 = w1. w1 w1k = w1. w1, w1. ... w1 (k veces)

1.1.2.3 Operaciones con alfabetos


Potencia de un alfabeto Si B es un alfabeto BK es el conjunto de todas las cadenas de longitud K, tales que cada uno de los smbolos de las mismas pertenecen a B. Bo = {}, independientemente de cul sea el alfabeto B. Por ejemplo si B = {0, 1} entonces: B1 = {0, 1} B2 = {00, 01, 10, 11} B3 = {000, 001, 010, 011, 100, 101, 110, 111} Clausura de un alfabeto (A*) Es el conjunto de todas las cadenas que pueden formar un alfabeto. A* es infinito. Por ejemplo si B = {0, 1} entonces B* = {, 0, 1, 00, 01, 10, 11, 000,...} Expresado de otra forma A* = A0 A1 A2 A3 ...

Ciclo Marzo Julio 2011

JCSA

1.1.3 Lenguajes
Un lenguaje es un conjunto de palabras seleccionadas de un A*, donde A es un determinado alfabeto. Un lenguaje puede ser finito o infinito y se puede definir por comprensin o extensin. Por ejemplo {abracadabra} es un lenguaje de una sola palabra, {ali, baba, y, sus, cuarenta, ladrones}, es otro, A* es otro, etc. Si A es un alfabeto y L A*, entonces L es un lenguaje de A. Ejemplos de lenguajes sobre el alfabeto B = {a, b, c}. L1 = {} L2 = {} L3 = {a, b, aa, bb, ab, ba} L4 = {an / n 1} = {a, aa, aaa, aaaa, ...} L5 = {anbn / n 1} = {ab, aabb, aaabbb, ...}

1.1.3.1 Operaciones con lenguajes


Dados L1 A* y L2 A* Unin de lenguajes Denotado por L1 L2, contiene los elementos del lenguaje L1 y los del lenguaje L2. L1 L2 = {wA* / wL1 wL2} Por ejemplo: L1 = {ala, ama} L2 = {pozo, casa, ala} L1 L2 = {ala, ama, pozo, casa} Interseccin de lenguajes Denotado por L1 L2, contiene los elementos que pertenecen simultneamente al lenguaje L1 y al lenguaje L2. L1 L2 = {wA* / wL1 y wL2} Por ejemplo: L1 L2 = {ala} Diferencia de lenguajes Denotado por L1 - L2, contiene los elementos que pertenecen al lenguaje L1, pero no al lenguaje L2. L1 - L2 = {wA* / wL1 y wL2} Por ejemplo: L1 - L2 = {ama} L2 - L1 = {pozo, casa}

T Teora de la Computacin II a

1. Lengua regulares y autm ajes matas finito os

Comp mplemento d un lenguaje de Es un caso parti n icular de la diferencia, cuando el primer Len , nguaje es co onsiderado como el u universo qu contiene todos los el ue lementos po osibles. {wA* / w 1} = A* - L1 L L1= { Conc catenacin de lenguaje es Deno otado por L1L2, conti iene los ele ementos de lenguaje L1 concat el e tenados con los elem mentos del le enguaje L2 L1L2 = {w1w2A / w1L1 y w2L2} A* utro oncatenacin es el . L1 = L1 = n El elemento neu de la co La co oncatenaci de lengua es asoc n ajes ciativa. L1(L2L3) = (L1 L2) L 3 La co oncatenaci de lengua no es co n ajes onmutativa. L1L2 L2L1 Poten del len ncia nguaje Es el conjunto d todas las cadenas de longitud K. l de K L0 = {} LK = LLLL...L k veces Clau usura (cerra adura, estre ella) de un l lenguaje nguaje, L*, llamado clausura de Kleene1 de L, es el lenguaje que e e Si L es un len conti iene: La caden vaca, na El lengu L uaje Todas la palabras formadas po la concatenacin de miembros d L* as f or de Por e ejemplo; si L1 = {a} y L2 = {abra, cadabra} L1* = {, a, aa, a aaaa, ...} aaa, L2* = {, abra, a abraabra, ab bracadabra, cadabraabr ... } ra, La d definicin d la clausu es recur de ura rsiva, pues en la terce regla se supone qu ya era e ue exist palabras en L*, las cuales se co ten s oncatenan para formar una nueva p p palabra. Reve ersa de un l lenguaje L1R = {wR A* / w L1} * Por e ejemplo si L1 = {, a, ab}, L1R = { a, ba} {,
1

Step phen Kleene (1 1909-1904). Lgico y mate L emtico estado ounidense.

o Julio 2011 Ciclo Marzo J

JCSA J

Un lenguaje formal es un lenguaje cuyos smbolos primitivos y reglas para unir esos smbolos estn formalmente especificados. Al conjunto de los smbolos primitivos se le llama el alfabeto (o vocabulario) del lenguaje, y al conjunto de las reglas se lo llama la gramtica formal (o sintaxis). A una cadena de smbolos formada de acuerdo a la gramtica se la llama una frmula bien formada (o palabra) del lenguaje. Un lenguaje formal es idntico al conjunto de todas sus formulas bien formadas. A diferencia de lo que ocurre con el alfabeto (que debe ser un conjunto finito) y con cada formula bien formada (que debe tener una longitud tambin finita), un lenguaje formal puede estar compuesto por un numero infinito de formulas bien formadas. Bibliografa

Hopcroft, J.E,; Montwani R.; Ullman, J.D. (2008). Introduccin a la Teora de Autmatas, Lenguajes y Computacin, Pearson. Addison Wesley. Tucker, Allen B. (2004). Fundamentos de Informtica. McGraw-Hill.

Vous aimerez peut-être aussi