Según el relato histórico (no verificado), Kolmogorov pensó que cada lenguaje en tiene una complejidad de circuito lineal. (Vea la pregunta anterior conjetura de Kolmogorov que tiene circuitos de tamaño lineal .) Tenga en cuenta que esto implica .
La conjetura de Kolmogorov, sin embargo, es probable que falle. Por ejemplo, Ryan Williams escribe en un artículo reciente : "La conjetura sería sorprendente, de ser cierta. Para los idiomas en requieren veces, parece poco probable que la complejidad de tales problemas se reduzca mágicamente al tamaño , simplemente porque se puede diseñar un circuito diferente para cada longitud de entrada ".
Por otro lado, Andrey Kolmogorov (1903-1987) es ampliamente reconocido como uno de los principales matemáticos del siglo XX. Es bastante difícil imaginar que hubiera propuesto una conjetura completamente absurda. Por lo tanto, para entenderlo mejor, traté de encontrar algunos argumentos que realmente pudieran apoyar su sorprendente suposición. Esto es lo que podría pensar:
L ∈ P L
Hay un conocido explícita algoritmo (máquina de Turing) que acepta . De esto podemos construir una familia de funciones explícitas que debe tener una complejidad de circuito superlineal. Sin embargo, esto puede verse poco probable, ya que nadie ha sido capaz de encontrar ese ejemplo en más de 60 años de intensa investigación sobre circuitos.
No se conoce ningún explícita algoritmo para . Por ejemplo, su existencia se prueba por medios no constructivos, como el Axioma de Elección. O, incluso si existe el algoritmo explícito, nadie ha podido encontrarlo. Sin embargo, dado que hay infinitos idiomas que pueden desempeñar el papel de , es poco probable que todos se comporten de esta manera hostil.
Pero luego, si descartamos ambas opciones como improbables, la única posibilidad restante es que tal no exista. Eso significa , que es precisamente la conjetura de Kolmogorov.
Pregunta: ¿Puedes pensar en algún otro argumento a favor / en contra de la conjetura de Kolmogorov?
fuente
Respuestas:
La nota de pie de página de mi artículo que usted cita se refiere también a un "argumento" heurístico, al menos, lo que creemos que fue la intuición de Kolmogorov: la resolución positiva del decimotercer problema de Hilbert.
http://en.wikipedia.org/wiki/Hilbert's_thirteenth_problem
En particular, Kolmogorov y Arnold demostraron que cualquier función continua en variables se puede expresar como una composición de funciones "simples": suma de dos variables y funciones continuas en una variable. Por lo tanto, sobre la "base" de las funciones continuas de una variable y la suma de dos variables, cada función continua en variables tiene "complejidad de circuito" .O ( n 2 ) n O ( n 2 )n O(n2) n O(n2)
Parece que Kolmogorov creía que existe un análogo discreto, donde "continuo en variables" se convierte en "booleano en variables y poli -tiempo computable", y donde la "base" dada anteriormente se convierte en funciones booleanas de dos variables.n ( n )n n (n)
fuente
La respuesta de Stasys a la pregunta anterior proporciona cierta intuición potencialmente a favor: /cstheory//a/22048/8243 . Trataré de repetir aquí como lo entiendo. La intuición clave es ver un circuito como, no un algoritmo, sino una codificación de un conjunto (el conjunto que acepta). Podemos obtener un límite superior en el tamaño de codificación mediante el tiempo de ejecución del algoritmo (es decir, traducir un time- TM en un circuito de tamaño- ), pero no está claro qué relación inversa debería existir. Si un idioma está en , entonces quizás esto implica que la membresía es lo suficientemente "local" como para codificarse de manera muy concisa.t Pt t P
Es decir, la pertenencia a es una declaración sobre el tiempo de ejecución de un algoritmo, mientras que los circuitos lineales son (quizás) una declaración sobre el tamaño de codificación de conjuntos de palabras de longitud fija. Ambas son declaraciones sobre la simplicidad del lenguaje, pero viven en mundos tal vez bastante diferentes.P
Otra intuición que menciona Stasys proviene de la "cadena indicadora" de un lenguaje, que formalicemos como la cadena infinita donde el bit es si la th cadena lexicográfica está en el idioma y es contrario. Un (polytime) TM para el lenguaje es un oráculo (rápido) para la cadena --- dado en binario, produce el bit . Un circuito (de tamaño lineal) para entradas de longitud es un oráculo (conciso) para el prefijo de longitud- de la cadena. La conjetura se convierte en "cualquier cadena infinita que tiene un oráculo 'rápido' tiene oráculos prefijos 'concisos'".1 j 0 j j n 2 nj 1 j 0 j j n 2n
Ninguno de los anteriores explica por qué y" lineal "podrían ser los parámetros respectivos correctos para la declaración; pero creo que muestran esa intuición natural: que los circuitos actúan como algoritmos y requieren algoritmos más complicados circuitos igualmente complicados: pueden ser engañosos.‘‘P"
fuente