Page 17 - Revista FIUDE 2014
P. 17

Un ejemplo de problema no computable es el de determinar si un enunciado matemático es verdadero
          o falso.
          Esta tarea parecería algo natural y sencillo de resolver para una computadora que cuenta con un juego
          de instrucciones para realizar operaciones aritméticas y lógicas.
          Sin embargo, ningún algoritmo computacional puede resolver este problema y por lo tanto la demostración
          de si un enunciado matemático es verdadero o falso es una tarea que continúa reservada a los seres
          humanos.

          Las Teorías de la Complejidad y Computabilidad están muy relacionadas entre sí.
          En la Teoría de la Complejidad el objetivo es clasificar un problema como fácil o difícil, mientras que
          en la Teoría de la Computabilidad el objetivo es determinar cuándo un problema es resoluble por un
          computador o no.


          Introducción a la Teoría de Autómatas
          La Teoría de Autómatas trata de la definición y propiedades de distintos modelos matemáticos de un
          computador.
          Estos modelos se utilizan tanto de forma teórica como práctica en diversas áreas de la computación.

          Un modelo llamado Autómata Finito se utiliza para el procesamiento y reconocimiento de texto y diseño
          de hardware.

          Otro modelo más complejo que el anterior llamado Gramática Independiente de Contexto se utiliza para
          el diseño de compiladores de lenguajes e inteligencia artificial.

          Otro modelo aún más complejo conocido como Máquina de Turing permite realizar reconocimiento de
          patrones de texto más complejos y dar un modelo simplificado de un computador.

          Mediante  Máquinas  de  Turing  se  puede  simular  la  lógica  de  cualquier  algoritmo  realizable  por  un
          computador y entender aún más la frontera entre qué problemas son computables y cuáles son no
          computables.

          Entre los distintos tipos de autómatas se pueden encontrar a los Autómatas Finitos, a los Autómatas de
          Pila y a las Máquinas de Turing, entre otros.

          Para dejar entrever la diferencia entre estos distintos autómatas se necesita definir algunos conceptos
          tales como alfabeto, cadena y lenguaje.

          Un alfabeto es un conjunto no vacío de símbolos, por ejemplo:
          ∑  = {a,b,c} es un alfabeto compuesto por tres símbolos: a, b y c.
           1
          ∑  = {0,1} es un alfabeto compuesto por dos símbolos: 0 y 1.
           2
          ∑  = {a,b} es un alfabeto compuesto por dos símbolos: a y b.
           3
          ∑  = {0, 1, #} es un alfabeto compuesto por tres símbolos: 0, 1 y #.
           4
          Una cadena es una secuencia (que puede ser vacía) de símbolos de un alfabeto determinado.
          abcbca es una cadena de longitud 6 formada con símbolos del alfabeto ∑
                                                                          1
          01110101 es otra cadena (de longitud 8) formada con símbolos del alfabeto ∑
                                                                               2
          Para reconocer la cadena vacía, aquella cadena que no tiene símbolos (o que tiene cero símbolos) se
          suele utilizar una letra griega determinada (como por ejemplo λ).
          Un lenguaje es un conjunto de cadenas de un mismo alfabeto.

          L  = { ab, bc, cba } es un lenguaje formado por
          1
          tres cadenas cuyo alfabeto es ∑ .
                                     1



               Revista de la Facultad de Ingeniería
   12   13   14   15   16   17   18   19   20   21   22