Na teoria da complexidade computacional, os circuitos aritméticos são o modelo padrão para calcular polinômios. Os circuitos aritméticos são capazes de receber informações de variáveis ou números e calcular o resultado de uma expressão previamente calculada por meio de adição ou multiplicação. Este modelo nos permite compreender metafisicamente a complexidade da computação de polinômios.
A questão fundamental de um circuito é "Como calcular um determinado polinômio da maneira mais eficiente?"
Um circuito aritmético é composto por um grafo acíclico guiado. Cada nó do grafo com grau zero é chamado de porta de entrada e é rotulado como uma variável ou elemento no domínio. Outras portas são portas de adição ou portas de multiplicação. A fórmula aritmética é um circuito em que o grau de saída de cada porta é um, formando uma árvore direcionada. Existem duas medidas importantes de complexidade para circuitos: tamanho e profundidade. O tamanho do circuito refere-se ao número de portas, enquanto a profundidade se refere ao comprimento do caminho direcionado mais longo no circuito.
Os circuitos aritméticos possuem uma maneira natural de calcular polinômios. Uma porta de entrada calcula seu polinômio rotulado; uma porta de adição calcula a soma dos polinômios calculados por seus filhos, e uma porta de multiplicação calcula o produto dos polinômios calculados por seus filhos. Tomando a figura como exemplo, a porta de entrada calcula x1, x2 e 1 em sequência, a porta de adição calcula x1 + x2 e x2 + 1, e a porta de multiplicação calcula o valor de (x1 + x2) x2 (x2 + 1) .
Quando nos deparamos com um polinômio f, a questão é qual a melhor forma de calculá-lo - por exemplo, calcular o tamanho mínimo de um circuito unitário. Esta questão geralmente consiste em duas partes. A primeira parte é encontrar um circuito que calcule o polinômio, que é chamado de complexidade do limite superior; a segunda parte é provar que outros circuitos não conseguem obter melhor desempenho, que é chamado de complexidade do limite inferior;
Embora as duas tarefas estejam intimamente relacionadas, provar um limite inferior é geralmente mais difícil porque todos os circuitos precisam ser discutidos simultaneamente.
É importante notar aqui que estamos preocupados com o cálculo formal de polinômios, não com as funções definidas por polinômios. Por exemplo, considere o polinômio x2 + x em um domínio binário. Este polinômio representa uma função zero neste domínio, mas não é um polinômio zero. Esta é uma das diferenças entre o estudo dos circuitos aritméticos e o estudo dos circuitos de Bollinger, e uma razão pela qual a complexidade de Bollinger é mais difícil do que a complexidade aritmética.
No estudo do cálculo da complexidade polinomial, alguns circuitos ou algoritmos inteligentes foram descobertos. Por exemplo, o famoso algoritmo de multiplicação de matrizes de Strassen usa um tamanho de circuito de cerca de n2.807, o que reduz bastante a complexidade em comparação com o simples n3. Outra história fascinante é sobre o cálculo do determinante de uma matriz n × n Embora o método de cálculo original exigisse um circuito de tamanho n!, sabemos que o determinante pode ser calculado com um circuito de tamanho polinomial, embora a profundidade do. o circuito é linear com n.
Enquanto isso, existem desafios semelhantes para calcular o tamanho de circuitos permanentes para matrizes n × n, com o circuito ideal tendo um tamanho de cerca de 2n.
Nosso conhecimento atual sobre como provar limites inferiores é muito limitado. Por exemplo, calcular polinômios de graus muito grandes geralmente requer circuitos grandes; por exemplo, um polinômio de grau 2 ^ 2n requer um tamanho de circuito de cerca de 2n; O principal problema reside em provar limites inferiores para polinômios de pequeno grau, especialmente tamanhos polinomiais n.
O principal problema em aberto atualmente é encontrar um polinômio explícito tal que o tamanho do circuito necessário para seu cálculo exceda o nível do polinômio.
O problema aberto mais interessante na teoria da complexidade computacional é o problema P versus NP. Grosso modo, a questão é se determinar uma solução para um problema pode ser tão fácil quanto provar a sua existência. Valiant propôs uma analogia algébrica dos problemas VP e VNP, que envolve a relação entre o tamanho do polinômio e o tamanho do circuito.
Uma referência importante para a nossa compreensão dos cálculos polinomiais é o trabalho de Valiant, Skyum, Berkowitz e Rackoff. Eles mostraram que se um polinômio de grau r tem um circuito de tamanho s, então o polinômio também tem circuitos de polinômios de tamanho r e s.
Este resultado é considerado falso, dados resultados semelhantes nas configurações de Bollinger. Um corolário deste resultado é que simulações de circuitos envolvendo polinômios são fórmulas relativamente pequenas, neste caso, um polinômio de grau r para um circuito de tamanho s exigiria uma fórmula de tamanho s^ (O(log(r))).
O design, o tamanho e a profundidade dos circuitos aritméticos são elementos-chave para o cálculo de polinômios. O estudo desses elementos não é apenas um desafio teórico em matemática, mas também está intimamente ligado a aplicações práticas. Nestes cálculos complexos, se conseguiremos encontrar métodos mais eficientes para resolver problemas maiores será uma das direções de pesquisas futuras.