Vous êtes sur la page 1sur 26

Introduccin Autmatas Finitos, Expresiones Regulares y Gramticas de tipo 3 Autmatas con Pila

Introduccin Histrica Diferentes Modelos de Computacin

Autmatas y Lenguajes

Lenguajes y Gramticas. Aspectos de su traduccin


Alfabetos y Palabras Lenguajes Gramticas Generativas Jerarqua de Chomsky

Autmatas Finitos Determinsticos


Proceso de clculo asociado a un Autmata de Estado Finito Lenguaje aceptado por un Autmata de Estado Finito

Autmatas Finitos No-Determinsticos (AFND)


Diagramas de Transicin Equivalencia de Autmatas Determinsticos y No-Determinsticos

Autmatas Finitos No Deterministicos con transiciones nulas Expresiones Regulares


Propiedades de las Expresiones Regulares Expresiones Regulares y Autmatas Finitos

Gramticas Regulares Mquinas de Estado Finito


Mquinas de Moore Mquinas de Mealy Equivalencia de Mquinas de Mealy y Mquinas de Moore

Definicin de Autmata con Pila


Lenguaje aceptado por un autmata con pila

Autmatas con Pila y Lenguajes Libres de Contexto Lenguajes Independientes del Contexto Deterministas

Un aspecto importante en el desarrollo de los ordenadores, es sin duda, su aplicacin para resolver problemas tecnolgicos cientficos y empresariales. Seria muy difcil realizar esto sin la utilizacin de procedimientos que permiten resolver estos problemas mediante una sucesin de pasos claros, concretos y sencillos, es decir algoritmos. Tambien las matemticas permite la utilizacin de nuevas metodologas para la representacin y manejo de la informacin El avance de la tecnologa y de las matemticas, y ms en concreto de la teora de conjuntos y de la lgica, permiten plantearse aspectos de la computacin en 3 caminos.
a) Computacin terica. Autmatas, Funciones Recursivas, ... b) Ordenadores digitales. Nuevas tecnologas, nuevos lenguajes, .... c) Intentos de modelar el cerebro biolgico 1. Redes Neuronales (intentan modelar el "procesador") 2. Conjuntos y Lgica Difusa (representar y manejar la informacin)

Consideremos el problema general, bajo un planteamiento de Programacin. Un programa se puede ver como una sucesin de ceros y unos, cuya ejecucin produce una salida, que es otra serie de ceros y unos. Si aadimos un 1 al inicio de cada cadena binaria (programa y salida), podemos entender los programas como aplicaciones concretas de una funcin entre nmeros naturales en binario. El argumento (variable independiente) sera el programa y la funcin (var. dependiente) la salida del programa.

La `informtica' (Informacin automtica), designa un vasto conjunto de teoras y tcnicas cientficas -desde la matemtica abstracta hasta la ingeniera y la gestin administrativa- cuyo objeto es el diseo y el uso de los ordenadores. El ncleo terico ms slido y fundamental es la `Teora de la Computabilidad El propsito inicial es hacer precisa la nocin intuitiva de funcin calculable; esto es, una funcin cuyos valores pueden ser calculados de forma automtica o efectiva mediante un algoritmo, y construir modelos tericos para ello

La teora de la computabilidad busca respuestas a preguntas como:


1. 2.

Qu pueden hacer los ordenadores (sin restricciones de ningn tipo )? Cuales son las limitaciones inherentes a los mtodos automticos de clculo?.

La meta de Hilbert era crear un sistema matemtico formal ompleto y onsistente", en el que todas las aseveraciones pudieran plantearse con precisin. Su idea era encontrar un algoritmo que determinara la verdad o falsedad de cualquier proposicin en el sistema formal. A este problema le llam el `Entscheidungsproblem'.

Las cuestiones planteadas por D. Hilbert (1928)


1.

2.
3.

Son completas las matemticas, en el sentido de que pueda probarse o no cada aseveracin matemtica? Son las matemticas consistentes, en el sentido de que no pueda probarse simultneamente una aseveracin y su negacin ? Son las matemticas decidibles, en el sentido de que exista un mtodo definido que se pueda aplicar a cualquier aseveracin matemtica, y que determine si dicha aseveracin es cierta?.
Turing se dio cuentas de que esta cuestin puede atacarse con la ayuda de una mquina, al menos con el concepto abstracto de mquina. Adems, utiliz su concepto de mquina para demostrar que existen funciones que no son calculables por un mtodo definido y en particular, que el Entscheidungsproblem era uno de esos problemas

Usando la codicacin de Gdel, se demostr que era posible construir una mquina de propsito general, es decir, capaz de resolver cualquier problema que se pudiese resolver mediante un algoritmo. Dicha mquina tendra como entrada el entero que codificara el algoritmo solucin del problema y la propia entrada del problema, de tal forma, que la mquina aplicara el algoritmo codificado a la entrada del problema. Esta hipottica mquina puede considerarse como el padre de los actuales ordenadores de propsito general. Por lo que sera interesante responder de forma automtica a cuestiones como:

Calculan los algoritmos A y B la misma funcin? (Problema de la equivalencia) - Parar el algoritmo A para una de sus entradas? (Problema de la parada) - Parar el algoritmo A para todas sus entradas? (Problema de la totalidad) - Calcula el algoritmo A la funcin f? (Problema de la vericacin?)

El identicar los problemas que son computables y los que no lo son tiene un considerable inters, pues indica el alcance y los lmites de la computabilidad, y as demuestra los lmites tericos de los ordenadores

a) La ACM (Asociation Computing Machinering): `la disciplina Ciencias de la Computacin es el estudio sistemtico de los procesos algortmicos que describen y transforman informacin: teora, anlisis, diseo, eficiencia, implementacin, y aplicacin.' b) Norman E. Gibbs y Allen B. Tucker (1986)indican que: `no debemos entender que el objetivo de las Ciencias de la Computacin sea la construccin de programas sino el estudio sistemtico de los algoritmos y estructura de datos, especficamente de sus propiedades formales'. Para ser ms concretos (A. Berztiss 1987), vamos a considerar a las C.C. como un cuerpo de conocimiento cuyo objetivo es obtener respuestas para las siguientes cuestiones:

Qu problemas se pueden resolver mediante un ordenador?. Cmo puede construirse un programa para resolver un problema?. Resuelve realmente nuestro programa el problema?. Cuanto tiempo y espacio consume nuestro problema?.

Se clasifican los problemas segn que siempre sea posible encontrar la solucin por medio de un algoritmo (problemas computables) que no existan algoritmos que siempre produzcan una solucin (problemas no computables). Surge de modo inmediato la cuestin de como disear un programa (algoritmo especificado para poder ser ejecutado por un ordenador) que resuelva un problema dado La abstraccin separa el programa del ordenador y nos acerca cada vez ms al problema.
Los lenguajes de alto nivel

No hay un algoritmo para ensear a disear algoritmos, y muchas veces el proceso de construccin puede llegar a ser muy poco disciplinado

Los programadores prueban sus programas sobre una gran cantidad de datos de entrada para descubrir la mayora de los errores lgicos presentes, aunque con este mtodo (al que suele denominarse de prueba y depuracin) no se puede estar completamente seguro de que el programa no contiene errores. Para realizar la verificacin formal se requiere
reglas que describan de forma precisa el efecto que cada

instruccin tiene en el estado actual del programa, aplicando dichas reglas demostrar rigurosamente que lo que hace el coincide con sus especiaciones

Que hay del anlisis del tiempo y espacio que necesita una solucin concreta

Hay dos tipos:


problemas eficientemente computables, para los que exista un

algoritmo eficiente; y problemas intratables, para los que no existen algoritmos eficientes.

La existencia de problemas intratables no ha sido probada, si bien se han encontrado muchas evidencias a su favor. Otra clase de problemas a considerar es la clase NP de los problemas para los que existia un algoritmo no determinantico en tiempo polinomial, y dentro de ella, los problemas NPcompletos.
Qu quiere decir que f sea ms difcil de computar que g?
La nocin fundamental de medida de complejidad definida como el

tiempo de computacin sobre una mquina de Turing multicinta

LA CLASE P contiene aquellos problemas de decisin que pueden ser resueltos en tiempo polinmico por una MT determinista, esto es, aquellas en las que para cada par estado y smbolo exista a lo sumo una posibilidad de ejecucin. Los problemas de complejidad polinmica son tratables, es decir, en la prctica se pueden resolver en un tiempo razonable.
LA CLASE NP contiene los problemas de decisin que son resueltos por una MT no determinista en tiempo polinmico y de ah su nombre: NonDeterministic Polynomial-time.

Naturalmente, cualquier problema en P tambin se encuentra en NP:


Si una mquina de Turing determinista resuelve

el problema, una no determinista tambin y en igual tiempo (MTD es un caso particular de MTND).

Pero qu relacin existe entre la clase P y la clase NP?

Distincin entre lenguajes:


Naturales como el ingls, donde la sintaxis y la semntica no se pueden controlar fcilmente Formales reglas sintcticas y semnticas rgidas, concretas y bin definidas

Gramticas
una forma de describir estos lenguajes, utilizando para

ello reglas de produccin para construir las frases del lenguaje

Los lenguajes formales(LF) como los lenguajes de programacin o el lenguaje matemtico, tienen unas estructuras claramente definidas y determinadas por sus reglas gramaticales (sintcticas y semnticas). Esto ha posibilitado y propiciado la construccin de traductores automticos para estos lenguajes (los compiladores).

Definicin 1 Un alfabeto es un conjunto finito A. Sus elementos se llamarn smbolos o letras. Para notar los alfabetos, usaremos las primeras letras en maysculas: A;B;C; Para los smbolos usaremos las primeras letras en minsculas: a;b; c; o nmeros. Ejemplo

un alfabeto A = {0;1} con smbolos 0 y 1. un alfabeto B = {< 0;0 >;< 0;1 >;< 1;0 >;< 1;1 >} con

smbolos < 0;0 > ;< 0;1 >;< 1;0 > y < 1;1 >

Por ejemplo, si A = {0,1}entonces 0111 es una palabra sobre este alfabeto.

El conjunto de todas las palabras sobre un alfabeto A se nota como A*.


Para las palabras usaremos, en lo posible, las ltimas letras del alfabeto latino en minsculas: u. v. x. y. z..

El conjunto de cadenas sobre un alfabeto A excluyendo la cadena vaca se nota como A+. Usaremos indistintamente palabra o cadena. Si no hay confusin, la palabra formada por un solo smbolo se representa por el propio smbolo. La operacin fundamental en el conjunto de las cadenas A* es la concatenacin.

Vous aimerez peut-être aussi