Nature inspired modelling and algorithms Xiaodong Li School of Computer Science and IT, RMIT University, Melbourne, Australia Email: xiaodong.li@rmit.edu.au URL: http://goanna.cs.rmit.edu.au/~xiaodong/ Topics • • • • • • • • Introduction to Evolutionary Computation (EC) Particle Swarm Optimization Differential Evolution Evolutionary Multiobjective Optimization Optimization in dynamic environments Coevolutionary models Multimodal Optimization (Niching) Large Scale Global Optimization What is EC about? • Evolutionary Computation is concerned with the use of simulated biological evolution to solve problems for which it can be difficult using traditional methods. This course will examine different models of evolutionary computation and the kinds of problems they can be used for. Where EC fits in AI? Web Mining Navigation Vision Planning Lisp Data Mining Factory Robots Games Evolutionary computation Manipulation Prolog Machine Learning Robotics Shells Programming Languages/Tools KE Env. Rules Heuristic Search Problem Solving Hardware SEARCH Semantic Nets Representation Methods Conceptual Graph Logic Synthesis AI Knowledge Acquisition Applications Neural Networks Vision Medical Imaging Industrial Inspection Object Recognition Scene Analysis Speech Recognition Written Database Query Machine Translation Agents Image Processing Applications Pattern Recognitions Natural Language Knowledge Representation Knowledge Engineering Expert Systems Simulated Annealing Optimization Mobile Agents Softbots & Games How do we run this course? • This course runs in a mix of lecture/seminar mode where key concepts are presented, and research articles are discussed and analysed. Each class will consist of 1 hour lecture and 1 hour discussion. • Students are expected to read the prescribed research papers before each class, and come to the class prepared to discuss the concepts and issues involved. • Students are expected to participate actively in the discussion, and to take it in turn to lead the discussion. Pre-requisite and assumed knowledge • Some knowledge of Artificial Intelligence; • You are required to have programming skills in Java, C, or C++, including basic data structures and algorithms; • Familiarity with Unix is strongly recommended. Learning objectives You will learn: • The basic principles and techniques of evolutionary algorithms and swarm intelligence. • How to apply these techniques to optimisation problems and problems that require machine learning. • How to compare different approaches to problems. • How to read research papers in the area and lead a discussion on current research issues. Assessment • Assignment#1: SGA-C programming and experimentation (30%) • Assignment#2: Research proposal (50%) • Discussion leadership (10%) • Discussion participation (10%) • No exam (presentations??) Discussion and Participation • Each student will be asked to lead the discussion at least once during the semester.This involves chairing the class discussion, and preparing and disseminating a set of focus questions to the class one week before the discussion takes place. • Students will be assessed on: -The quality of the focus questions proposed; -The ability to involve classmates in a scholarly discussion; -Evidence of careful preparation to facilitate useful discussion if interaction is stalled; • In the first class, we will provide an example of suitable questions for a demonstration study topic, and lead an example discussion. What is optimization? • Optimization is the process of making something better. • An engineer or scientist conjures up a new idea and optimization improves on that idea. • Optimization consists in trying variations on an initial concept and using the information gained to improve on the idea. Function to be optimized Airfoil Design Journey planning Vehicle routing Warehouse storage Six categories of optimization Examples of optimization problems • • • • • Aerodynamic design Vehicle routing Journey planning University timetabling etc Biological optimization • Nature does computation the best! • Natural Selection – survival of the fittest. • Evolution Theory by Charles Darwin. 4 premises of Evolution Theory • First, an offspring has many of the characteristics of its parents. This premise implies that the population is stable. • Second, there are variations in characteristics between individuals that can be passed from one generation to the next. • The third premise is that only a small percentage of the offspring produced survive to adulthood. • Finally, which of the offspring survive depends on their inherited characteristics. Flow chart of an EC EC is an optimization and search technique based on the principles of genetics and natural selection. Advantages of EC • • • • • • Optimizes with continuous or discrete variables, Doesn’t require derivative information, Simultaneously searches from a wide sampling of the cost surface, Deals with a large number of variables, Is well suited for parallel computers, Optimizes variables with extremely complex cost surfaces (they can jump out of a local minimum), • Provides a list of optimum variables, not just a single solution, • May encode the variables so that the optimization is done with the encoded variables, and • Works with numerically generated data, experimental data, or analytical functions. Binary Genetic Algorithms Flowchart of GA Cost surface Contour plot of the cost surface An ‘kangaroo’ analogy • Imagine that you fly a helicopter into Himalayas, and then parachuted hundreds of kangaroos into the region at random places. You hope that at least one of them will find Everest. • A genetic algorithm begins like the following - these kangaroos do not know that they are supposed to be looking for the top of a mountain. Every few years, you shoot the kangaroos at low altitudes and hope the ones that are left will be fruitful, multiply, and ascend. Current research suggests that fleas may be more effective than kangaroos in genetic algorithms, since their faster rate of reproduction more than compensates for their shorter hops. 26 De Jong function 2 27 Measuring performance 28 Questions for week 1 • • • • • • What is Evolutionary Computation, and what is it about? How does a Genetic Algorithm work? And Why? What sort of applications GAs can be used for? How to represent a problem? What are the GA parameters? How to setup a GA experiment and record the result? 29 Assignment 1 Due date: 9:30pm, Wednesday 25 March 2015 • You are required to use an existing program - SGA-C (see the handout) to solve at least two optimization problems of your choice. Recommended functions are De Jong’s test bed (see assignment#1 specs). • You need to modify the original SGA-C code in order to complete the required tasks. • You need to show your experimental results on a plotted graph (say using Excel spreadsheet, or gnuplot, jgraph). You should run your experiments with various setups, e.g., a low or high mutation probability (or crossover probability), a small or large population size. • You should write a brief report on analysis of the experimental results. • You need to hand in the assignment in hardcopy as well as a softcopy, to your class representative. You may be required to demonstrate your GA runs. 30 Readings on Genetic Algorithms • Randy I. Haupt and Sue Ellen Haupt. Practical Genetic Algorithms, Chapter 1 Introduction to Optimization, John Wiley and Sons New York, 1998. • Randy I. Haupt and Sue Ellen Haupt. Practical Genetic Algorithms, Chapter 2 The Binary Genetic Algorithms, John Wiley and Sons New York, 1998. You can download the above two chapters from the course QQ site.