Caracterización de la complejidad del circuito para DLogTime y NLogTime

13

DLogTime yNLogTime son dos de las clases de complejidad más pequeñas que tenemos. (Tenga en cuenta que la jerarquía de tiempo logarítmicoLH es igual aAC0 y estos son los dos primeros niveles deLH ).

Después de leer esta pregunta , me convierto interesado en ver si se conoce la separación entre estas dos clases, y de hecho es fácil separarlos desde OR(x1,...,xn)NLogTimeDLogTime (gracias a Robin Kothari. Véase también conocido) Ahora estoy interesado en conocer su caracterización de la complejidad del circuito correspondiente. He buscado un poco y he preguntado a algunas personas, pero no he podido encontrar la respuesta.

¿Tenemos buenas caracterizaciones de complejidad de circuito para las clases de complejidad DLogTime y NLogTime ?

Nota: DLogTime muestra mucho en la definición de uniformidad para clases de complejidad pequeña. Tenga en cuenta que el pequeño límite de tiempo no permite que estas máquinas lean la entrada completa, solo pueden leer lgn bits de la entrada, y las clases se definen usando máquinas que pueden escribir la dirección de un bit y luego leer ese bit directamente ( es decir, no es necesario repasar todos los bits anteriores para llegar allí).

Kaveh
fuente
3
Es fácil separar las dos clases. NLOGTIME puede calcular la función OR, mientras que DLOGTIME no puede, porque no puede leer la entrada completa. Este hecho puede usarse para construir un lenguaje que separe a los dos usando trucos estándar.
Robin Kothari
1
@Robin: como siempre muchas gracias :). Me lo perdi.
Kaveh
. Las clases son probablemente algo relacionado con la cláusula / término / CNF / DNF de tamaño polinómico. AltTime(O(1),O(logn))=AC0
Kaveh
¿Finalmente encontraste una respuesta a esta pregunta? Una caracterización de circuito para DLOGTIME tendría dos partes, el tipo de circuitos permitidos y la condición de uniformidad impuesta a ellos. ¿Conoces la respuesta a una de estas?
Robin Kothari
@Robin, no, no sé la respuesta, pero sospecho que probablemente no se correspondan con buenas clases de complejidad de circuito.
Kaveh

Respuestas:

-11

Creo que es mucho más interesante que las clases de complejidad del circuito utilizadas por la teoría de la complejidad CS hagan predicciones diferentes y utilicen métricas diferentes a las de la comunidad VLSI. De la complejidad VLSI de las funciones booleanas :

Es bien sabido que todas las funciones booleanas de variables pueden calcularse mediante un circuito lógico con puertas O ( 2 n / n ) (teorema de Lupanov) y que existen funciones booleanas de n variables que requieren circuitos lógicos de este tamaño (Shannon teorema). Presentamos los resultados correspondientes para funciones booleanas calculadas por circuitos VLSI, utilizando el modelo de Thompson de un chip VLSI. Probamos que todas las funciones booleanas de n variables pueden calcularse mediante un circuito VLSI de área O ( 2 n ) y período 1, y demostramos que existen funciones booleanas de nnO(2n/n)nO(2n)nvariables para las cuales cada chip VLSI (convexo) debe tener un área de .Ω(2n)

Curiosamente, la complejidad del circuito VLSI tiene una tendencia a tratar la profundidad como "irrelevante", ya que hay una y solo una "profundidad" que importa: la ruta crítica. Para los propósitos más prácticos, un circuito arbitrariamente complejo puede ser tratado como con una latencia de n .O(1)n

De hecho, ni siquiera estoy seguro de que el concepto de / N L o g T i m e se traduzca directamente en la complejidad del circuito VLSI. Incluso el resultado de Shannons 2 n / n no se traduce fácilmente: los resultados de Shannons son válidos solo para una base booleana que consiste en aridad 2 {AND, OR, NOT}. Esta no es la única base, y el número de "puertas" necesarias disminuye drásticamente a medida que permite más y más tipos de puertas. Los siguientes son a r e a 2DLogTimeNLogTime2n/n2area2 de una biblioteca de células estándar comercial VLSI normalizada al tamaño de una puerta NAND de 2 entradas:

        2 3 4 <- Arity
y 1.14 1.28 1.41
nand 1.00 1.14 1.28
o 1.14 1.41 1.41
ni 1.00 1.14 1.41
xor 1.62 2.44
xnor 1.62 2.44

buf 1.14
inv 0.80

aoi22 1.28
aoi222 1.62
aoi33 1.62
oai22 1.41
oai222 1.72
oai33 1.62

addf 2.64

Específicamente, observe las aoi/ oaipuertas que son And Or Invert/ que Or And Invertconsisten en una primera función del tamaño de arity que alimenta la segunda función, donde el número de puertas de primera función es igual al número de veces que aparece arity . Por ejemplo, representa "Dos 2 entradas Y puertas que alimentan una puerta NOR".aoi22

Mi punto es: Tomado por separado, oai222se puede construir una función usando tres compuertas OR de 2 entradas y una compuerta NAND de 3 entradas, para un área total de ~ 4.56, sin incluir ningún área utilizada para la interconexión. Sin embargo, esta primitiva se puede realizar en un área de solo 1.72, lo que significa que una manifestación discreta de la misma función booleana consume 2.65 veces más área.

También tenga en cuenta que el área para una puerta input {AND, NAND, OR, NOR, XOR, XNOR}, donde n 2 , es mucho menor que el área que tomaría construir la misma función usando puertas de entrada discretas 2. También tenga en cuenta que si bien el área dada para {XOR, XNOR} para este proceso es "grande" en relación con las otras puertas, hay otras formas de construir las mismas n puertas de entrada usando menos área.nn2n

Las propiedades de propagación para las primitivas más complejas también son significativamente mejores que las que se obtendrían utilizando puertas discretas.

PNP

PNPNPf:{0,1}n{0,1}f2n/nNP.

f:{0,1}n{0,1}NP{0,1}n2n/nnnNPNP2n/n

Sobre la complejidad de las implementaciones de VLSI y las representaciones gráficas de las funciones booleanas con aplicación a la multiplicación entera , la predicción de la complejidad del circuito utilizando un modelo OBDD sobreestima la complejidad real del circuito:

AT2=Ω(n2)Ω(cn)c<1AT2=O(n1+c)

n2n1i12ni11inAT2=Ω(i2)Ω(1.09i)

johne
fuente
55
-1: No veo cómo esto es relevante para la pregunta del OP.
Robin Kothari
55
Tu opinión sobre Shannon y Cook no parece tener ningún sentido. Shannon demostró que "la mayoría" de las funciones requieren un circuito exponencialmente grande. ¿Cómo podemos concluir que cualquier problema de NP solo requiere una familia de tamaño lineal? Y te das cuenta de que estamos hablando de familias de circuitos, ¿verdad?
Mark Reitblatt
66
johne: este no es un foro apropiado para lo que solo puede describirse como comentarios sobre la comunidad VLSI frente a la comunidad CS.
Suresh Venkat