Abstract:
|
A Programação Genética Cartesiana (CGP, do inglês Cartesian Genetic Programming) é uma técnica de computação evolutiva para a geração automática de programas inspirada na Programação Genética e na qual os indivíduos são representados como grafos dirigidos e acíclicos, com nodos computacionais dispostos em uma grade bidimensional. Entre os diversos contextos em que esta técnica já foi utilizada está a otimização lógica de circuitos. Esta aplicação, proposta no contexto de Logic Learning, pode ser adaptada para a Síntese Lógica Aproximada (ALS, do inglês Approximate Logic Synthesis). A ALS tem como principal objetivo a sintetização de circuitos aproximados, os quais produzem algumas saídas imprecisas ou incorretas em troca de ganhos em outras métricas de desempenho. Estes são geralmente explorados na busca de eficiência energética no projeto de circuitos para aplicações tolerantes a erro, relevantes para o cenário atual de tecnologia. Exemplos de aplicações tolerantes a erro são aquelas que envolvem redes neurais, processamento de sinais, visão computacional e processamento de linguagem natural, que estão tipicamente ligadas ao processamento de um alto volume de informações, levando também a um aumento a passos largos do consumo de energia de sistemas computacionais. Apesar de uma versão inicial de um fluxo de otimização lógica baseado em CGP para síntese de circuitos aproximados ter se mostrado efetivo para boa parte dos benchmarks em que foi avaliado, ainda restam casos em que a acurácia dos circuitos finais sintetizados não é satisfatória, motivando a aplicação de novos mecanismos potencialmente capazes de melhorar sua evolucionabilidade. É neste contexto que o presente trabalho se insere, propondo uma estratégia baseada em Curriculum Learning para a escolha de linhas da tabela verdade utilizadas para avaliação dos circuitos durante a fase de busca do fluxo, objetivando assim a melhoria da acurácia dos circuitos gerados por tal fluxo. Os resultados obtidos indicam que uma estratégia de escolha de linhas para compor os mini-batches, seja ela qual for, tem o poder de influenciar na capacidade de generalização dos circuitos gerados pelo fluxo e a configuração de linhas aprendidas tanto direta, como indiretamente. Em última instância, tais comportamentos indicam que uma estratégia de escolha de linhas afeta tanto a acurácia final dos circuitos gerados, como a velocidade com que a síntese é feita, mostrando que a técnica é pertinente para o contexto em que é proposta. Por outro lado, também observou-se que a abordagem idealizada neste trabalho apresenta uma contribuição limitada para o aumento da acurácia dos circuitos gerados, sendo que para a maioria dos benchmarks analisados não foram observadas melhorias estatisticamente significantes e foi alcançada uma média de 1,71% de acréscimo para os casos significantes. Ainda assim, identificou-se benchmarks e uma classes de problemas que se beneficiaram da abordagem de forma destacada, indicando que, mesmo não havendo garantia de ganho em acurácia, esta é uma alternativa cujo uso pode ser considerado e testado. |