Maquina de Turing. 5. Fundamentos de algoritmos. Turing TURING TURING 10/08/2010. MI Elizabeth Fonseca Chávez

Documentos relacionados
Tipos de datos y Operadores Básicos

Ficha de Aprendizaje N 13

Área: INFORMÁTICA. Saber- Saber: Identificar DFD como herramienta para escribir los algoritmos de forma lógica.

como les va con las practicas?

Tema V. Fundamentos de algoritmos

Tema 2: Desarrollo de Algoritmos. E.E. de Algorítmica

Etapas en la solución de un problema

GLOSARIO 1. Qué es bit y byte? Bit: Es la unidad mínima de información. Puede ser 0 o 1. Byte: Es el conjunto de 8 bits. Ejemplo:

Programación en Lenguaje C

TEMA 2. LENGUAJE C. CONCEPTOS BÁSICOS Y PROGRAMACIÓN ELEMENTAL.

Introducción rápida a la programación (estructurada ) con C++

Algoritmos. Medios de expresión de un algoritmo. Diagrama de flujo

UNIVERSIDAD AUTÓNOMA DEL ESTADO DE HIDALGO

Capítulo 9. Introducción a los lenguajes formales. Continuar

Tipos de Datos en C. Palabras reservadas en C

El lenguaje C. 1. Identificadores, constantes y variables

1 ELEMENTOS BASICOS DEL LENGUAJE

Unidad didáctica 1. Operaciones básicas con números enteros

Elementos de un programa en C

Desarrollo de Programas. Prof. Lisbeth C. Pérez Rivas

ESTRUCTURA DE ASIGNACIÓN

Variables - Tipos de Datos - Operadores - Precedencia

ALGORITMOS DIGITALES II. Ing. Hugo Fdo. Velasco Peña Universidad Nacional 2006

Tema 2. Concepto de Algoritmo

Representación de la información

Operadores aritméticos. / División operando enteros o reales si operandos son entero resultado es entero. Resto de caso resultado real

Principios de Computadoras II

Tipos Básicos de Datos en C

Profesor(a): Ing. Miriam Cerón Brito

Introducción a la programación

Curso de Java Introducción a la Programación II

Tema 2: EL TIPO DE DATOS ENTERO. INSTRUCCIÓN DE ASIGNACIÓN Y DE COMPOSICIÓN SECUENCIAL

Lección 2 Introducción al lenguaje C

Tema 2. El lenguaje JAVA

PRÁCTICA FUNDAMENTOS DE ALGORITMOS I. Objetivos

Una expresión es una combinación de uno o más operandos y operadores para obtener un resultado.

Introducción a la computación. Primer Cuatrimestre de 2013

TEMA 02 TIPOS, OPERADORES Y EXPRESIONES

Introducción a la Computación

Objetivo específico: Maneja los elementos básicos de algoritmos utilizados para resolver un problema por computadora.

Tipos De Datos. Numéricos. Alfanuméricos (string) Arreglos (Vectores, Matrices) Estructurados Registros (Def. Por el Archivos Usuario) Apuntadores

UNIDAD 12: ESTADISTICA. OBJETIVOS

Laboratorio de Arquitectura de Redes. Datos en lenguaje C

Informática PRÀCTICA 3 Curs Práctica Nº 3: Tipos de datos simples. Constantes y variables. Operadores aritméticos. Formato de salida.

LEY DE LOS SIGNOS, TEORÍA DE AGRUPAMIENTO Y ORDEN DE OPERACIONES

Programación estructurada (Tipos, operadores y expresiones)

Expresiones Aritméticas. Programación digital I Escuela de Sistemas Facultad de Ingeniería Gilberto Diaz

Cédula : Nombre : 2.- Qué es un algoritmo? Describa tres (3) propiedades o características de un algoritmo [2] Respuesta:

Teoría de Autómatas y Compiladores [ICI-445] Capítulo 2: Autómatas Finitos

GENERACIÓN DE CÓDIGO ORIENTADO A OBJETOS

1. Computadores y programación

INTRODUCCIóN A LA PROGRAMACIóN APUNTES DE JAVA APUNTES DE JAVA

Curso de Programación Avanzada en C

Informática General 2016 Cátedra: Valeria Drelichman, Pedro Paleo, Leonardo Nadel, Norma Morales

Carlos Montenegro. Programación Orientada a Objetos Proyecto Curricular de Ingeniería de Sistemas

Desde los programas más simples escritos en un lenguaje de programación suelen realizar tres tareas en forma secuencial.

2^10 2^9 2^8 2^7 2^6 2^5 2^4 2^3 2^2 2^1 2^0 SUMA

4. Operadores Operador asignación

Computación II. Introducción a Visual Basic

Operadores. Javier Fernández Rivera -

Programación en C. Algoritmo y Estructura de Datos. Ing. M. Laura López. Programación en C

Las expresiones son combinaciones de constantes, variables, símbolos de operación, paréntesis y nombres de funciones especiales.

Cómo escribir algoritmos?

Conocimientos previos

Introducción a la Programación

GUÍA DE TRABAJO N 1 C# Ing. Néstor Raúl Suarez Perpiñan Página 1 de 13

Contenido. Introducción a los Computadores Conceptos básicos. Sistema de numeración CNM-130

Un algoritmo es una serie de pasos lógicos y organizados que describe el proceso que se debe seguir, para dar solución a un problema específico.

TEMA 1: FUNDAMENTOS DE LA INFORMÁTICA

Programación 1 Tema 3. Información, datos, operaciones y expresiones

Métodos para escribir algoritmos: Diagramas de Flujo y pseudocódigo

FIN EDUCATIVO FIN INSTRUCTIVO

Tema 1: Introducción a C

PROGRAMACION ESTRUCTURADA: Tema 1. El lenguaje de programación C

Universidad Autónoma de Sinaloa Facultad de Informática Culiacán Maestría en Ciencias de la Información

5. ESTRUCTURAS DE REPETICIÓN

UNIDAD DE APRENDIZAJE I

COMPETENCIA S Y OBJETIVOS DE M A T E M ÁTICAS DE SEXTO

EXAMEN DE PENDIENTES PRIMER PARCIAL MATEMÁTICAS DE 1º DE ESO

Sistemas Numéricos. Introducción n a los Sistemas Lógicos y Digitales 2009

abril de 2017 Desarrollo de aplicaciones en Java Tipos de datos primitivos Tipos de datos Elementos de aplicaciones simples


Todo programa en 'C' consta de una o más funciones, una de las cuales se llama main.

LABORATORIO #1 INTRODUCCIÓN AL LENGUAJE DE PROGRAMACIÓN C++

Titulo de hoy 25/09/2017 COLEGIO SAN ANTONIO MARIA CLARET 1

Componentes Básicos. InCo. InCo Componentes Básicos 1 / 28

APUNTES DE CATEDRA: SISTEMAS DE NUMERACION - REPRESENTACION INTERNA DE NUMEROS Y CARACTERES

Temas. Objetivo. Que el estudiante logre: 1) Identificar conceptos constructivos de la Teoría de la Computabilidad. 2) Definir autómatas de pila.

ALGORÍTMICA. Dpto. Ingeniería de Sistemas y Automática Facultad de Ciencias Universidad de Valladolid.

UNIDAD 1: NÚMEROS NATURALES OBJETIVOS

INTRODUCCION A LA PROGRAMACION (C.U.) PROGRAMACION (T.I.G.)

ESCUELA PREPARATORIA OFICIAL NO.16 MATERÍA: PENSAMIENTO NUMÉRICO Y ALGEBRAICO I

Álgebra y Matemática Discreta

Programación en java. Estructuras algorítmicas

Operadores y reglas de precedencia

Máquinas de Turing, recordatorio y problemas

Máquinas de Turing, programas y tesis de Turing-Church

Diagrama de una computadora. Unidad Central de procesamiento (CPU)

Titulación: Grado en Ingeniería Informática Asignatura: Fundamentos de Computadores

Es toda la información que utiliza el computador. Según sea la información que guardemos en los datos, se clasifican en los siguientes tipos:

Transcripción:

Maquina de Turing 5. Fundamentos de algoritmos MI Elizabeth Fonseca Chávez matemático inglés Alan Turing Turing Definición de algoritmo: conjunto ordenado de operaciones que permite hallar la solución de un problema. Definición 2: Un procedimiento con un numero finito de pasos, cada uno de estos preciso y suficientemente simple, y cuya ejecución (la del procedimiento) siempre termina. La Máquina 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 leer y escribir un alfabeto de símbolos finito a partir de una cantidad finita pero muy grande de cinta de papel, sino de modificar su propia configuración o "estado mental". La máquina de Turing se convirtió en un instrumento ideal para probar si un procedimiento es efectivamente computable o no. Turing empleó su maquina y definió un algoritmo como cualquier conjunto de instrucciones para su máquina simple TURING Funcionamiento Una máquina de Turing es un dispositivo que transforma un INPUT en un OUTPUT después de algunos pasos. Consiste en una cabeza de lectura/escritura que examina una dimensión posiblemente infinita de una cinta bidireccional dividida en cuadros cada uno de los cuales está identificado con un 0 o un 1. Para llevar a cabo algún algoritmo, la máquina se inicializa en algún estado interno arbitrario. A continuación, se pone en marcha, la máquina lee el bit que se encuentra en ese momento en su interior y ejecuta alguna operación con ese bit (lo cambia o no, dependiendo de su estado interno). Después se mueve hacia la derecha o hacia la izquierda, y vuelve a procesar el siguiente bit de la misma manera. Al final se para, dejando el resultado al lado izquierdo. Dos elementos básicos: un control finito y una cinta infinita. TURING Cualquier función que pueda ser considerada de "modo natural" como computable puede ser computada por una máquina universal de Turing. Si bien la conjetura no ha podido ser demostrada, hasta el momento ha resistido todos los intentos de encontrar un contraejemplo. 1

Turing Funcionamiento de Maquina de Turing Computabilidad Una de las cuestiones mas estudiadas en la teoría de la computabilidadha sido la posibilidad de construir algoritmos que nos determinen si un determinado algoritmo posee o no una determinada propiedad. El identificar los problemas que son computables y los que no lo son tiene un considerable interés, pues indica el alcance y los límites de la computabilidad, y así demuestra los límites teóricos de los ordenadores. Todas las operaciones aritméticas son algoritmos (sumar, multiplicar, raíces cuadradas, elevar a una potencia ). Todas consisten en realizar un pequeño número de instrucciones que se repetirán cuantas veces sean necesarias para llegar a una conclusión. Entonces, un algoritmo se podría definir como un conjunto de instrucciones para realizar una tarea con las siguientes características: 1) Precisión: un algoritmo ha de estar definido con suficiente precisión para no albergar dudas sobre qué paso seguir. 2) Simplicidad: las reglas son sencillas. Cuando se trata de algoritmo, en apariencia sencillo, se puede descomponer en algoritmos más elementales. El de Euclides, por ejemplo, se puede descomponer en divisiones y agrupamientos divisor-resto. 3) Finitud: el número de reglas ha de ser finito mientras que el número de operaciones que pueden realizarse debe ser infinito. 4) Carácter mecánico: es un procedimiento mecánico, automático. Un algoritmo no requiere ninguna agudeza mental ni ingenio creativo, es algo que cualquier persona puede hacer con sólo tener la capacidad de seguir y obedecer reglas. 5) Procedimiento general: los algoritmos están orientados a la solución de problemas, pero no tendría mucho sentido diseñar uno para solucionar un único problema particular (imaginemos crear un algoritmo para multiplicar 45 por 678 y nada más). Está en la naturaleza del algoritmo ser un mecanismo lo más sencillo y económico posible para realizar correctamente muchas tareas. Sin embargo, como la dificultad para realizar muchas tareas diferentes por un mismo algoritmo es mucha, se los suele utilizar para resolver un tipo de problemas. Así, el algoritmo de Euclides soluciona todos los casos posibles del problema de encontrar el máximo común divisor. Tipos de Datos DATOS DATOS NUMERICOS: 128 1528-714 REALES 7.5 128.0-37.865 129.7 17000.50 DATOS ALFANUMERICOS: a, 5, ( apostrofes. CARÁCTER ABC Z, DIGITOS 0-9, SIMBOLOS ESPECIALES:! $%&, ETC.(no sirve para operaciones aritmeticas). Cadena de caracteres hola Patricio DATOS LOGICOS: booleanos 0, 1, verdad(true), falso(false). 2

Tipos de datos en C, C++, J Enteros: short, int, long y long long. 1-8 bytes inta; unsigned inta; signed long a; signed long a = 10000000; Reales:float4 bytes y el double8 bytes Reales de 4 bytes, se utiliza 1 bit para el signo, 8 bits para el exponente y 23 bits para el valor del número. floatb= 54.5; Caracteres: char1 byte entero de 0 a 255 chara; chara = 's'; chara = 48; Identificadores, const., var. Id: Identificadores, nombres de celdas de memoria que permite diferenciar una de otra. Reglas: Primer carácter debe ser letra, los demás pueden contener letras y números y _. Longitud<8 caracteres o 7. Constantes: Datos que no cambian durante la ejecución de un programa, nombre Id pero no de comandos. Variables: Objetos que pueden cambiar su valor Registros de Memoria Operaciones Izquierda a derecha. Paréntesis prioridad. 1-multiplicacion, 2-division 3 sumas/restas Contiene identificadores, constantes y variables Operaciones Op. con paréntesis 3

Dividir un problema grande en problemas pequeños. Seudocódigo Casi código. No representa a ningún lenguaje. Escribes en formato general que proceso tiene prioridad con respecto a otro colocando el numero de pasos. Ej. Llanta ponchada. Sol. Poner otra llanta. 1) checar que tenemos llanta de refacción 2) quitar tornillos 3) poner gato y elevar llanta 4) desmontar llanta ponchada 5) montar llanta de refacción 6) asegurar tornillo 4

Planteamiento de un problema Descubrir cual el problema o los problemas contenidos. Divide y vencerás. 1) primero escribo todo sobre el tema: Lluvia de ideas. 2) ordeno ideas interesantes y descarto las poco posibles 3) agrupo ideas en varios grupos (o procesos) 4) asigno prioridad a cada grupo (o procesos) 5) designo que procesos son comparación y repetición Convertir de base 2 a base 10, un numero de dos bits Ej1. Convertir de base 2 a base 10, un numero de dos bits. Lluvia de ideas Numero de dos bits binario:00 01 10 11b (opc2) De base 2 a base 10, n1*2^0+ n2*2^1 (opc1) Divido entre la base X para convertir a base 2 Base 10: 0,1,2,3,4,5,6,7,8,9 Etc. Convertir de base 2 a base 10, un numero de dos bits Seudocódigo 1. Dado dos bits n2 n1 en binario 2. En binario pueden ser 00,01,10 ó 11 3. La forma de convertirlos es n1*2^0+ n2*2^1 4. Por ejemplo: 01= n1=0, n2=1=>0*2^0+ 1*2^1 5. Sumo los resultados parciales: 0+1 (2^1=1) 6. Imprimo mi resultado en mis notas: base10=1 7. Pruebo que funcione para las opciones posibles. Realiza en casa Ejercicio: Convertir de base 10 a base 2 un numero de dos bits Ejercicio: Convertir de base 2 a base N no 10. 5

Diagramas de Flujo. BASICO Diagramas de Flujo de procesos Algoritmo Estructurado Buscar en tu problema los procesos que se ajustan a cada bloque: Secuencia, Selección y Repetición. Analizando los procesos Básicos 6