Research conducted at NICAL, as suggested by its name, originated from the attempt to build Artificial Intelligence (AI) with inspirations gained from intelligent system in nature. While specific research topics may evolve over time, we are dedicated to the investigations on theory and design methodologies of nature-inspired algorithms, techniques, and systems, which covered various topics in evolutionary computation, machine learning, neural computation, etc.

On-going Research

Algorithm Evolution

Mimic the idea of natural evolution for automated design computer program has been hypothesized for long time, possibly since the birth of Computer Science of a subject for scientific research. This idea was later attempted in many forms for decades. We are investigating this issue with the aim to automatically evolve algorithms for hard optimization problems, such that the human efforts for the design, configuration and tuning of such algorithms, which has emerged as a significant challenge for many real-world AI systems, could be alleviated. [Further Reading]

Co-Evolving AI

No real-world AI system is deployed in a purely static environment. In other words, the system must be able to cope with the in-nature dynamics of the real world. Under the unified viewpoint of co-evolution between the AI systems and the environments, we investigate novel methods for AI to adequately adapt to the dynamic environments, both for learning and optimization purpose. [Further Reading]

Evolutionary Search for Graph Optimization

Graph is the most complex and fundamental data structure in Computer Science. In the past decade, many new arisen hard optimization problems are either defined on graph (e.g., problems arisen from social network analysis or complex network), or the required solution is represented as a graph (e.g., Causality Learning). Our research on this topic attempts to identify the common characteristics behind these challenging problems and to develop a unified approach to tackle them. [Further Reading]

Past Research

Scalable Evolutionary Optimization

Evolutionary Algorithms have been known as powerful optimization tools for decades. However, due to the curse of dimensionality, in most (if not all) cases, the performance of an EA would deteriorate rapidly with the increase of problem size (e.g., the number of decision variables of the target problem). Our research on Scalable Evolutionary Optimization aims to explore and develop general methodologies for scaling EAs up towards large-scale optimization problems. [Further Reading]

Learn to Optimize

Assume an algorithm is designed to tackle an optimization problem. It is seldom the case that the algorithm finds the solution in only one-shot, which almost means an analytical solution could be obtained and there is no need for algorithm. In other words, the algorithm typically interacts with the problem for many times before finally achieved a satisfactory solution. Thus, it is natural to ask whether the algorithm could automatically learn to better search for good solutions. We explored this very general idea in many aspects, such as learning a better (and dynamically changing) surrogate objective function on-the-fly, learning to adapt control parameters of the algorithm, or to identify more effective search operators during the search course. A number of novel methods have been established, especially for population-based optimization algorithms, such as Evolutionary Algorithms. [Further Reading]

Multi-objective Optimization

Real-world optimization problems usually contain multiple objectives. In the past few decades, multi-objective optimization has drawn considerable attention and a large number of algorithms have been proposed. However, current investigations are mainly examined on artificially constructed benchmarks and their application in practice has rarely been addressed. Thus, it is natural to ask whether existing approaches can still tackle real-world multi-objective optimization problems satisfactorily. Our research in this direction aims to advance the development of multi-objective optimization algorithms from theory to practice, and attempts have been made in some application areas such as multi-objective machine learning and social influence analysis. [Further Reading]

Arc Routing

Arc Routing Problem is a classic combinatorial optimization problem with wide real-world applications, such as post delivery, urban waste collection, bus route planning, and sanding or salting the streets. It is closely related (in some cases equivalent) to while generally more challenging than the Vehicle Routing Problem (VRP). Our research along this line aimed to develop novel algorithms (solvers) for ARP, and some of our solvers have been among the state-of-the-art algorithms for Capacitated Arc Routing Problems (CARP), in terms of both solution quality and efficiency. [Further Reading]