SciELO - Scientific Electronic Library Online

 
vol.8 número1Los Microprocesadores, Evolución y FuturoMáquinas de Estado Finito índice de autoresíndice de materiabúsqueda de artículos
Home Pagelista alfabética de revistas  

Servicios Personalizados

Articulo

Indicadores

    Links relacionados

    • No hay articulos citadosCitado por SciELO
    • No hay articulos similaresSimilares en SciELO

    Bookmark

    Revista de Investigación Estudiantil Iluminate

    versión impresa ISSN 2415-2323

    Rev. Inv. Est. I. v.8 n.1 La Paz nov. 2016

     

    REPORTE DE CASO

     

    Máquinas de Turing y sus aplicaciones

     

    Turing Machines and their applications

     

     

    Cristian Fernando Vilca Gutierrez
    crisfer.4217@gmail.com

    Carrera de Ingeniería de Sistemas -Universidad La Salle
    Artículo Recibido: 02-09-2016; Artículo Aceptado: 24-10-2016

     

     


    Resumen

    En el presente artículo se sintetizaran conceptos básicos a cerca de la Máquina de Turing: componentes de la máquina, funcionamiento y aplicaciones. El trabajo realizado es netamente de investigación y compilación de conceptos de diferentes bibliografías. Se hará énfasis sobre todo en el funcionamiento de la máquina y como esta puede comprenderse mejor con Teoría de Autómatas y Lenguajes Formales, finalmente se mencionaran algunas de sus aplicaciones más importantes en la actualidad.

    Palabras claves Alfabeto, Autómata, Computadora, Formal, Lenguaje, Transición.


    Abstract

    In this article were synthesized basics about Turing Machine: machine components, operation and applications.The work is purely research and compilation of concepts of different bibliographies. focus mainly on the operation of the machine will be made and how it can be better understood with Automata Theory and Formal Languages, finally mention some of its most important applications today.

    Keywords Alphabet, Automaton, Computer, Formal, Language, Transition.


     

     

    Introducción

    Según Jurado Málaga Elena: La Máquina de Turing (MT) fue introducida por Alan M. Turing en 1936, y puede considerarse como un modelo abstracto que formaliza la idea Intuitiva de algoritmo. Es un modelo matemático para representar a una maquina teórica. A pesar de su simplicidad tiene el mismo poder computacional de una computadora de propósito general. La Máquina de Turing, es interesante, sobre todo, por el conjunto de lenguajes que permite reconocer y también generar (lenguajes recursivamente numerables) y por el conjunto de funciones que puede computar (funciones calculables). (2008, pag. 107)

    Su inventor, Alan M. Turing sostiene que la maquina no fue diseñada como una tecnología de computación práctica, sino como un dispositivo hipotético que representa una máquina de computación.
    Se caracteriza por ser un dispositivo que manipula símbolos sobre una tira de cinta de acuerdo a ciertas reglas.
    Se puede afirmar que las Maquinas de Turing son una buena formalización del concepto de algoritmo por:

    Cada programa de una máquina de Turing puede ser implementado. Todos los algoritmos conocidos han podido ser implementados en una

     

    Maquina de Turing.

    Tesis de Crurch: ALGORITMO = MAQUINA DE TURING

    En resumen, una Maquina de Turing es un modelo matemático que consiste en un autómata capaz de implementar cualquier problema matemático expresado por medio de un algoritmo.

    Referentes conceptuales.

    Definición formal

    Formalmente una Maquina de Turing puede definirse como una sex-tupla:M= (ɼ, β, Q, δ, s, h)

    Donde:

    ɼ : es el alfabeto de la cinta.

    β: es el símbolo en blanco de la cinta

    Q: conjunto de estados de la máquina.

    δ: es la función de transición.

    s: es el estado inicial de la máquina.

    h: es el estado final de la máquina.

    Según JURADO MÁLAGA Elena : Se dice que una Máquina de Turing (M) acepta una cadena de entrada w є ɼ* , si partiendo del estado inicial s y en la cinta se encuentra la cadena w seguida de blancos (β), la Máquina M procesa la cadena y termina en el estado de parada (h).

    Se define el lenguaje aceptado por una Máquina de Turing L (M), como el conjunto de todas las cadenas w aceptadas por la máquina.
    Los lenguajes aceptados por las Máquinas deTuring se denominan recursivamente enumerarles.
    El valor computado por una Máquina de Turing para una entrada w se define como el contenido de la cinta cuando la máquina alcanza el estado de parada.

    Puesto que pueden existir entradas w para que la Máquina de Turing no alcance nunca un estado final, la función computada por una Máquina de Turing es una función parcial.

     

    Funcionamiento

    La Máquina deTuring está formada por una unidad de control que puede describirse mediante un autómata finito, una cinta de lectura y escritura, que tiene un comienzo a la izquierda y se extiende indefinidamente a la derecha, y un cabezal, que indica la posición de la cinta sobre la que trabaja la máquina en cada paso.

    Inicialmente la cinta contiene la cadena de entrada de la máquina (w) seguida de celdas en blanco ( β),

    En cada paso la maquina lee el contenido de la celda sobre la que se encuentra el cabezal, realiza un cambio de estado de la unidad de control, y escribe un dato sobre la celda o mueve el cabezal de izquierda a derecha. La máquina termina al alcanzar un estado especial llamado estado de parada (halt).

    La Máquina deTuring puede considerarse como un autómata capaz de reconocer lenguajes formales. En este sentido es capaz de reconocer los lenguajes recursivamente enumerarles. Dada una cadena w, la máquina puede decir si pertenece al lenguaje o no, generando la salida adecuada. Se dice que el lenguaje es decidible si se puede construir una Máquina deTuring que alcance siempre el estado final y reconozca el lenguaje.

     

    Tipos de Máquina de Turing

    Existen varios tipos de Máquinas de Turing, (Jurado Málaga Elena, 2008) todas caracterizadas por tener un comportamiento similar, entre ellas están:

    Máquina de Turing con cinta infinita a ambos lados

    Esta modificación de denota al igual que una Máquina deTuring sencilla, lo que la hace diferente es que la cinta es infinita tanto por la derecha como por la izquierda.

    Máquina de Turing con Cinta Multiplista

    Es aquella mediante la cual cada celda de la cinta de una maquina sencilla se divide en subceldas. Cada celda es capaz de contener carios símbolos de la cinta. Se dice que la cinta tiene múltiples pistas porque cada celda de esta Máquina de Turing contiene múltiples caracteres, el contenido de las celdas de la cinta puede ser representado mediante n-tuplas ordenadas. Los movimientos que realice esta máquina dependerán de su estado actual y de la n-tupla que represente el contenido de la celda actual. Debe mencionar que posee un solo cabezal al igual que una Máquina de Turing sencilla.

    Máquina de Turing Multicinta

    Las Máquinas de Turing con más de una cinta consisten en un control finito con k cabezales lectores/escritores y k cintas. Cada cinta es finita en ambos sentidos. La Máquina de Turing Multicinta define su movimiento dependiendo del símbolo que está leyendo cada uno de sus cabezales, las reglas de sustitución para cada uno de los símbolos y dirección de movimiento para cada uno de los cabezales. Inicialmente empieza con la entrada en la primera cinta y el resto de las cintas en blanco.

    Máquinas de Turing Multidimensional

    Una Máquina de Turing multidimensional es aquella cuya cinta se extiende infinitamente en más de una dirección, ejemplo más básico sería el de una maquina bidimensional cuya cinta se extendería infinitamente hacia arriba, abajo, izquierda o derecha.

    Máquinas de Turing No Deterministas

    Es una Máquina de Turing en la que pueden existir varias transiciones a partir del mismo estado y lectura del cabezal. Esto significa que dado un estado y un símbolo de entrada, es posible elegir la transición a efectuar entre varias operaciones. Una Máquina de Turing No Determinista se puede modelar como una Máquina de Turing con una entrada adicional que permite seleccionar la transición a efectuar entre las varias posibilidades a cada paso.

    Se pueden reescribir las transiciones añadiendo nuevos estados de manera que en cada caso la elección se efectué solo entre dos opciones, con lo que el selector podría ser una señal de un bit.

    Todo lenguaje aceptado por una Máquina de Turing No Determinista puede ser aceptado por una Maquina de Turing Determinista.

    Máquina de Turing Universal

    Es una Máquina de Turing capaz de simular el comportamiento de cualquier Maquina de Turing sobre cualquier cadena de entrada.
    Para poder construir una Máquina de Turing Universal es necesario definir una codificación de las Máquinas de Turing, de manera que se pueda controlar a la maquina por medio de su código.

     

    Aplicaciones:

    Según Jhon E. Hopcroft et all (2006), la Máquina de Turing puede ser aplicada de diferentes maneras, como por ejemplo:

    Teoría de la Computación

    Es una rama de las matemáticas y de las ciencias de la computación que centra su interés en las limitaciones y capacidades fundamentales de las computadoras. Específicamente esta teoría busca modelos matemáticos que formalizan el concepto de hacer un cómputo y la clasificación de problemas de acuerdo a su grado de complejidad.

    Alan Turing demostró con su Máquina que existen problemas imposibles de ser resueltos algorítmicamente, siendo el Problema de la Parada el más importante. Para estos problemas no existe ni existirá ningún algoritmo que los pueda resolver, no importando la cantidad de tiempo o memoria se disponga en una computadora. Asimismo, con la llegada de las computadoras modernas se constató que algunos problemas resolubles en teoría eran imposibles en la práctica, puesto que dichas soluciones necesitaban cantidades irrealistas de tiempo o memoria para poderse encontrar

    Problema De La Parada

    El problema de la parada o problema de la detención para máquinas de Turing consiste en: dada una MT M y una palabra w, determinar si M terminará en un número finito de pasos cuando se ejecuta usando w como entrada.
    Alan Turing demostró que este problema es indecidible, ninguna máquina de Turing lo puede resolver.

    Maquinas Oráculo

    La máquina con oráculo, es una Máquina de Turing equipada con un oráculo que es capaz de contestar preguntas sobre la pertenencia a un conjunto específico de números naturales.
    Una máquina oráculo con el "conjunto parada" en su oráculo puede computar la función del problema de la parada. Mientras este sería un ejemplo trivial del uso del conjunto oráculo, muchas otras funciones de interés pueden ser computadas utilizando el oráculo de la función de la parada. De hecho, esto permite que todas las funciones recursivamente enumerables sean computables.

    Máquinas de Turing como generadoras de Lenguajes Si pueden reconocer lenguajes, también son capaces de generarlos

    Hipótesis de Church-Turing

    "Cualquier computación que pueda ser realizada por medios mecánicos puede ser realizada por una Máquina de Turing."
    No es una afirmación que pueda ser probada, sino más bien una definición o explicación del concepto de algoritmo. Parece ser una definición adecuada:

    Otros formalismos propuestos de dicho concepto (funciones recursivas, sistemas de Prost, sistemas de reescritura, etc.) no son más expresivos que las Maquinas de Turing.
    Nadie ha sugerido ningún problema que pueda ser resuelto por lo que intuitivamente se considera un algoritmo, y que no pueda ser implementado en una Máquina de Turing.

     

    Métodos.

    El método que se utilizó para este artículo fue meramente investigativo, se consultaron bibliografías y se realizó una compilación de ambas.
    Una Máquina de Turing está compuesta por los siguientes componentes:

    Una Cinta, se divide en celdas una al lado de la otra. Cada celta tiene un símbolo de un alfabeto finito. El alfabeto contiene un símbolo especial llamado "blanco" representado por la letra griega El. La cinta es extensible tanto a la derecha como a la izquierda, es decir la máquina suministrará cuanta cinta sea necesaria para su cómputo. Las celdas que no se hayan llenado previamente, se asume que están con el símbolo blanco.

    Un Cabezal, encargado de escribir símbolos en la cinta y mover la cinta a la izquierda o a la derecha (siempre una celda a la vez).
    Un Registro de Estado, encargada de almacenar el estado de la máquina. Existe un estado inicial en el que cada registro de estado se inicia.

     

    Resultados y discusión

    Una Máquina de Turing puede simular la lógica de cualquier algoritmo de computador y es muy útil para explicar el funcionamiento del mismo También es posible que una Máquina de Turing simule a otra Máquina de Turing (MT Universal)
    Es un reconocedor de lenguaje más general que cualquier autómata finito o autómata de pila debido a que puede reconocer lenguajes regular como también lenguajes libres de contexto.

     

    Conclusiones:

    Las Máquinas de Turing son muy importantes para comprender de una manera más detallada los Autómatas y los Lenguajes Formales, es muy peculiar comparar una Maquina de Turing con cualquier algoritmo por su similitud. Es importante resaltar el genio del Sr. Turing al poder haber desarrollado una Máquina tan compleja y con tantas aplicaciones prácticas que perduran en la actualidad, con componentes sencillos y una lógica sensacional logro convertirse un uno de los padres de la computación y la informática.

    "Un hombre provisto de papel, lápiz y goma, y con sujeción a una disciplina estricta, es en efecto una máquina de Turing universal."

    Alan Turing

     

    Referencias.

    ELENA JURADO Malaga. Teoría de Autómatas y Lenguajes Formales Maquinas de Turing, Modelos Avanzados de Computacion Universidad de Huelva- España        [ Links ]

    JHON E. HOPCROFT - RAJEEV MOTWANI - JEFFREY D. ULLMAN. Teoría de Autómatas y Lenguajes de Computación Teoría de Autómatas y Lenguajes Formales. Universidad Rey Juan Carlos        [ Links ]