You are on page 1of 13

GUIA TEORIA DE LA COMPUTACION UVM Autmatas Finitos son modelos tiles para muchos elementos hardware y software: Los

lenguajes nos permiten comunicarnos con la mquina, parte de lo que puede hacer la mquina depende del poder descriptivo del lenguaje Mquinas abstractas Autmatas Finitos. Autmatas de Pila. Autmatas linealmente acotados. Mquina de Turing Alfabeto: conjunto no vaco y finito de smbolos Ej: ={0, 1, ..., 9}, ={a, b, c, ..., z} Palabra (cadena): secuencia finita de smbolos de un determinado alfabeto. f:N cadena Ej: ={a, b, c, ..., z} Lenguaje: conjunto de palabras Ejemplo de AF Sistema: Interruptor. El sistema recuerda si est conectado (ON) o desconectado (OFF). El usuario lo presiona. Si est en OFF y es presionado pasa al estado ON. Si est en ON y es presionado pasa al estado OFF. Ej: {1, 12, 123, 1234, 12345, 123456} es un lenguaje sobre ={0, 1, ..., 9} f:

Un autmata finito no determinista (AFN) es un modelo matemtico formado por : Un conjunto de estados S Un conjunto de smbolos de entrada (alfabeto de smbolos de entrada) Una funcin de transicin mueve que transforma pares estado-smbolo en conjunto de estados Un estado inicial so que se considera el estado de inicio. Un conjunto de estados F Considerados como estados de aceptacin o final.

Un autmata finito determinista (AFD) es un caso especial de un autmata no determinista donde:

Ningn estado tiene una transicin , es decir, una transicin con la entrada .

Para cada estado s y cada smbolo de entrada a no hay a lo sumo una arista etiquetada a que sale de s

Autmatas de pila y Lenguajes independientes del Contexto Los Lenguajes Libres de Contexto (LLC) forman una clase de lenguajes ms amplia que los Lenguajes Regulares, de acuerdo con la Jerarqua de Chomsky. Funcionamiento de los Autmatas de Pila (informal) La pila tendr un alfabeto propio, que puede o no coincidir con el alfabeto de la palabra de entrada. Esto se justifica porque puede ser necesario introducir en la pila caracteres especiales usados como separadores, segn las necesidades de diseo del autmata.

Autmatas de pila y Lenguajes independientes del Contexto Al iniciar la operacin de un AP, la pila se encuentra vaca. Durante la operacin del AP, la pila puede ir recibiendo (y almacenando) caracteres, segn lo indiquen las transiciones ejecutadas. Al final de su operacin, para aceptar una palabra, la pila debe estar nuevamente vaca. En los AP las transiciones de un estado a otro indican, adems de los caracteres que se consumen de la entrada, tambin lo que se saca del tope de la pila, as como tambin lo que se mete a la pila.

Autmatas de pila y Lenguajes independientes del Contexto

Para verificar el funcionamiento del autmata, podemos simular su ejecucin, listando las situaciones sucesivas en que se encuentra, mediante una tabla que llamaremos traza de ejecucin. Las columnas de una traza de ejecucin para un AP son: El estado en que se encuentra el autmata. Lo que falta por leer de la palabra de entrada. El contenido de la pila.

Autmatas de pila y Lenguajes independientes del Contexto

Autmatas de pila y Lenguajes independientes del Contexto Formalizacin de los AP

Un autmata de pila es un sxtuplo (K, , , , s, F), donde

Autmatas de pila y Lenguajes independientes del Contexto Autmatas de pila (pushdown automata) Para las CFG vamos a usar otro tipo de mquina reconocedora denominada autmata de pila. Se diferencian de los autmatas finitos en que se ayudan para sus transiciones de una memoria con estructura de pila. Como en los anteriores, la transicin entre estados depende del smbolo ledo y del estado actual, pero tambin del smbolo en lo alto de la pila. Cada transicin implica la modificacin de la pila. Es no determinista

Definicin 14 Un autmata de pila se define como una 7-tupla AP = (Q; V; ; ; q0; z0; F) en donde: Q es un conjunto finito de estados. V es el alfabeto de entrada. es el alfabeto de la pila. q0 es el estado inicial. z0 es el smbolo inicial de la pila. F Q es el conjunto de estados finales. es la funcin de transicin: : Q x (V {}) x 2Qx *

Mquina de Turing

Es un modelo matemtico simple de una computadora.

Modela la capacidad de clculo de una computadora de propsito general La mquina de Turing aade a un autmata finito una memoria externa: una cinta de papel ilimitada hacia ambos extremos. Una mquina de Turing se puede definir como un autmata finito que se desplaza sobre una cinta de papel dividida en casillas

En cada paso el autmata lee el smbolo que hay en la casilla actual y lo emplea como smbolo de entrada. Cambia de estado, y produce un nuevo smbolo (que puede ser igual al ledo), que es almacenado en la casilla sustituyendo al anterior. Adems decide si avanza una casilla hacia la izquierda o hacia la derecha. El autmata comienza en un estado inicial y con un nmero finito de smbolos en la cinta. Al cabo de un tiempo llega a un estado final (de parada), y en la cinta queda el resultado de la computacin. Formalmente, una mquina de Turing viene definida por los mismos trminos que un autmata finito ms una funcin que dado el estado y el smbolo de entrada decide la direccin del desplazamiento. En la prctica se puede definir una mquina de Turing dando un conjunto de 5-tuplas, de la siguiente forma: {estado, smbolo, nuevo_estado, nuevo_smbolo, direccin} Grficamente se puede representar mediante un diagrama de estados que incorpore tambin la direccin.

Computabilidad Encontrar la representacin adecuada para la descripcin de un problema

Computabilidad

Describir Encontrar las combinaciones de smbolos adecuadas para representar lo que se tiene en mente Problemas Computables Todo lo que se describe, se puede representar ALGORITMO. Representacin de la descripcin de un proceso Existe o no, un ALGORITMO que lo puede representar Problemas No Computables No se sabe si existe o no un algoritmo que lo pueda representar.

BASES DE DATOS RELACIONALES En las bases de datos relacionales, una tabla representa un conjunto de elementos nicos. Todos los elementos son diferentes, identificables y ordenables. Esto hace que pueda aplicrseles el clculo de conjuntos y la lgica de primer orden. Se pueden manejar igualmente como las relaciones matemticas; es decir, un registro en una tabla puede equipararse a un punto nico en el espacio que puede relacionarse mediante una relacin de transformacin con un punto en otro espacio (otra tabla).

SQL, el lenguaje de consultas a bases de datos universalmente aceptado implementa la aritmtica y clculo relacional a sea, el clculo y lgica de conjuntos

Complejidad computacional Un rea fundamental en la teora de las ciencias computacionales es la teora de la complejidad computacional y el anlisis de los recursos necesarios para resolver problemas computacionales. La teora de la complejidad computacional estudia la manera de clasificar los algoritmos como buenos y malos de acuerdo a un criterio especfico y tambin trata la manera de clasificar los problemas de acuerdo a la dificultad inherente a la bsqueda de su solucin. Para darles una solucin existen diferentes tcnicas de las cuales las ms fundamentales son: la mquina determinstica y la mquina no determinstica.

Mquina determinstica: Es aquella en la cual para una misma se obtiene el mismo resultado. Mquina no determinstica: Es aquella en la cual para una pueden obtener resultados diferentes. Existen algoritmos determinsticos y algoritmos no con las tcnicas usadas.

entrada siempre

misma entrada se

determinsticos de acuerdo

En un algoritmo determinstico, el resultado es nico en el sentido de que cada instruccin tiene un resultado conocido dependiente del contexto. Algoritmos no determinsticos donde algunas instrucciones den resultados no determinados de antemano.

Los investigadores en el rea de la teora de las ciencias computacionales han definido algunos modelos computacionales, tales como: Mquina de Turing. Circuitos booleanos. Mquinas aleatorias paralelas

Una clase de complejidad computacional es el conjunto de problemas solubles en un modelo computacional particular y sujeto a recursos computacionales particulares. El hecho de saber que una mquina de Turing parar en un tiempo finito no es muy prctico si dicho tiempo es excesivo. Los problemas computacionales los podemos dividir en dos conjuntos Tratables: Problemas para los cuales existe un algoritmo de complejidad polinomial. A los problemas tratables se les conoce tambin como problemas P (de orden polinomial). Intratables: Problemas para los que no se conoce ningn algoritmo de complejidad polinomial. Asimismo a los problemas no tratables se les llama tambin NP (de orden no determinstico polinomial).

rboles Un rbol es una estructura de datos que puede definirse de forma recursiva como: Una coleccin de nodos que puede ser vaca, o que en su defecto consiste de una raz R y un nmero finito de estructuras tipo rbol T1,,Tk, llamados subrboles, los cuales son disjuntos y sus respectivos nodos raz estn conectados a R.

Raz: es aquel elemento que no tiene antecesor; ejemplo: a Rama: arista entre dos nodos. Antecesor: un nodo X es es antecesor de un nodo Y si por alguna de las ramas de X se puede llegar a Y. Sucesor: un nodo X es sucesor de un nodo Y si por alguna de las ramas de Y se puede llegar a X. Grado de un nodo: el nmero de descendientes directos que tiene. Ejemplo: c tiene grado 2, d tiene grado 0, a tiene grado 2. Hoja: nodo que no tiene descendientes: grado 0. Ejemplo: d Nodo interno: aquel que tiene al menos un descendiente. Nivel: nmero de ramas que hay que recorrer para llegar de la raz a un nodo. Ejemplo: el nivel del nodo a es 1 (es un convenio), el nivel del nodo e es 3. Altura: el nivel ms alto del rbol. En el ejemplo de la figura 1 la altura es 3. Anchura: es el mayor valor del nmero de nodos que hay en un nivel. En la figura, la anchura es 3.

rboles binarios Un rbol binario en un rbol en el cual cada nodo puede tener como mximo dos hijos. Recursivamente un rbol binario puede definirse como: un rbol vaco, o un nodo raz con un subrbol izquierdo y un subrbol derecho. Cada nodo del rbol consiste en: Un dato (cualquier cosa)

Un apuntador al hijo izquierdo Un apuntador al hijo derecho

Inicialmente el nodo raz apunta a NULL. En las hojas del rbol, los apuntadores hacia los hijos izquierdo y derecho son NULL. Se denomina recorrido de un rbol el proceso que permite acceder una sola vez a cada uno de los nodos del rbol. Cuando un rbol se recorre, el conjunto completo de nodos se examina. Los algoritmos de recorrido de un rbol binario representan tres tipos de actividades comunes: Visitar el nodo raz Recorrer el subrbol izquierdo Recorrer el subrbol derecho

Estas tres acciones repartidas en diferentes ordenes proporcionan los diferentes recorridos del rbol. Los ms frecuentes tienen siempre en comn recorrer primero el subrbol izquierdo y luego el subrbol derecho . Los algoritmos anteriores se llaman pre orden , post-orden , in-orden y su nombre refleja el momento en que se visita el nodo raz . En el in-orden la raz esta en el medio del recorrido en el pre-orden la raz esta en el primero y en el post-orden la raz esta el ultimo:

RECORRIDO PRE-ORDEN 1- Visitar el nodo raz 2- Recorrer el subrbol izquierdo en pre-orden

RECORRIDO EN-ORDEN RECORRER POST-ORDEN Es una rbol:

3- Recorrer el subrbol derecho en pre-orden

1- Recorrer el subrbol izquierdo en in-orden 2- Visitar la raz 3- Recorrer el subrbol derecho en in-orden

1- Recorrer el subrbol izquierdo en post-orden 2- Recorrer el subrbol derecho en post-orden 3- Visitar la raz

Una coleccin de nodos que puede ser vaca, o que en su defecto consiste de un nodo raz R y un nmero finito de estructuras tipo rbol T1,,Tk, llamados subrboles, los cuales son disjuntos y sus respectivos nodos raz estn conectados a R.

Es binario: Cada nodo puede tener como mximo dos hijos, en otras palabras, cada nodo slo puede tener dos subrboles.

Es de bsqueda porqu: Los nodos estn ordenados de manera conveniente para la bsqueda.

Todas las datos del subrbol izquierdo son menores que el dato del nodo raz, y todas los datos del subrbol derecho son mayores rboles desbalanceados La figura muestra un rbol binario de bsqueda, sin embargo ste NO facilita la bsqueda de elementos. El problema es que est muy desbalanceado. La solucin es balancearlo, y con ello asegurar que asegurar que tiempo promedio de bsqueda sea de O(log2N).

rboles AVL Propuestos por Adelson-Velskii and Landis. rboles binarios con una condicin de balance. Esta condicin es usada para asegurar que en todo momento la altura del rbol es O(log2N). Condicin de balance: para cada nodo del rbol, las alturas de sus subrboles izquierdo y derecho slo pueden diferir como mximo en 1. La condicin de balance debe mantenerse despus de cada operacin de insercin o eliminacin.

You might also like