Articulo de referencia

Circuito (informática)

En informática teórica , un circuito es un modelo de computación en el que los valores de entrada pasan por una secuencia de compuertas, cada una de las cuales calcula una funci...

En informática teórica , un circuito es un modelo de computación en el que los valores de entrada pasan por una secuencia de compuertas, cada una de las cuales calcula una función. Los circuitos de este tipo proporcionan una generalización de los circuitos booleanos y un modelo matemático para los circuitos de lógica digital . Los circuitos se definen por las compuertas que contienen y los valores que estas pueden producir. Por ejemplo, los valores en un circuito booleano son valores booleanos , y el circuito incluye compuertas de conjunción, disyunción y negación. Los valores en un circuito entero son conjuntos de enteros, y las compuertas calculan la unión, la intersección y el complemento de conjuntos, así como las operaciones aritméticas de suma y multiplicación.

Definición formal

Un circuito es un triplete(METRO,L,GRAMO){\displaystyle (M,L,G)}, dónde

  • METRO{\displaystyle M}es un conjunto de valores,
  • L{\displaystyle L}es un conjunto de etiquetas de puerta, cada una de las cuales es una función deMETROi{\displaystyle M^{i}}aMETRO{\displaystyle M}para algún entero no negativoi{\displaystyle i}(dóndei{\displaystyle i}representa el número de entradas a la puerta), y
  • GRAMO{\displaystyle G}es un grafo acíclico dirigido etiquetado con etiquetas deL{\displaystyle L}.

Los vértices del grafo se llaman puertas . Para cada puertagramo{\displaystyle g}de grado de entradai{\displaystyle i}, la puertagramo{\displaystyle g}puede ser etiquetado por un elemento{\displaystyle \ell }deL{\displaystyle L}si y solo si{\displaystyle \ell }se define enMETROi.{\displaystyle M^{i}.}

Terminología

Las puertas de grado de entrada 0 se llaman entradas u hojas . Las puertas de grado de salida 0 se llaman salidas . Si hay una arista desde la puertagramo{\displaystyle g}a la puertah{\displaystyle h}en el gráficoGRAMO{\displaystyle G}entoncesh{\displaystyle h}se le llama hijo degramo{\displaystyle g}Suponemos que existe un orden en los vértices del grafo, por lo que podemos hablar de lak{\displaystyle k}el hijo de una puerta cuandok{\displaystyle k}es menor o igual al grado de salida de la puerta.

El tamaño de un circuito es el número de nodos de un circuito. La profundidad de una puertagramo{\displaystyle g}es la longitud del camino más largo enGRAMO{\displaystyle G}comenzando engramo{\displaystyle g}hasta una puerta de salida. En particular, las puertas de grado de salida 0 son las únicas puertas de profundidad 1. La profundidad de un circuito es la profundidad máxima de cualquier puerta.

Niveli{\displaystyle i}es el conjunto de todas las puertas de profundidadi{\displaystyle i}. Un circuito nivelado es un circuito en el que los bordes a las puertas de profundidadi{\displaystyle i}Proviene únicamente de puertas de profundidadi+1{\displaystyle i+1}o desde las entradas. En otras palabras, los bordes solo existen entre niveles adyacentes del circuito. El ancho de un circuito nivelado es el tamaño máximo de cualquier nivel.

Evaluación

El valor exactoV(gramo){\displaystyle V(g)}de una puertagramo{\displaystyle g}con grado de entradai{\displaystyle i}y etiquetal{\displaystyle l}se define recursivamente para todas las compuertasgramo{\displaystyle g}.

V(gramo)={lsi gramo es una entradal(V(gramo1),,V(gramoi))de lo contrario,{\displaystyle V(g)={\begin{cases}l&{\text{si }}g{\text{ es una entrada}}\\l(V(g_{1}),\dotsc ,V(g_{i}))&{\text{en otro caso,}}\end{cases}}}

donde cadagramoj{\displaystyle g_{j}}es padre degramo{\displaystyle g}.

El valor del circuito es el valor de cada una de las compuertas de salida.

Circuitos como funciones

Las etiquetas de las hojas también pueden ser variables que toman valores enMETRO{\displaystyle M}. Si haynorte{\displaystyle n}hojas, entonces el circuito puede verse como una función de METROnorte{\displaystyle M^{n}}aMETRO{\displaystyle M}. Entonces es habitual considerar una familia de circuitos(donorte)nortenorte{\displaystyle (C_{n})_{n\in \mathbb {N} }}, una secuencia de circuitos indexada por los enteros donde el circuitodonorte{\displaystyle C_{n}}tienenorte{\displaystyle n}variables. Por lo tanto, las familias de circuitos pueden verse como funciones deMETRO{\displaystyle M^{*}}aMETRO{\displaystyle M}.

Las nociones de tamaño, profundidad y anchura pueden extenderse naturalmente a familias de funciones, convirtiéndose en funciones denorte{\displaystyle \mathbb {N} }anorte{\displaystyle \mathbb {N} }; Por ejemplo,sizmi(norte){\displaystyle size(n)}es el tamaño de la norte{\displaystyle n}el circuito de la familia.

Complejidad y problemas algorítmicos

Calcular la salida de un circuito booleano dado con una entrada específica es un problema P-completo . Sin embargo, si la entrada es un circuito entero , se desconoce si este problema es decidible .

La complejidad de los circuitos intenta clasificar las funciones booleanas en función del tamaño o la profundidad de los circuitos que pueden calcularlas.

Véase también

Referencias

  • Vollmer, Heribert (1999). Introducción a la complejidad de los circuitos . Berlín: Springer. ISBN 978-3-540-64310-4.
  • Yang, Ke (2001). "La evaluación de circuitos enteros es PSPACE-completa" . Journal of Computer and System Sciences . 63 (2, septiembre de 2001): 288–303 . doi : 10.1006/jcss.2001.1768 . ISSN 0022-0000 .