This page is an outline of my research ideas. If you're looking for my publications list, follow this link.
My research interests touch the areas of Evolutionary Computation, Artificial Life and Multi-Agent Simulations.
Computer programs are, to me, more than just a series of instructions, or some useful application. A program running in a computer has something magical, something alive in the constant change of data and state that happens in the computing system. So it has always seemed possible to me to create a computational system that can cross the threshold between living and non-living systems.
How can we achieve these so called "artificial living systems"? I think that the way to do that is to retrace the steps of the one process proven to generate life from non-living systems: Natural Evolution. To obtain life in digital systems, we need to create the conditions for open-ended evolution in a computational system.
Evolutionary Computation (EC) is the study of replicating evolution in computational systems, and has existed since 1960's in several forms. The basic idea of EC is that a system capable of replication, variation, and selection is able to show robust evolutive behavior. EC has produced useful optimization algorithms for all sorts of hard engineering problems, and today is a tool of choice for things such as Operations Research, Product Design, and Space Exploration. There are many open questions about how to develop EC systems that are more efficient, robust, and useful for a variety of applications.
However, EC has not fulfilled the promise of computers that evolve into living systems. Application-oriented EC tends to converge to an optimal solution, and while this behavior is desirable for Engineers, it is not what we observe in nature. What is necessary for open-ended digital evolution to create Artificial Life (ALIFE)? I think that part of the solution lies in the digital environments where evolution takes place, and thus I'm interested in studying complex simulations of digital evolution. What are the attributes of an environment that promote the conditions for open-ended digital evolution to take place?
We can use the techniques of digital evolution simulation to create complex Multi Agent System (MAS) simulations of our society. These simulations can be used to study how people move and organize in their cities, how evacuations take place after natural disaters, and how disease spreads among people. MAS can help us visualize the past and the future, increase understanding of important social issues, and help us plan for the future.
Current Research Topics
These are topics that our group is either actively working at the moment, or I am very interested in following. If you are a student interested in joining our laboratory, do consider these themes (or themes related to these) when preparing your research plan.
- Component-Oriented EC: How to break down EC algorithms into their fundamental components? How to evaluate the similarity or dissimilarity of EC algorithms? How to choose the best components for a specific problem?
- Niche and Multi-Objective EC: How to use EC to solve problems when there are multiple competing solutions?
- Continuous Genetic Programming: How to create a GP system that improves over time and learns from its past experience? Can we make a GP system that can program competitively?
- Applications of EC: Applying Evolutionary computation to all sort of industry problems. Including Game AI, Art and procedural generation applications.
- EC Tooling: Improving free software EC tools. New libraries, benchmarks, tools, etc.
More detailed project pages: - Auto Adaptation on Multi-Objective Optimization, Automated Generation of Optimization Heuristics (FRANKEN); Reservoir Model Optimization;
- Evolution of Morphology in virtual creatures: Creating ALIFE simulations to observe and understand how evolution and environment can interact to create different body shapes and speciation.
- Environmental Evolution: Creating ALIFE simulations to understand how the environment affects the development of digital evolution. What is the necessary substrate for Open Ended Evolution in a digital realm?
- Program Creatures: Using programming itself as the embodiment of a digital creature. The environment substrate are raw computational resources. CODEWARS for the modern age.
Multi Agent Systems
- Mobility Focused City Simulation: We are developing a simulation of Tsukuba City (which can be transferred to other areas using Open Street Maps data) that includes evacuation from natural disasters, transmission of Epidemics, public transportation, and other things. There is a lot of work to be done here to make this simulation useful for a wide variety of people.
- Digital Archeology: Can we create a similar simulation of people many thousands of years in the past? We want to use Archeological Data, Biochemical markers, and ABMs to open a window into our past.
More detailed project pages: - Generation and Simulation of Artificial Cities;
Older Research Topics
These are some projects that I have worked on in the past, but I'm not currently putting effort on. I'd be happy to talk about these topics or even review some papers if time permits.
- Genetic Programming for Feature Construction, Extraction and Reduction;
- Optimization of models of Seismic Risk using Evolutionary Computation;
- Developing AI agents for the social game "Werewolf/Mafia" (More details)
"Lost Interest" topics
I have worked a lot on these topics in the past, but I'm not looking for new students in them.
- Portfolio Optimization with Evolutionary Computation;
- Industrial applications of Computer Vision (Crack detection, Fault detection, etc); (More details);