Co-operative and Adaptive Algorithms

Semester: 

Spring

Offered: 

2023

There are many computational problems in our real life that are computable within a reasonable amount of time using a reasonable computing device. For this type of problems, we seek algorithms that can deterministically search for optimal solutions in reasonable time. On the other hand, there are problems that are hard, if not impossible, to compute, or complex enough to the extent that deterministic methods take too long to find solutions- even approximate solutions. Some of these problems are ill-conditioned, in the sense that a small change in the independent variables (inputs) causes a large change in the dependent variables, making it difficult for classical techniques to find the solution, even though we are certain that a solution exists. Examples of these problems are: circuit layout design, task allocation, task scheduling, transportation path planning, constraint satisfaction, game playing, to name a few. For most of these problems, the speed at which we get a 

solution is critical, and hence it is often acceptable to trade the solution exactness (accuracy, completeness, or precision) for speed. Furthermore, there are problems in our real life for which we lack proper models. Thus, devising algorithms for this type of problems using classical algorithmic strategies does not even apply.

In all such cases, good enough solutions is better than none at all. Therefore, we seek algorithms that can explore and exploit the problem solution space to find solutions that are practically acceptable. This pragmatic thinking of problem-solving has manifested itself into various untraditional problem-solving strategies or techniques, such as heuristic based, meta-heuristics-based techniques, and evolutionary or biologically inspired techniques.

The course starts by addressing ill-structured, ill-posed and well posed problems, and establish the need for computational intelligence methods for dealing with them. Several combinatorial and nonlinear problems will be highlighted and employed as uses cases. The course discusses the importance of proper problem formulation and algorithm adaptation. It introduces classical search algorithms, and the concepts of heuristics and metaheuristics and their use in conjunction with classical search methods. The course discusses how complex problems are approached using heuristics and metaheuristics-based techniques. The course also introduces the concepts of algorithmic cooperation and adaptation, and how they are influencing the emergence of methods for solving complex problems. The course illustrates how the concepts of cooperation and adaptation are manifested in nature and how such cooperative problem-solving models are inspiring new types of solution methods. Topics to be covered include search algorithms, deterministic as well heuristic/meta-heuristic based techniques, cooperation and adaptation and the concepts of supervised and unsupervised algorithm learning. It covers techniques such as neuro-computing, evolutionary computing, swarm intelligence, genetic algorithms, genetic programming, evolutionary strategies, ant-colony algorithms, particle swarm methods, and reinforcement learning methods. It discusses the use of these techniques in solving continuous and discrete complex problems that arise in various engineering applications. The course will discuss the importance of optimization in large scale engineering problems and discuss how the studied meta-heuristic techniques can be used in solving deep-learning optimization problems.

 

Related Materials