¿Son completas las funciones booleanas?


9

Una función booleana es una función .f:{0,1}n{0,1}

Se sabe que la base booleana es Turing completa ya que permite que cualquier secuencia se voltee o se deje sin cambios. Lo mismo puede decirse de las puertas .s { 0 , 1 } X O R(,)s{0,1}XOR

En este sentido, podemos comenzar con una configuración inicial de la máquina tal que y con valores sucesivos :b i{ 0 , 1 } X O R v ib=(b1,,bn)bi{0,1}XORvi

bv1v2v3

Cada estado representaría una permutación de algún elemento en . Este proceso imita efectivamente una máquina de Turing y supone que hay algún generador para los valores .b v ivibvi

Entonces, ¿podemos decir que las funciones booleanas de Turing están completas?


1
¿Cómo podría esta maquinaria quedar atrapada en un bucle infinito?
Guildenstern

Supongo que la cosa es que, si bien el formalismo del circuito booleano es isomorfo al formalismo de Turing, no le dice cómo construir o generar un programa de este tipo ... Necesita "conocer" los valores ...vi
usuario13675

Respuestas:


8

Informalmente, un lenguaje (de programación) es Turing completo si cada función computable tiene una representación. Una función computable general acepta una entrada de tamaño arbitrario. Las funciones booleanas, por otro lado, aceptan una entrada de un tamaño fijo. Por lo tanto, las funciones booleanas ni siquiera califican como potencialmente completas de Turing.

La noción relevante de integridad aquí es una base completa de conectivos. Un conjunto de conectivos ( funciones -ary en valores booleanos para arbitrario ) se completa si cada función booleana en (para arbitrario ) se puede representar usando los conectivos. Los siguientes conjuntos están completos: la base de Morgan y la base . Por el contrario, no está completo: solo puede expresar funciones lineales.k x 1 , , x n n 1 { ¬ , , } { ¬ , } { ¬ , }kkx1,,xnn1{¬,,}{¬,}{¬,}


¿Su contraparte, circuitos booleanos, estaría completa? Supongo que lo son desde que Cook (en su prueba de la integridad de NP de 3SAT) mostró cómo las máquinas de Turing y los circuitos booleanos son equivalentes.
user13675

@ user13675 No, es exactamente el mismo problema. Cada máquina de Turing detenida se puede convertir en un circuito booleano o fórmula equivalente para cada tamaño de entrada, pero para cada tamaño necesitará uno diferente.
Yuval Filmus

5

Hablando estrictamente como YF ha respondido, los circuitos finitos no pueden completarse.

Sin embargo, vale la pena mencionar una pista en respuesta a esta pregunta (y tal vez lo que está buscando), un concepto estrechamente relacionado que se utiliza ampliamente en teoría, donde los circuitos se utilizan para calcular funciones de una manera que es más fuerte que Turing completo.

a saber, familias de circuitos. Una familia de circuitos puede calcular infinitos idiomas. cada entrada de tamaño tiene un circuito / función asociado construido a través de algún método, ¡no necesariamente construido a través de un TM! los lenguajes de circuito computables por TM decidibles se conocen como circuitos uniformes y los circuitos no construibles dentro de esta clase se conocen como no uniformes .C nnCn

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.