Actualmente estoy leyendo un libro sobre algoritmos y complejidad. En este momento, estoy leyendo sobre funciones computables y no computables, y mi libro dice que hay muchas más funciones que no son computables que computables, de hecho, la mayoría no son computables, dice. En cierto sentido, puedo aceptar eso intuitivamente, pero el libro no proporciona una prueba formal ni elabora mucho sobre el tema.
Solo quería ver una prueba / dejar que alguien aquí lo explique / entienda más estrictamente por qué hay tantas más funciones no computables que computables.
Respuestas:
El son numerable muchas funciones computables:
Cada función computable tiene al menos un algoritmo. Cada algoritmo tiene una descripción finita usando símbolos de un conjunto finito, por ejemplo, cadenas binarias finitas usando símbolos{0,1} . El número de cadenas binarias finitas denotadas por {0,1}∗ es contable (es decir, el mismo número de números naturales N ).
Por lo tanto, puede haber como máximo muchas funciones computables. Hay al menos muchas funciones computables contables ya que para cada , la función constante f ( x ) = c es computable.c∈{0,1}∗ f(x)=c
En otras palabras, hay una correspondencia entre:
Por otro lado, hay innumerables funciones sobre las cadenas (o números naturales). Una función (o f : { 0 , 1 } ∗ → { 0 , 1 } ∗ ) asigna un valor para cada entrada. Cada uno de estos valores se puede elegir independientemente de los demás. Entonces hay N N = 2 N posible función. El número de funciones sobre números naturales es igual al número de números reales.f:N→N f:{0,1}∗→{0,1}∗ NN=2N
Dado que solo muchas funciones son computables, la mayoría de ellas no lo son. De hecho el número de funciones incomputables es también .2N
Si desea visualizar esto intuitivamente, piense en números naturales y números reales, o en cadenas binarias finitas y cadenas binarias infinitas. Hay muchos más números reales y cadenas binarias infinitas que números naturales y cadenas finitas. En otras palabras, (para una prueba de este hecho, ver el argumento diagonal de Cantor y la aritmética cardinal ).N<2N
fuente
Aquí hay una construcción "explícita" de innumerables funciones booleanas no computables. Sea una función booleana fija no computable, digamos la función característica del problema de detención. Considere el conjunto de funciones F = { f : N → { 0 , 1 } : ∀ x ∈ N , f ( 2 x ) = K ( x ) } . Cada f ∈ F no es computable y F es incontable.K
Así que hay muchas funciones no computables ya que tenemos "infinitamente" grados de libertad: infinito real en lugar de infinito "potencial" como en el caso computable.
fuente