Projetos de Iniciação Científica e Mestrado:
No momento estou oferecendo algumas possibilidades para projetos de Iniciação Científica ou Mestrado. Todos os trabalhos enquadram-se na área de Métodos Numéricos e Métodos Computacionais de Otimização. Porém, poucos conhecimentos prévios são requeridos. Alguns conhecimentos desejáveis são, em geral, os adquiridos em disciplinas de graduação tais como Estruturas de Dados, Métodos Numéricos de Álgebra Linear, Programação Linear e Otimização Não-linear.
1) Implementação de uma ferramenta de Diferenciação Automática (DA)
Requisitos: Estruturas de Dados, compiladores e gostar de programar.
Resumo: DA é a aplicação automática da regra da cadeia para o cálculo de derivadas.  Partindo de uma função expressa em alguma linguagem de programação (C/C++ ou Fortran), uma ferramenta de diferenciação automática deverá gerar o código, na mesma linguagem, que calcula não só a função mas também as suas derivadas. Numa primeira etapa do projeto o aluno devera estudar as técnicas básicas de DA para logo se dedicar à implementação da ferramenta. Na etapa de implementação, alguns conhecimentos de compiladores são fortemente desejáveis. Uma das formas de implementar estas idéias e utilizando sobrecarga de operadores para que, por exemplo, a operação c= a + b calcule, não só a soma de a mais b, como também as derivadas parciais de c em função de a e b. Numa primeira etapa a ferramenta devera calcular derivadas de primeira ordem. Um objetivo mais ambicioso seria, numa etapa posterior, calcular derivadas de ordem superior. As aplicações de uma ferramenta deste tipo na área de otimização contínua são inúmeras.
2) Desenvolvimento de um software paralelo com interface gráfica para a estimação de constantes óticas. [Projeto completo]
Requisitos: Gostar de programar e saber alguma coisa de modo gráfico de alguma linguagem razoável que, de preferência, sirva para Linux/Unix e Windows.
Resumo: Recentemente tem sido desenvolvida uma metodologia que, utilizando um modelo de minimização irrestrita, estima constantes óticas de filmes finos. Esta ferramenta tem despertado o interesse de varios profissionais (físicos) que trabalham na área. Inclusive algumas pessoas já estão utilizando uma versão pouco amigável do software ou tentando desenvolver sua própria versão. A metodologia está em processo de patenteamento.  Por tudo isso existe um grande interesse em desenvolver uma interface gráfica que facilite a interação com o usuário, permita a entrada de dados e mostre, a cada passo, a evolução das estimativas. A metodologia de estimação está em constante desenvolvimento e a utilização de uma ferramenta deste tipo facilitaria e enriqueceria o aprimoramento da técnica. O algoritmo é altamente paralelizável.
3) Estudo de algoritmos paralelos em Álgebra Linear.
Requisitos: Ter gostado de MAC300 (Métodos Numéricos de Álgebra Linear) e ter alguma noção de paralelismo.
Resumo: Este projeto começaria com o estudo de algoritmos de álgebra linear simples e altamente paralelizáveis. Para tal fim, devem ser estudadas ferramentas de paralelismo tais como MPI ou PVM. A implementação paralela de uma decomposição LU para matrizes esparsas de grande porte considerando fill-in já seria de grande interesse. Porem, o intuito final do projeto é paralelizar o algoritmo descrito em (2).
4) Inserção dos métodos de otimização desenvolvidos pelo grupo na comunidade de otimização.
Requisitos: Ter paciência para fazer algumas interfaces de programas já feitos (pode ser interessante) e gostar de fazer páginas de Internet.
Resumo: Muitos novos métodos desenvolvidos pelo Grupo de Otimização tem se mostrado eficientes e competitivos. Porém, não são muitos os que tem sido utilizados pelas pessoas que se enfrentam com problemas de otimização nas suas áreas de atuação. Há dois coisas que poderiam ser feitas para atacar este ponto fraco: (i) desenvolver interfaces para que os métodos aceitem problemas descritos em linguagens standard (por exemplo AMPL) e (ii) tendo feito (i), inserir os métodos nos lugares onde os potenciais usuários procuram. Com respeito a este ultimo ponto, cada dia tem ficado mais popular e conhecido o NEOS-Server. Basicamente é uma página de Internet onde as pessoas submetem os seus problemas, eles são automaticamente resolvidos e as soluções enviadas. A idéia é que, uma vez adaptados para tal fim, os nossos métodos estejam disponíveis no NEOS-Server. Um objetivo um pouco mais simples poderia ser: desenvolver (i) e criar a nossa própria pagina se não conseguirmos que os métodos se encaixem nos padrões do NEOS-Server. Interfaces com Matlab que preservem intactas as implementações originais também permitiriam uma maior divulgação e interação com outros métodos.
5) Algoritmos para minimização irrestrita.
Requisitos: Precisa ter cursado Programação Linear (embora não seja necessário nenhum conhecimento específico de PL) e estar disposto a cursar Otimização não-linear.
Resumo: Trabalhos recentes tem mostrado que o método do Gradiente Espectral, para a minimização de funções sem restrições, é muito eficiente para problemas de grande porte. A cada passo do algoritmo, é realizada uma busca linear não-monotona na direção do gradiente com o passo espectral como primeiro candidato. Essa busca linear depende de um parâmetro M que, basicamente, diz que o próximo ponto deve ser melhor que o pior dos últimos M passos. Experimentos numéricos evidenciaram que, em problemas mal-condicionados, o desempenho do método depende fortemente da escolha do parâmetro M. Um trabalho recente sugere uma nova forma de escolher os parâmetros do Gradiente Espectral e afirma que o método com estes novos parâmetros é robusto com relação à escolha dos mesmos. Este trabalho consiste em estudar o método do Gradiente Espectral, implementar esta nova forma de escolher os parâmetros e verificar as afirmações feitas acima. Finalmente, estender estas modificações ao método do Gradiente Espectral Projetado que serve para minimizar funções restritas a conjuntos convexos e que, da mesma forma do método do Gradiente Espectral, é dependente da escolha do parâmetro M em problemas mal-condicionados.
6) Algoritmos para minimização em caixas.
Requisitos: Este projeto é só para Mestrado. Precisa ter cursado Programação Linear (embora não seja necessário nenhum conhecimento específico de PL), estar disposto a cursar Otimização não-linear. Parece adequado para um matemático aplicado.
Resumo: Recentemente foi desenvolvido um algoritmo de restrições ativas para a minimização de funções com restrições de caixa. O algoritmo utiliza o Gradiente Espectral Projetado para sair das faces e um algoritmo de minimização irrestrita desenvolvido por Zhang e Xu dentro delas. Este projeto consta de 2 partes independentes. A primeira consiste em fazer uma implementação para problemas esparsos de grande porte. A segunda etapa, opcional, consiste em substituir o método de Zhang e Xu para minimizar dentro das faces. Para isso, uma comparação deste método com um outro chamado Tridiagonal-Secant-Updates seria necessária.