ClubEnsayos.com - Ensayos de Calidad, Tareas y Monografias
Buscar

Algoritmos


Enviado por   •  17 de Septiembre de 2013  •  2.041 Palabras (9 Páginas)  •  279 Visitas

Página 1 de 9

La computabilidad y concepto de algoritmo: máquina de Turing

La palabra "algoritmo" proviene del gran matemático árabe Mohamed Al Kho Warizmi, quien escribió entre los años 800 y 825 la obra Quitab Al Jabr Al Muga bala, donde se recogía el sistema de numeración hindú y el concepto del cero, alcanzó gran reputación por el enunciado de las reglas paso a paso para sumar, restar, multiplicar y dividir números decimales; la traducción al latín del apellido en la palabra algorismus derivó posteriormente en algoritmo. Según, Brassard y Bratley (2000), algoritmo, “es sencillamente un conjunto de reglas para efectuar algún cálculo, bien sea a mano o, más frecuentemente, en una máquina”, según Joyanes (2003), “es un método para resolver problemas” y según Torre alba (2004), “Un algoritmo es una descripción de los pasos básicos a seguir para cumplir determinada tarea, Para que una computadora realice una tarea es necesario definir previamente un algoritmo”.

Toda actividad que realiza el ser humano, responde a un algoritmo, existen dos tipos, los que se realizan para ser ejecutados por una computadora, llamados algoritmos computacionales, y los que son ejecutados por el ser humano, algoritmos no computacionales, como el ejemplo de la compra de boletos del cine.

Cuando un algoritmo deba ser ejecutado por una computadora, se necesita expresar el algoritmo en instrucciones comprensibles por la computadora; para esto último, se utilizan los lenguajes de programación.

Al algoritmo expresado en un determinado lenguaje de programación, se le denomina programa. Esto indica que de un determinado problema o situación dada, se elabora un algoritmo con los pasos necesarios para su solución, y si se requiere sea ejecutado por un computador, se traduce el algoritmo a instrucciones editadas en un lenguaje de programación.

Definíamos algoritmo como un conjunto de pasos conducentes a resolver un problema, cada uno de esos pasos, corresponde a lo que se denomina en el programa, una instrucción, aunque pudiera darse que, en una instrucción se junten dos o más pasos. Aprender a realizar un algoritmo se fundamenta en lo que se persigue lograr con su desarrollo; debido a que no existe un método único para resolver problemas se estudian diferentes métodos de resolución o modelos de construcción para lograr la generación del resultado deseado.

Algoritmo: un conjunto de instrucciones o pasos en los que se describe su inicio, desarrollo o proceso y salida o resultado del algoritmo; elaborados para lograr resolver un problema. Dado que un algoritmo es un conjunto de instrucciones elaboradas con la finalidad de resolver un problema, a continuación se describen los elementos que se utilizan en la construcción de una instrucción.

Máquina de Turing:

Es un dispositivo de reconocimientos de lenguaje, es más general que cualquier autómata finito y cualquier autómata de pila, debido a que ellas pueden reconocer tanto los lenguajes regulares, como los lenguajes independientes de contexto y además muchos otros tipos de lenguajes.

La máquina de Turing (abreviado MT) tiene, un control finito, una cabeza lectora y una cinta donde puede haber caracteres, y donde eventualmente viene la palabra de entrada. La cinta es de longitud infinita hacia la derecha, hacia donde se extiende indefinidamente, llenándose los espacios con el carácter blanco (que representaremos con “t”). La cinta no es infinita hacia la izquierda, por lo que hay un cuadro de la cinta que es el extremo izquierdo, la MT la cabeza lectora es de lectura y escritura, por lo que la cinta puede ser modificada en curso de ejecución. Además, en la MT la cabeza se mueve bidireccionalmente (izquierda y derecha), por lo que puede pasar repetidas veces sobre un mismo segmento de la cinta.

Este modelo está conformado por un alfabeto de entrada y uno de salida, un símbolo especial llamado blanco (normalmente b, Δ o 0), un conjunto de estados finitos y un conjunto de transiciones entre dichos estados. Su funcionamiento se basa en una función de transición, que recibe un estado inicial y una cadena de caracteres (la cinta, la cual es finita por la izquierda) pertenecientes al alfabeto de entrada. Luego va leyendo una celda de la cinta, borrando el símbolo, escribir el nuevo símbolo perteneciente al alfabeto de salida y finalmente avanza a la izquierda o a la derecha (solo una celda a la vez), repitiendo esto según se indique en la función de transición, para finalmente detenerse en un estado final o de aceptación, representando así la salida.

Una máquina de Turing es un dispositivo que transforma un INPUT en un OUTPUT después de algunos pasos. Tanto el INPUT como el OUPUT constan de números en código binario (ceros y unos). En su versión original la máquina de Turing consiste en una cinta infinitamente larga con unos y ceros que pasa a través de una caja. La caja es tan fina que solo el trozo de cinta que ocupa un bit (0 ó 1) está en su interior. La máquina tiene una serie de estados internos finitos que también se pueden numerar en binario.

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 y 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 por ejemplo.

Una instrucción típica podría ser: 0111011i

La traducción es como sigue: si la máquina se encuentra en el estado interno 0 y lee 1 en la cinta, entonces pasará al estado interno 1101 (13), escribirá 1 y se moverá hacia la izquierda un paso (la cinta se moverá hacia la derecha).

A continuación es conveniente inventar una notación para la secuencia del INPUT. Esta notación se llama notación binaria expandida. Consiste en cambiar la secuencia original binaria por otra construida de la siguiente forma: el 0 se cambia por 0 y el 1 por 10 y se ponen un cero a la izquierda y/o a la derecha del resultado si empieza o acaba en 1 respectivamente. Así por ejemplo, el número 13 que en binario es 1101 es en binario expandido 1010010 con un cero delante por esta última regla 01010010. Para volver al original hay que contraer el binario expandido con la siguiente regla:

Empezamos a leer por la izquierda el binario expandido. Cuando encontremos un 0 tomamos nota de cuántos 1 hay hasta llegar al siguiente 0 y lo escribimos. Si encontramos que hay dos 0 seguidos, apuntaríamos

...

Descargar como (para miembros actualizados)  txt (12.5 Kb)  
Leer 8 páginas más »
Disponible sólo en Clubensayos.com