Na teoria da complexidade computacional, os circuitos aritméticos se tornaram o modelo padrão para calcular polinômios. Normalmente, os circuitos aritméticos recebem variáveis ou números como entrada e podem calcular expressões por adição ou multiplicação. Esses circuitos não apenas fornecem uma maneira formal de entender a complexidade do cálculo de polinômios, mas também nos permitem explorar como calcular polinômios específicos de forma eficiente.
Cada circuito tem duas métricas de complexidade: tamanho e profundidade.
O tamanho de um circuito se refere ao número de portas nele, enquanto a profundidade representa o comprimento do caminho mais longo no gráfico. Por exemplo, se um circuito tem um tamanho de seis e uma profundidade de dois, então seu poder computacional pode ser razoavelmente esperado. A estrutura do circuito é um grafo acíclico direcionado, e as saídas das portas de entrada são usadas para calcular o valor final do polinômio.
Dado um polinômio f
, frequentemente perguntamos qual é a melhor maneira de avaliá-lo. Por exemplo, como tornar o circuito que calcula f
o menor possível. A resposta a esta questão geralmente tem duas partes: primeiro, encontre um circuito que possa calcular f
, que é chamado de limite superior da complexidade de f
; segundo, prove que Nenhum outro circuito pode ser mais eficiente que este, e este é um limite inferior para a complexidade de f
.
Limites inferiores geralmente são mais difíceis de provar do que limites superiores, porque envolvem provar todos os circuitos simultaneamente.
Embora as duas tarefas estejam intimamente relacionadas, a dificuldade de provar limites inferiores costuma ser assustadora, especialmente quando temos que considerar polinômios muito grandes. Pesquisas anteriores mostraram que os recursos computacionais necessários para certos polinômios aumentam drasticamente à medida que seu grau aumenta. Este ponto tem sido amplamente discutido na teoria da complexidade computacional.
Quando falamos sobre algoritmos, exemplos como o algoritmo de Strassen vêm à mente. Este algoritmo pode realizar a multiplicação de duas matrizes n × n
em um tamanho de aproximadamente n^2.807
, enquanto o método tradicional requer um tamanho de circuito de n^3 . Por trás de tudo isso há uma profunda sabedoria matemática que muda a maneira como as operações matemáticas são calculadas.
O estudo destaca o delicado equilíbrio entre os limites superior e inferior da complexidade polinomial.
Além disso, também observamos alguns fenômenos interessantes no processo de cálculo do determinante. Métodos computacionais tradicionais requerem circuitos de tamanho aproximado de n!
, mas na prática existem circuitos que são escalonados polinomialmente e requerem apenas profundidade linear. Esses avanços mostram o poder da pesquisa matemática na busca por maneiras simplificadas de calcular.
No entanto, nosso conhecimento da situação com limites inferiores retrospectivos é bastante limitado. Alguns problemas importantes permanecem sem solução, especialmente encontrar um exemplo que indique um polinômio óbvio para provar que o limite inferior do circuito é um superpolinômio, o que se tornará um grande desafio para a comunidade acadêmica. Comparado com cálculos de grau polinomial, a exploração da comunidade acadêmica de alguns modelos simplificados, como circuitos monotônicos, circuitos de profundidade constante e circuitos multilineares, mostrou potencial considerável. Esses modelos fornecem perspectivas ricas em compreensão.
Em todo esse processo, a questão mais marcante é a relação entre P e NP. A questão central dessa teoria é se um determinado problema pode ser resolvido tão facilmente quanto a solução pode ser testada. Os problemas VP e VNP propostos por Vaillant tentam explorar o mesmo problema de uma perspectiva algébrica. VP é um análogo de P algébrico, contendo polinômios com circuitos polinomiais, enquanto VNP é considerado NP algébrico. Atualmente, não há evidências conclusivas para mostrar se VP é igual a VNP.
Provar a conexão entre benchmarks e teoria da complexidade continua a desafiar os limites do nosso conhecimento.
À medida que adquirimos uma compreensão mais profunda de como calcular polinômios de forma eficiente, algumas lacunas aparentes entre teoria e prática surgem. No futuro, como o design de circuitos pode se adaptar às mudanças nessas teorias será um tópico que a comunidade da ciência da computação precisará continuar a explorar. Não podemos deixar de nos perguntar, à medida que a tecnologia avança, que soluções criativas podem surgir neste complexo mundo da computação para enfrentar os desafios cada vez maiores?