Circuito (informática)

Modelo de cálculo

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 puertas, 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 lógicos digitales. Los circuitos se definen por las puertas que contienen y los valores que las puertas pueden producir. Por ejemplo, los valores de un circuito booleano son valores booleanos, y el circuito incluye puertas de conjunción, disyunción y negación. Los valores de un circuito entero son conjuntos de números enteros y las puertas calculan la unión de conjuntos, la intersección de conjuntos y el complemento de conjuntos, así como las operaciones aritméticas de suma y multiplicación.

Definición formal

Un circuito es un triplete , donde ( METRO , yo , GRAMO ) {\estilo de visualización (M,L,G)}

  • METRO {\estilo de visualización M} es un conjunto de valores,
  • yo {\estilo de visualización L} es un conjunto de etiquetas de puerta, cada una de las cuales es una función de a para algún entero no negativo (donde representa el número de entradas a la puerta), y METRO i Estilo de visualización M^{i}} METRO {\estilo de visualización M} i {\estilo de visualización i} i {\estilo de visualización i}
  • GRAMO {\estilo de visualización G} es un gráfico acíclico dirigido etiquetado con etiquetas de . yo {\estilo de visualización L}

Los vértices del gráfico se denominan puertas . Para cada puerta de grado de entrada , la puerta puede etiquetarse con un elemento de si y solo si está definido en gramo {\estilo de visualización g} i {\estilo de visualización i} gramo {\estilo de visualización g} {\displaystyle \ell} yo {\estilo de visualización L} {\displaystyle \ell} METRO i . {\displaystyle M^{i}.}

Terminología

Las puertas de grado de entrada 0 se denominan entradas o salidas . Las puertas de grado de salida 0 se denominan salidas . Si hay una arista de puerta a puerta en el grafo , entonces se denomina hijo de . Suponemos que hay un orden en los vértices del grafo, por lo que podemos hablar del º hijo de una puerta cuando es menor que el grado de salida de la puerta. gramo {\estilo de visualización g} yo {\estilo de visualización h} GRAMO {\estilo de visualización G} yo {\estilo de visualización h} gramo {\estilo de visualización g} a {\estilo de visualización k} a {\estilo de visualización k}

El tamaño de un circuito es el número de nodos de un circuito. La profundidad de una compuerta es la longitud del camino más largo desde el inicio hasta una compuerta de salida. En particular, las compuertas de grado de salida 0 son las únicas compuertas de profundidad 1. La profundidad de un circuito es la profundidad máxima de cualquier compuerta. gramo {\estilo de visualización g} GRAMO {\estilo de visualización G} gramo {\estilo de visualización g}

El nivel i {\estilo de visualización i} es el conjunto de todas las puertas de profundidad . Un circuito nivelado es un circuito en el que las aristas de las puertas de profundidad provienen únicamente de las puertas de profundidad o de las entradas. En otras palabras, las aristas solo existen entre niveles adyacentes del circuito. El ancho de un circuito nivelado es el tamaño máximo de cualquier nivel. i {\estilo de visualización i} i {\estilo de visualización i} i + 1 {\estilo de visualización i+1}

Evaluación

El valor exacto de una puerta con grado de entrada y etiqueta se define de forma recursiva para todas las puertas . V ( gramo ) {\displaystyle V(g)} gramo {\estilo de visualización g} i {\estilo de visualización i} yo {\estilo de visualización l} gramo {\estilo de visualización g}

V ( gramo ) = { yo si  gramo  es una entrada yo ( V ( gramo 1 ) , , V ( gramo i ) ) 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 caso contrario,}}\end{cases}}}

donde cada uno es un padre de . gramo yo estilo de visualización g_ {j}} gramo {\estilo de visualización g}

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

Circuitos como funciones

Las etiquetas de las hojas también pueden ser variables que toman valores en . Si hay hojas, entonces el circuito puede verse como una función de a . Entonces es habitual considerar una familia de circuitos , una secuencia de circuitos indexados por los números enteros donde el circuito tiene variables. Las familias de circuitos pueden verse así como funciones de a . METRO {\estilo de visualización M} norte {\estilo de visualización n} METRO norte Estilo de visualización Mn METRO {\estilo de visualización M} ( do norte ) norte norte {\displaystyle (C_{n})_{n\in \mathbb {N}}} do norte Estilo de visualización C_{n} norte {\estilo de visualización n} METRO {\estilo de visualización M^{*}} METRO {\estilo de visualización M}

Las nociones de tamaño, profundidad y anchura pueden extenderse naturalmente a familias de funciones, convirtiéndose en funciones de a ; por ejemplo, es el tamaño del circuito n de la familia. norte {\displaystyle \mathbb {N}} norte {\displaystyle \mathbb {N}} s i el mi ( norte ) {\displaystyle tamaño(n)} norte {\estilo de visualización n}

Complejidad y problemas algorítmicos

Calcular la salida de un circuito booleano dado en 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 del circuito intenta clasificar las funciones booleanas con respecto al 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 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 de septiembre de 2001): 288–303. doi : 10.1006/jcss.2001.1768 . ISSN  0022-0000.
Obtenido de "https://es.wikipedia.org/w/index.php?title=Circuito_(informática)&oldid=1245857689"