Na teoria da complexidade computacional, os circuitos aritméticos se tornaram o modelo padrão para calcular polinômios. Esses circuitos funcionam tomando variáveis ou números como entrada e então realizando operações de adição ou multiplicação, tornando-os uma maneira formal de entender a complexidade polinomial dos cálculos. Entretanto, a questão de como calcular um polinômio específico de forma mais eficiente ainda vale a pena ser ponderada.
Um circuito aritmético é um grafo acíclico direcionado onde cada nó com grau de entrada zero é chamado de porta de entrada e é rotulado como uma variável ou elemento de campo.
O tamanho e a profundidade dos circuitos aritméticos são duas medidas-chave de complexidade. O tamanho de um circuito é o número de suas portas, enquanto sua profundidade é o comprimento do caminho mais longo direcionado da entrada à saída. Por exemplo, um circuito aritmético pode calcular polinômios por meio de portas de entrada e, então, executar operações de adição e multiplicação com base nos subnós calculados.
Ao explorar a complexidade do cálculo de polinômios, podemos nos perguntar: Como encontramos a melhor maneira de calcular um determinado polinômio? Isso envolve primeiro construir um circuito que possa calcular o polinômio dado, o que é chamado de limite superior. Então mostre que nenhum outro circuito pode fazer melhor, e esse é o limite inferior.
Embora as duas tarefas de provar limites inferior e superior estejam conceitualmente intimamente relacionadas, provar limites inferiores é geralmente mais desafiador porque todos os circuitos possíveis precisam ser analisados simultaneamente.
Um exemplo notável é o algoritmo de Strathern, que demonstrou calcular o produto de duas matrizes n×n com um tamanho de cerca de n2,807. Isso representa uma simplificação significativa em relação à abordagem tradicional O(n3). As inovações de Strathern surgiram principalmente de seu método inteligente de multiplicação de matrizes 2×2, que lançou as bases para uma multiplicação de matrizes mais eficiente.
Embora muitos circuitos inteligentes tenham sido encontrados para encontrar limites superiores em polinômios, a tarefa de provar limites inferiores é extremamente difícil. Especialmente para polinômios de pequeno grau, se for possível provar que alguns polinômios requerem circuitos de tamanho superpolinomial, será possível ilustrar a complexidade do problema. Entretanto, o principal desafio é encontrar um polinômio explícito que possa comprovadamente exceder o requisito de tamanho do polinômio, o que se tornou um dos principais focos da pesquisa atual.
Limites inferiores para polinômios como x1d + ... + xnd são fornecidos por Strathern et al. provou que é Ω(n log d).
Os resultados da pesquisa apresentados por Strathern não apenas nos levam a uma compreensão mais profunda dos circuitos aritméticos, mas também focam com sucesso a atenção nos problemas de complexidade causados pelo tamanho global do circuito exigido pelos polinômios. Se tais resultados puderem ser aplicados a uma gama maior de polinômios, espera-se que muitos problemas não resolvidos sejam resolvidos.
Outro tópico que vale a pena prestar atenção é o problema P e NP na álgebra. Nessa questão, é possível resolver um problema com a mesma eficiência de confirmar se uma solução para um determinado problema existe? Este é um desafio teórico importante porque não se trata apenas de computação polinomial, mas também envolve a questão central da complexidade computacional como um todo.
O problema VP e VNP proposto pela Valiant é um maravilhoso problema algébrico que envolve as capacidades de computação e representação de polinômios.
O estudo aprofundado dos problemas VP e VNP pode fornecer insights únicos sobre a complexidade dos cálculos aritméticos. À medida que a pesquisa avança, esperamos mais avanços no futuro que desafiarão os limites da teoria da computação tradicional.
Neste mundo de matemática e computação em rápida mudança, à medida que a teoria avança e as aplicações práticas se expandem, a complexidade do processo de cálculo deve, pelo menos, nos fazer pensar profundamente. Os modelos de computação futuros podem ser ainda mais otimizados?