Page 178 - INTRODUCCIÓN AL ANÁLISIS DE ALGORITMOS
P. 178

INTRODUCCIÓN AL ANÁLISIS  DE ALGORITMOS


                  tesis de computabilidad secuencial

                  En la tabla 1.4 se describió la diferencia entre algoritmos que utilizaban cantidades polinomiales (n )
                                                                                                               c
                  y exponencial (c ). Los algoritmos polinomiales tienden a ser factibles para tamaños razonables de
                                 n
                  datos de entrada. Los algoritmos exponenciales tienden a exceder los recursos disponibles aun
                  tratándose de cantidades pequeñas de datos de entrada. Uno de los objetivos de la teoría de com-
                  plejidad es mejorar esta clasificación de los algoritmos y, por ende, la comprensión de la diferencia
                  entre problemas factibles y no factibles.

                  Si un algoritmo se construye tomando dos algoritmos factibles y colocándolos en forma secuencial
                  uno después del otro, el algoritmo así construido debe ser factible. De manera semejante, si algún
                  algoritmo factible se reemplaza por una llamada a un módulo que representa a un segundo algoritmo
                  factible, el nuevo algoritmo combinado también debe ser factible. Esta propiedad de cerradura en
                  realidad se cumple para algoritmos de tiempo polinomial.
                  Cualquier algoritmo que se ejecuta en tiempo polinomial en una computadora puede correr en tiem-
                  po polinomial en cualquier otra. De ahí que tenga sentido hablar de algoritmos de tiempo polinomial
                  en forma independiente de cualquier computadora específica. Una teoría de algoritmos factibles
                  basada en el tiempo polinomial es independiente de la máquina.

                  La creencia de que todas las computadoras secuenciales razonables que se llegan a crear tienen
                  tiempos de ejecución relacionados polinomialmente recibe el nombre de tesis de computación se-
                  cuencial. Esta puede compararse con la tesis de Curch-Turing. Es una versión más fuerte de esta,
                  pues afirma no solo que todos los problemas computables son los mismos para todas las computa-
                  doras, sino también que todos los problemas computables factibles son los mismos para todas las
                  computadoras.




                  problemas Np
                  Esta sección contiene lo que tal vez fue el desarrollo más importante en investigación de algoritmos
                  en la década de 1970, no solo en ciencias de la computación, sino también en ingeniería eléctrica,
                  en investigación de operaciones y en otras áreas relacionadas.

                  Una idea importante es la distinción entre un grupo de problemas cuya solución se obtiene en tiempo
                  polinomial y un segundo grupo de problemas cuya solución no se obtiene en tiempo polinomial.




                  Definición formal de NP
                  Un problema de decisión £ está en NP si y solo si existe un polinomio P y una máquina de Turing M ,
                                                                                                               u
                  tales que para toda cadena posible de entrada X de longitud n, existe una cadena u cuya longitud es
                  como máximo p(n) y M (x) = 1, es decir, la máquina de Turing definida por u verifica afirmativamente
                                        u
                  el problema £. Esta cadena u se conoce como el certificado de £. En términos más profanos, u es el
                  programa que verifica afirmativamente a £ (Areán Álvarez, 2014).



                                                              172
   173   174   175   176   177   178   179   180   181   182   183