What I am currently researching

  • Using Evolutionary Computation for Model Optimization

    Some engineering problems, such as exploration of oil reservoirs require the tuning of a complex simulation model. This essentially a reverse engineering problem where you compare the results of a proposed model with the observed real data, and try to find the best possible model.

    Because of hidden information and discontinuities in the models, evolutionary computation approaches are valuable. However, model simulation is time consuming, and we must find out how to get the most out of an search method when the cost of evaluation one solution is very high.

    This research is a cooperation with the Institute of Petroleum Engineering in Edinburgh.

  • Applications of Image Analysis using Machine Learning

    Yes, everyone else is doing it too :-). So I am focusing on two particular applications: The detection of cracks in concrete structures, and the detection of branches that need pruning in greenhouse plants.

    This research is done through the Center for Artificial Intelligence Research (C-AIR).

  • Understanding Evolutionary Algorithms through Component-Wise Design

    There are hundreds of nature-inspired meta-heuristics out there. I want to break them down to their component parts, and discover what really makes them tick. What is the real difference between the Pink-zebra optimization algorithm and the Spoon-Swarm-algorithm? Is it just a new selection parameter?

    And after we break down our toys, is it possible to put them all back together programatically?

    I am doing this research together with the fine people at ORCS laboratory. Work work!

  • Evolutionary Algorithms for Symbolic Problems Many successes in Evolutionary Algorithms (and other ML) has been achieved in real-valued optimization problems (specially regression). But there are a many important and interesting discrete problems (graph coloring, combinatory problems) that also need some love.

    Together with the folks at the Knowledge Systems laboratory, I have been working on adapting successes in real-valued problems to discrete problems, and finding out what works, and what doesn't.

  • Evolutionary Computation for Earthquakes There are many issues surrounding the studies of earthquakes: Is it possible to estimate the seismic risk in different regions? Is there a way to accurately simulate an earthquake evacuation in order to assist decision making process by public safety organizations?

    I have been exploring these and similar questions with Marcelo Ladeira from UNB

Some things that I would love to research if I had clones

  • Artificial Life -- Is it possible to make a computer program that could be said to be a living being? I'm not talking about people here... rather think of small mamals, insects, or even bacteria!
  • AI in Games -- Games are a fantastic platform for the development of general artificial intelligence. Not only playing games, but also making them, and supporting game makers.
  • Detecting and Preventing Abuse in Online Societies -- so that we can have nice things again.
  • Distributed Evolutionary Algorithms -- Evolutionary Algorithms are highly parallel, but there are not many implementations (libraries, packages) make full use of this fact. It would be interesting to develop a library for EC in HPC environments, see what problems show up, and what we can do to deal with them.
  • Automatically solving Programming Challenges using Genetic Programming
  • And other ideas...