GPEA

Grupo de Pesquisa em Engenharia de Algoritmo

 


Descrição:
A atividade de pesquisa do GPEA está concentrada no projeto e análise teórica e experimental de algoritmos para problemas que surgem nos modernos Sistemas de Produção e Computação e em aplicações relacionadas com problemas complexos de gerenciamento de recursos. O principal  interesse de pesquisa está focado na resolução de problemas de otimização, de problemas de desenho de grafo e em projeto de estrutura de dados e algoritmos eficientes, com ênfase especial naquelas aplicações envolvendo grande quantidade de dados.

Membros

Professor/Pesquisador

Aluno de Mestrado/Doutorado

Aluno de Graduação

Ademir Aparecido Constantino
Anderson Faustino da Silva
Cândido Ferreira Xavier de Mendonça (USP)  
Leticia Rodrigues Bueno (UFRJ)
Marco Aurélio Lopes Barbosa (UTPR)
Robinson Hoto (UEL)
Sarajane Marques Peres (USP)
Silvio ALexandre de Araujo (UNESP)
Wesley Romão

Adriano Heis
Walter Marcondes
Mauro Henrique Mulati
Everton Luiz de Melo
Rodrigo Pinheiro Lankaites

Douglas Baroni Rizzato (PIBIC)


LEAL: Laboratório de Engenharia de Algoritmo

Sala 04 – Bloco 19.


O que é engenharia?

É a ciência e a arte da aplicação de princípios científico e matemático para projetar coisas e resolver problemas em benefício da sociedade. 

 

O que é algoritmo?

Trata-se de um conceito na área de computação que significa uma seqüência finita de passos lógicos e bem definidos para resolver um problema. Esses passos posteriormente poderão ser escritos numa linguagem de computador e transformados num programa.

 

O que é Engenharia de Algoritmo?

É a ciência e a arte da aplicação de princípios científicos e matemáticos para projetar algoritmos que resolva problemas de maneira eficiente. O conhecimento necessário para esta área resume-se em matemática, programação matemática, análise de algoritmos, teoria da computação, teoria dos grafos, combinatória e estrutura de dados.

Esta é uma nova denominação dentro da área de computação que reúne os aspectos teóricos e científicos da computação juntamente com aplicações em problemas reais. A ACM (Association for Computing Machinery) tem considerado essa nova área há mais de cinco anos, promovendo o evento anual ALENEX (Workshop on Algorithm Engineering and Experiments).

 

Motivação:

Constantemente nos deparamos com algoritmos concebidos a partir de formulações de programação matemática. Na literatura encontramos alguns desses algoritmos clássicos e muito importantes, tais como: algoritmo Húngaro para o problema de atribuição, algoritmo de Out-of-Kilter para Fluxo de Custo Mínimo, algoritmo de Edmond para Emparelhamento de Grafo não Bipartido. Alguns desses algoritmos baseiam-se em variáveis primais e/ou duais oriundas de formulações de programação matemática, como é o caso do Out-of-Kilter. Estes exemplos mostram a importância da programação matemática na concepção de algoritmos robustos e eficientes.

O trinômio Problema-Modelo-Algoritmo tem sido o foco de trabalho para a Engenharia de Algoritmo. Antes da resolução do problema diretamente por um algoritmo, a formulação de um modelo do problema deve ser uma fase imprescindível para a obtenção de um bom algoritmo. Os exemplos de algoritmos clássicos supracitados revelam essa necessidade.

Desenvolver um algoritmo para resolver um problema não basta apenas encontrar uma seqüência lógica de operações, mas sim, uma seqüência lógica e eficiente. Para isso, há necessidade de um amplo conhecimento dos aspectos teóricos, tais como: Análise de Algoritmos, Matemática Discreta, Programação Matemática, Combinatória, Teoria da Computação, Teoria dos Grafos e Estrutura de Dados.

 

Projeto Atual: "Engenharia de Algoritmo: Otimização e Grafos".

Projeto financiado pelo CNPq com recursos do Edital Universal - MCT/CNPq - Nº 15/2007
Resumo:
Desenvolver algoritmos heurísticos eficientes para resolver problemas de otimização tem sido um desafio constante para os pesquisadores. A programação matemática tem a vantagem de fornecer a solução ótima para um problema, mas seu uso é muitas vezes desestimulado pelo consumo excessivo de tempo de processamento ou até mesmo pela dificuldade de se modelar determinados problemas. Por outro lado, os algoritmos heurísticos normalmente não garantem alcançar a solução ótima. Neste projeto são propostos alguns algoritmo híbridos baseados em programação matemática e heurísticas com o objetivo de explorar as vantagens de ambos na tentativa de solucionar alguns problemas de otimização combinatória. A presente investigação será fomentada a partir de três tipos de problemas de otimização combinatória: planarização de grafos, escalonamento e alocação. Estes serão os problemas fomentadores da investigação de algoritmos eficientes, com o objetivo de desenvolver novas técnicas/algoritmos que proporcionem avanços no projeto de algoritmos aplicados, também, para outros fins. Particularmente, os problemas de planarização de grafos são extremamente complexos de serem modelados por programação matemática. Nesse caso, será realizada uma investigação de algoritmos heurísticos baseados em st-numeração e árvores-PQ com o objetivo de encontrar subgrafos planares máximo, usando a invariante de apagamento de vértice. Além disso, investigar o uso da st-numeração na obtenção de grafos planares com o mínimo de cruzamentos em desenho linear. Dentro da linha de problemas de escalonamento, serão desenvolvidos e investigados alguns algoritmos heurísticos para solucionar problemas de emparelhamento em grafo multipartido com gargalo que surge em alguns problemas de escalonamento de pessoal. Nesta linha, será explorada a programação paralela/distribuída sobre um cluster de computadores através do uso de algoritmos populacionais. Além disso, investigar um problema ainda não explorado pela literatura que integra a programação de produção e escalonamento de pessoal de forma simultânea, envolvendo transporte de carga viva. Na linha de problemas de alocação serão investigados alguns algoritmos heurísticos, combinados com programação matemática, para um problema real de alocação de espaço físico em instituição de ensino. Para esse problema está sendo idealizado um novo modelo, denominado de Modelo Gravitacional, que também fará uso da resolução de emparelhamento num grafo multipartido com gargalo. Em suma, este projeto explorará algumas técnicas dentre as quais destacamos o uso de algoritmos bio-inspirados, algoritmo heurístico baseado em st-numeração e árvore PQ, algoritmos paralelos para cluster, além da modelagem por meio de grafos e programação matemática. A equipe que compõe este projeto é formada por três pesquisadores com experiência na área, sendo que os pesquisadores possuem dedicação exclusiva em suas instituições de origem, sendo elas, UEM, USP e UNESP. Além disso, estão envolvidos quatro alunos de mestrado, além de um aluno de iniciação científica e outros alunos de conclusão de curso. A meta central deste grupo de pesquisa é a produção científica de técnicas algorítmicas para problemas de otimização e em grafos. Como resultado final, esperamos contribuir para o conhecimento científico por meio de publicações em veículos de divulgação de impacto nacional e internacional. Os resultados preliminares e as experiências do grupo são indicadores para a conclusão do projeto.