LENGUAJES FORMALES, AUTOMATAS Y MAQUINAS DE ESTADOS FINITOS
CONCEPTOS BASICOS SIMBOLO: Es la representación abstracta de un objeto. En general, es cualquier carácter que represente algún elemento. Ejs: 1, a, . ALFABETO o VOCABULARIO: Es un conjunto finito de símbolos. Debe existir al menos un símbolo en el alfabeto es decir, el alfabeto no puede ser el conjunto vacío. Notación: Este conjunto se denota con .
CONCEPTOS BASICOS II CADENA: Es una secuencia de símbolos de un alfabeto. Se dice que una cadena sobre un alfabeto es tal que *, siendo * el conjunto formado por todas las posibles cadenas que pueden formarse con los elementos de . Una cadena no puede ser infinita: no es un subconjunto de *, sino uno de sus elementos. Ejemplo: Si ={0,1}, entonces *={1,0,00,01,10,11,100,…} y una posible cadena * es 101011010.
CONCEPTOS BASICOS III LENGUAJE: Es un conjunto de cadenas, las cuales deben estar formadas sobre un alfabeto . Ejemplo: Si ={0,1} es un alfabeto, L = {100, 001, 00, 111} es un lenguaje y las cadenas ,* son, respectivamente, 1010 y 100, entonces, se tiene que L L. ESTADO: Es la situación o las características de un objeto en un momento dado. Un objeto no pude estar en más de un estado al mismo tiempo.
AUTOMATAS FINITOS Los autómatas se caracterizan por tener un estado inicial. En dicho estado, reciben una cadena de símbolos, cambian de estado por cada elemento o permanecen en el mismo estado. También tienen un conjunto de estados finales o aceptables, que indican si una cadena pertenece al lenguaje al final de una lectura.
AUTOMATAS FINITOS DETERMINISTICOS I(AFD) Un AFD está definido por una 5 – upla como sigue: A = (Q, qo, F, , ), donde: Q es un conjunto finito de estados qo es el estado inicial. Luego, qo Q. Debe ser uno, y sólo uno. En consecuencia, qo Q. F es un conjunto finito de estados finales. En consecuencia, F Q. Puede ser qo F. es el alfabeto finito de entrada. es una función de Q X Q. se denomina función de transición.
AUTOMATAS FINITOS DETERMINISTICOS II (AFD) EJEMPLO: Q = {qo, q1, q2, q3, q4} Estado inicial: qo. F = {q3} = {x, y} : Qx Q/ (qo,x) = q1; (qo,y) = q1; (q1,x)= q1; (q1,y)= q2; (q2,x)=q3; (q2,y)= q2; (q3,x) = q1; (q3,y) = q2; (q4,x) = (q4,y) = q4.
DIAGRAMA DE TRANSICION DE UN AFD Para el ejemplo dado, es el siguiente grafo orientado y etiquetado:
TABLA DE TRANSICION DE UN ADF x y qo q1 q4 q2 q3 q3
ACEPTACION DE UNA CADENA Una cadena se acepta, si finaliza en un estado final. En caso contrario, no. Cadena 1: xxyxxyyy No se acepta. Cadena 2: xxyyx Sí se acepta.
AUTOMATAS FINITOS NO DETERMINISTICOS I(AFN) Un AFN está definido por una 5 – upla como sigue: A = (Q, I, F, , ), donde: Q es un conjunto finito de estados I es un conjunto de estados iniciales. Luego, I Q (I puede no ser un conjunto unitario). F es un conjunto finito de estados finales. En consecuencia, F Q. es el alfabeto finito de entrada. es una función de Q X P(S), con S Q.
DIFERENCIAS ENTRE AFD Y AFN En AFN c(I) 0, con I Q. qiQx, qj, qkQ (qi,x) = {qj, qk} P(S). Nótese, que S Q, con lo cual, puede ser (qi,x)=. En el AFN no toda transición está determinada y la imagen de un par (estado, símbolo) es un subconjunto de Q, por lo cual pude ser . En AFD C(I) = 1, con I Q. qiQx, qjQ (qi,x) =qj. En el AFD toda transición está determinada y existe uno, y sólo un estado imagen.
AUTOMATAS FINITOS NO DETERMINISTICOS II(AFN) EJEMPLO: Q = {qo, q1, q2} I = {qo} F = {qo, q1} = {a, b} : Qx P(Q) tal que: (qo, a) ={q0, q1}; (qo, b) = {q2}; (q1,a)= ; (q1,b)= q1; (q2,a) ={q1,q2,}; (q2,b)= .
DIAGRAMA DE TRANSICION DE UN AFN Es, a su vez, un grafo:
TABLA DE TRANSICION DE UN AFN qo {qo, q1} {q2} q1 {q1} q2 {q1, q2}
CONVERSION DE UN AFN EN AFD Consideremos el AFN anterior. Se rediseña la función , como *: P(Q)x P(Q), como sigue: *(,a)=*(,b)=; *({qo,q1},a)={qo,q1}, *({qo,q1},b)={q2,q1}, *({qo,q2},a)={qo,q1}, *({qo,q2},b)={q2}, *({q1,q2},a)={q2,q1}, *({q1,q2},b)={q1}, *({qo},a)=({qo,q1}, *({qo},b)={q2}, *({q1},a)= , *({q1},b)={q1}, *({q2},a)={q2,q1},*({q2},b)=,*(Q,a)={qo,q1} y *(Q, b)={q2,q1}
NUEVA TABLA E0 {qo} E3 E2 E1 {q1} {q2} E5 {qo,q1} E4 {qo,q2} {q2,q1} Elemento de Q’ Elemento de P(E) a b E0 {qo} E3 E2 E1 {q1} {q2} E5 {qo,q1} E4 {qo,q2} {q2,q1} E6 Q Los estados finales serán E2, E4, E5 y E6, puesto que son los que contienen a q2.
DIAGRAMA DE TRANSICIÓN
DIAGRAMA DE TRANSICIÓN
DIAGRAMA EQUIVALENTE
MAQUINA DE ESTADOS FINITOS Una máquina de estados finitos es un autómata finito, en el cual no existen estados finales y los símbolos de entrada se colocan junto con los símbolos de salida. Es decir, una máquina de estados finitos es una 5-upla M = {Q, E, S, qo, ,) donde: Q es el conjunto finito de estados. qo estado inicial. E es el conjunto finito de entradas. S es el conjunto finito de salidas. : QxE Q función de estado siguiente y la función de salida, : QxE S.
MAQUINA DE TURING(MT) Una MT consiste en una cinta que se extiende de manera infinita, en donde se escribe o se lee información por medio de una cabeza de lectura/escritura. MT = (Q, , A, qo, b, F,) donde:Q: conjunto finito de estados.qoQ: estado inicial. : conjunto de símbolos de entrada. A: alfabeto de la cinta. b: símbolo blanco. b A b . F: conjunto de estados finales. M = {I, D} (conjunto de movimientos posibles de la cabeza). : función de transición, de QxA QxAxM.
EJEMPLO (qo, x)= (qo, x, D), (qo, y)= (q1, y, D) MT= (Q, , A, qo, b, F,), con Q={qo,q1,q2,q3}, ={x,y}, A={x, y, b}, F= {q3}, M = {I, D} La función de transición definida por: (qo, x)= (qo, x, D), (qo, y)= (q1, y, D) (q1, b)= (q2, b, I), (q2, x)= (q2, x, I) (q2, y)= (q2, y, I), (q2, b)= (q3, b, D) Usaremos esta MT para decidir si la cadena xxy es o no aceptada.
(qo, x)= (qo, x, D), (qo, y)= (q1, y, D) (q1, b)= (q2, b, I), (q2, y)= (q2, y, I), (q2, x)= (q2, x, I), (q2, b)= (q3, b, D)
COMPLEJIDAD COMPUTACIONAL Es la cantidad de recursos necesarios (tiempo y espacio) para resolver un problema. El tiempo es el número de pasos de ejecución de un algoritmo para resolver un problema. El espacio es la cantidad de memoria utilizada para resolver dicho problema.
ALGORITMO POLINOMIALES (P) En estos algoritmos la relación entre el número de datos (n) y el tiempo de ejecución esta dada por una expresión polinomial