Evolutionary computing techniques solve optimization and design problems by mimicking the biological process of natural selection in silico. Candidate solutions are maintained in a population, and individually evaluated for fitness with respect to one or more objective criteria. Those solutions that are most fit are more likely to be retained and become the basis for further modification ((mutation) or recombination (mating) with other fit solutions. By rapid iteration of this simple process, the population as a whole gradually evolves towards candidate solutions that optimally address the objective criteria defined for the particular problem at hand.
Rachlin Research develops multi-agent evolutionary computing architectures whereby different agents, embodying specific algorithms, work collaboratively to improve overall population fitness. Such multi-agent approaches can readily be deployed in a cluster or multi-core environment, the details of which is the focus of my current research efforts.
These architectures can be deployed within a decision-support framework wherein human experts guide the evolutionary design process towards particular solutions or objectives deemed to be most critical. By combining the computational power of a search engine capable of generating potentially hundreds of thousands or even millions of candiate solutions with the expertise of a human problem solver, performances is improved while retaining overall flexibility.
Open research questions include:
How can we coordinate the activity of individual agents so to generate the most efficient and diverse solutions in the shortest period of time? These are meta-optimization problems that raise the possibility of using agent-based evolutionary computing approaches to identify system parameters that achieve an optimal balance with respect to various system performance criteria (efficiency, time, solution diversity, etc.)
How can we distribute and coordinate the activity of multiple population-generating centers across in a high-performance computing environment such as a cluster or a grid?
What kinds of adaptive strategies can be employed to enable individual agents to improve their performance over time?
What interactive techniques can be developed to enable users to more effectively guide the solution generation process towards particular solutions that address consideration particular to the individual application environment.
|