Académique Documents
Professionnel Documents
Culture Documents
Autmatas y Lenguajes
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
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'.
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
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
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.
el problema, una no determinista tambin y en igual tiempo (MTD es un caso particular de MTND).
Gramticas
una forma de describir estos lenguajes, utilizando para
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 >
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.