Introducción ¿Qué es un Algoritmo?

Slides:



Advertisements
Presentaciones similares
Autómata finito Determinista
Advertisements

Aplicación de autómatas: Analizador léxico 2.
 Primitivas de la construcción de Thompson Expresión regular
Conversión de autómata finito con transiciones-ε a autómata finito determinista Estados q3q3 q2q2 q0q0 q1q1 q4q4 a b c c c.
INSTITUTO TECNOLÓGICO DE MINATITLÁN
Conceptos básicos Def. Un símbolo es cualquier carácter imprimible.
Autómatas de pila (Pushdown automata)
Diseño de Autómatas Finitos
Autómatas Finitos.
Diseño de AFN’s.
Análisis Lexicográfico
Autómata Finito Un autómata finito (AF) es un modelo de computación muy restringido, sin embargo tiene una gran aplicación en reconocimiento de patrones.
TIPOS DE GRAMATICAS JERARQUIAS DE CHOMSKY
Conversión de autómata finito con transiciones-ε y no determinista a autómata finito determinista Estados Entradas a b c q0q0 q1q1 q2q2 q3q3 q4q4 ab b.
Conversión de autómata finito no determinista a autómata finito determinista Estados a q1q1 q2q2 q3q3 q4q4 a c c c b b.
Tema: Decibilidad Integrantes: Ileana Rdguez Soto
2º curso Ingeniería Técnica en Informática de Sistemas UNED
¿Cómo hacer para que una máquina comprenda el LN?
Tomado de Sudkamp: Languages and Machines Cap. 7.
Introducción a la máquina
La maquina de Turing La máquina de Turing es una caja negra (tan simple como una máquina de escribir y tan compleja como un ser humano) capaz no sólo de.
LAS MAQUINAS DE TURING.
APLICACIONES DE AUTOMATAS Y EXPRESIONES REGULARES
Expresiones regulares
5. Propiedades de los Lenguajes Recursivamente
Tema 2 Autómatas finitos 1. Autómata finito determinista
4. Máquinas de Turing 4.1. Modelo básico.
UNIVERSIDAD LATINA (UNILA) I.- FUNDAMENTOS DE ALGORITMOS
UNIVERSIDAD NACIONAL AUTÓNOMA DE MÉXICO FACULTAD DE INGENIERIA DIVISIÓN DE INGENIERÍA ELÉCTRICA COMPUTACIÓN PARA INGENIEROS NOTA IMPORTANTE: Para complementar.
3. INTRODUCCIÓN A LA PROGRAMACIÓN
Autómatas finitos y expresiones regulares
EJERCICIOS DE EXPRESIONES REGULARES Y AUTOMATAS
CLASIFICACION DE LAS MAQUINAS DE TURING
METODOLOGIA DE LA PROGRAMACION
Teoría de Autómatas II 3º curso Ingeniería Técnica en Informática de Sistemas UNED.
Lenguajes Regulares Curso de Compiladores Manuel E. Bermúdez, Ph.D.
1. FUNCIONES. LÍMITES. Depto. Matemáticas – IES Elaios
Conceptos Fundamentales
5. Propiedades de Cierre de los lenguajes regulares
Definición Formal de Autómatas Finitos Métodos de Diseño de AFDs
ALGORITMOS, LENGUAJES Y TECNICAS DE PROGRAMACION
Proceso de información en la computadora
2º curso Ingeniería Técnica en Informática de Sistemas UNED
Autómatas de Pila Teoría del Autómata.
2º curso Ingeniería Técnica en Informática de Sistemas UNED
Problemas, algoritmos y programas: Modelar: Simular o programar su solución en un computador. Algoritmos: Es un conjunto finito, y no ambiguo de etapas.
ESTRUCTURA DE DATOS ESD-243
Tema 2 Autómatas finitos 1. Autómata finito determinista
AUTOMATAS.
Ejemplo de AFN Ej. Diseña un AFN que acepte todas las cadenas que contengan dos ceros consecutivos o dos unos consecutivos. Solución AFN q4 1 q2 q1 q0.
Teoría de lenguajes y compiladores Analizadores lexicográficos
Teoría de Autómatas I 2º curso Ingeniería Técnica en Informática de Sistemas UNED.
MÁQUINAS DE TURING Teoría del Autómata.
Teoría de lenguajes y compiladores
Unidad 1: FUNDAMENTOS DE COMPUTACIÓN Y PSEUDOLENGUAJE
Problemas de grafos y Tratabilidad Computacional
UNIVERSIDAD VALLE DEL MOMBOY FACULTAD DE INGENIERIA ESCUELA DE COMPUTACIÓN CATEDRA: EDUMATICA Br: JENNY CORONADO C.I
AUTÓMATA LINEALMENTE ACOTADO
Autómatas de Pila (Pushdown Automatón)
ARQUITECTURA DE LOS SISTEMAS DE INFORMACIÓN
Teoría de lenguajes y compiladores
I.- ESTUDIO DE LOS LENGUAJES DE PROGRAMACIÓN.
Elaboración de algoritmos usando lógica de programación
Funciones Continuas.
Simulación de un AFD Conversión de un AFND a un AFD.
Teoría de Autómatas I 2º curso Ingeniería Técnica en Informática de Sistemas UNED.
Unidad 2 Lenguajes, Expresiones Regulares, Autómatas
Programación I Prof. Carolina Cols. Algoritmo es una lista bien definida, ordenada y finita de operaciones que permite hallar la solución a un problema.
AUTOMATAS Y LENGUAJES FORMALES FASE 1
AUTOMATAS FINITOS DETERMINISTICOS
Transcripción de la presentación:

Introducción ¿Qué es un Algoritmo? ¿Cualquier problema puede ser resuelto con un programa de computadora? ¿Cuando un algoritmo puede ser considerado como prácticamente realizable?

Introducción Por más de 65 años (desde antes de que las computadoras surgieran) los científicos de la computación han analizado estas preguntas. Sus ingeniosas respuestas han influenciado profundamente el campo de la computación. Uno de los grandes personajes fue Alan Turing (1912-54) – matemático inglés que sentó las bases teóricas de la computación.

Autómata Finito Un autómata finito (AF) es un modelo de computación muy restringido, sin embargo tiene una gran aplicación en reconocimiento de patrones. Un AF representa la máquina más simple; cuenta tan solo con una cinta de entrada, una cabeza lectora y una unidad de control. Carece de memoria auxiliar. Un AF es importante pues es considerado un dispositivo reconocedor de lenguaje. Un autómata finito es llamado determinístico (AFD) cuando su operación está completamente determinada por su entrada.

Autómata Finito Determinístico Modelo de un AFD a b … cinta de entrada qo q5 q1 q4 q2 q3 Control finito

Autómata Finito Determinístico Operación del Automata Cinta dividida en cuadros, con capacidad de sólo un símbolo por cuadro. La unidad de proceso es llamada control finito (y puede estar en uno de varios estados (q0, q1, ...). El control finito puede leer el símbolo escrito en cualquier posición de la cinta, utilizando su cabeza lectora movible, desplazándose únicamente hacia la derecha de la misma. Al inicio la cabeza lectora se posiciona en el cuadro de más a la izquierda de la cinta y el control finito es situado en su estado inicial (normalmente q0). El AF puede leer solo un símbolo a la vez y posiblemente cambiar de estado. Una vez leído un símbolo, la cabeza lectora se posiciona automáticamente en el cuadrado siguiente , hacia la derecha. De esta manera la siguiente operación leerá el símbolo del siguiente cuadro de la cinta.

Ejercicios 1. Genere un autómata finito que acepte los siguientes lenguajes sobre el alfabeto {0,1} El conjunto de cadenas que termine en 00. El conjunto de cadenas que contenga 101. El conjunto de cadenas tales que cada 5 símbolos contengan exactamente dos 0´s, ej. 0111010011, … 2. Autómata finito que reconozca: Nombres de variables en java. Enteros Reales

Definición Formal q0 є K es el estado inicial. Def. Un autómata finito determinístico , es una estructura abstracta que consiste en un quíntuplo, M = <K, Σ, q0 , δ, F>, en donde: K es un conjunto finito de estados. Σ es un conjunto finito de símbolos llamado alfabeto. δ: K x Σ → K, es una función de transición de estados. q0 є K es el estado inicial. F ⊆ K es el conjunto de estados finales.

Definición Ejemplo: 1. Construyamos un automata que reconozca el lenguaje 0+1* Formalmente el AFD se expresa como M1 = (K, Σ, δ, s, F), en donde: K = {q0 , q1 , q2 , q3 } Σ = {0, 1} s = q0 F = {q1 , q2 } 1 1 q2 q3 0, 1 q0 q1 1 δ 1 q0 q1 q3 q2

El Lenguaje Reconocido por un AFD Para poder definir el lenguaje reconocido por un AFD, es necesario primero redefinir la función δ, para que reciba cadenas como entrada, es decir: δ’: K x Σ* → K La intención es que δ’(qi,w) represente el estado del AFD al que se arriba después de haber procesado la cadena w, a partir del estado qi.

El Lenguaje Reconocido por un AFD Def. Dado un autómata finito determinístico M=(K, Σ, δ, q0, F) y sea qi  K, un estado cualquiera, definimos δ’ a partir de δ como: δ’(qi, ε) = qi (∀wΣ*)(∀aΣ), δ’(q,wa)=δ(δ’(q,w),a)

El Lenguaje Reconocido por un AFD Definición El lenguaje aceptado por un AFD, M=(K, Σ, δ, q0, F), designado L(M), se define como el conjunto: L(M) = { w | wΣ* y δ’(q0,w) F } Def. Un lenguaje es un conjunto regular (o regular) si consiste en el conjunto aceptado por algún autómata finito.

Ejemplos Genere un autómata finito que acepte los siguientes lenguajes sobre el alfabeto {0,1} El conjunto de cadenas que terminen en 00. El conjunto de cadenas que contengan 000. El conjunto de cadenas a los cuales cada 5 símbolos contengan dos 0´s. Autómata finito que reconozca: Nombres de variables en Java. Números enteros. Números Reales Un autómata finito que acepte cadenas {0,1} con un número par de ceros.