Genetic Programming of Autonomous Agents. Functional Description and Complete System Block Diagram. Scott O'Dell

Similar documents
Genetic Programming of Autonomous Agents. Functional Requirements List and Performance Specifi cations. Scott O'Dell

Machine Evolution. Machine Evolution. Let s look at. Machine Evolution. Machine Evolution. Machine Evolution. Machine Evolution

Genetic programming. Lecture Genetic Programming. LISP as a GP language. LISP structure. S-expressions

Research Article Path Planning Using a Hybrid Evolutionary Algorithm Based on Tree Structure Encoding

Evolutionary Computation. Chao Lan

How Santa Fe Ants Evolve

Evolutionary form design: the application of genetic algorithmic techniques to computer-aided product design

UNIVERSITY OF NORTH CAROLINA AT CHARLOTTE

4/22/2014. Genetic Algorithms. Diwakar Yagyasen Department of Computer Science BBDNITM. Introduction

Genetic Programming Prof. Thomas Bäck Nat Evur ol al ut ic o om nar put y Aling go rg it roup hms Genetic Programming 1

Reducing Graphic Conflict In Scale Reduced Maps Using A Genetic Algorithm

GENETIC ALGORITHM METHOD FOR COMPUTER AIDED QUALITY CONTROL

A More Stable Approach To LISP Tree GP

Genetic Algorithm Based Template Optimization for a Vision System: Obstacle Detection

CONCEPT FORMATION AND DECISION TREE INDUCTION USING THE GENETIC PROGRAMMING PARADIGM

Mutations for Permutations

Introduction to Genetic Algorithms

MINIMAL EDGE-ORDERED SPANNING TREES USING A SELF-ADAPTING GENETIC ALGORITHM WITH MULTIPLE GENOMIC REPRESENTATIONS

Genetic Algorithms. Kang Zheng Karl Schober

ADAPTATION OF REPRESENTATION IN GP

Genetic Algorithms for Vision and Pattern Recognition

Evolutionary Algorithms. CS Evolutionary Algorithms 1

Genetic Algorithms Applied to the Knapsack Problem

Escaping Local Optima: Genetic Algorithm

Chapter 5 Components for Evolution of Modular Artificial Neural Networks

The k-means Algorithm and Genetic Algorithm

Lecture 8: Genetic Algorithms

Applied Cloning Techniques for a Genetic Algorithm Used in Evolvable Hardware Design

Genetic Algorithms and Genetic Programming. Lecture 9: (23/10/09)

1 Lab + Hwk 5: Particle Swarm Optimization

Suppose you have a problem You don t know how to solve it What can you do? Can you use a computer to somehow find a solution for you?

Kyrre Glette INF3490 Evolvable Hardware Cartesian Genetic Programming

Evolving SQL Queries for Data Mining

Evolutionary origins of modularity

Local Search (Greedy Descent): Maintain an assignment of a value to each variable. Repeat:

Meta- Heuristic based Optimization Algorithms: A Comparative Study of Genetic Algorithm and Particle Swarm Optimization

Genetic Programming. and its use for learning Concepts in Description Logics

A Genetic Algorithm for Graph Matching using Graph Node Characteristics 1 2

Outline. Motivation. Introduction of GAs. Genetic Algorithm 9/7/2017. Motivation Genetic algorithms An illustrative example Hypothesis space search

GENETIC ALGORITHM with Hands-On exercise

A Steady-State Genetic Algorithm for Traveling Salesman Problem with Pickup and Delivery

A Comparative Study of Linear Encoding in Genetic Programming

Chapter 9: Genetic Algorithms

Planning and Search. Genetic algorithms. Genetic algorithms 1

Engineers and scientists use instrumentation and measurement. Genetic Algorithms for Autonomous Robot Navigation

Genetic Algorithms and Genetic Programming Lecture 9

Advanced Search Genetic algorithm

Genetic Programming: A study on Computer Language

Using Genetic Algorithms to Solve the Box Stacking Problem

Santa Fe Trail Problem Solution Using Grammatical Evolution

Self-learning Mobile Robot Navigation in Unknown Environment Using Evolutionary Learning

Evolving Teleo-Reactive Programs for Block Stacking using Indexicals through Genetic Programming

Fault Detection in Control Systems via Evolutionary Algorithms

Learning Strategies for Evolved Co-operating Multi-Agent Teams in Pursuit Domain

Automatic Programming with Ant Colony Optimization

Avida-ED Quick Start User Manual

INTELLIGENT GUIDE ROBOT

Review: Final Exam CPSC Artificial Intelligence Michael M. Richter

ARTIFICIAL INTELLIGENCE (CSCU9YE ) LECTURE 5: EVOLUTIONARY ALGORITHMS

Grid Scheduling Strategy using GA (GSSGA)

Evolving Variable-Ordering Heuristics for Constrained Optimisation

Automatic Generation of Prime Factorization Algorithms Using Genetic Programming

March 19, Heuristics for Optimization. Outline. Problem formulation. Genetic algorithms

Genetic Programming. Charles Chilaka. Department of Computational Science Memorial University of Newfoundland

Robot Path Planning Method Based on Improved Genetic Algorithm

A Systematic Study of Automated Program Repair: Fixing 55 out of 105 Bugs for $8 Each

Genetic Programming Part 1

Artificial Intelligence Application (Genetic Algorithm)

1 Lab 5: Particle Swarm Optimization

Genetic Placement: Genie Algorithm Way Sern Shong ECE556 Final Project Fall 2004

Evolving Efficient Security Systems Under Budget Constraints Using Genetic Algorithms

Introduction to Genetic Algorithms. Genetic Algorithms

EE631 Cooperating Autonomous Mobile Robots

Lecture 4. Convexity Robust cost functions Optimizing non-convex functions. 3B1B Optimization Michaelmas 2017 A. Zisserman

MATLAB Based Optimization Techniques and Parallel Computing

Genetic Algorithms Variations and Implementation Issues

IMPROVING A GREEDY DNA MOTIF SEARCH USING A MULTIPLE GENOMIC SELF-ADAPTATING GENETIC ALGORITHM

Evolution Evolves with Autoconstruction

Artificial Intelligence

Artificial Intelligence

Joe Buckner & Nir Chezrony

Introduction to Optimization

Evolutionary Art with Cartesian Genetic Programming

Genetic Algorithm for Dynamic Capacitated Minimum Spanning Tree

The Parallel Software Design Process. Parallel Software Design

Hybrid Adaptive Evolutionary Algorithm Hyper Heuristic

1. Introduction. 2. Motivation and Problem Definition. Volume 8 Issue 2, February Susmita Mohapatra

PATH PLANNING OF ROBOT IN STATIC ENVIRONMENT USING GENETIC ALGORITHM (GA) TECHNIQUE

Previous Lecture Genetic Programming

Solving the Travelling Salesman Problem in Parallel by Genetic Algorithm on Multicomputer Cluster

Background on Genetic Programming

Introduction to Genetic Algorithms. Based on Chapter 10 of Marsland Chapter 9 of Mitchell

Genetic algorithms in computer aided design

Segmentation of Noisy Binary Images Containing Circular and Elliptical Objects using Genetic Algorithms

3DUDOOHO*UDPPDWLFDO(YROXWLRQ

Chapter 2 BASIC CONCEPTS OF LINEAR GENETIC PROGRAMMING. 2.1 Representation of Programs

Evolving Controllers for Autonomous Agents Using Genetically Programmed Networks

Genetic Algorithm Performance with Different Selection Methods in Solving Multi-Objective Network Design Problem

Genetic Programming. Czech Institute of Informatics, Robotics and Cybernetics CTU Prague.

CS:4420 Artificial Intelligence

Transcription:

Genetic Programming of Autonomous Agents Functional Description and Complete System Block Diagram Scott O'Dell Advisors: Dr. Joel Schipper and Dr. Arnold Patton October 19, 2010

Introduction to Genetic Programming Genetic programming (GP) is a machine learning technique based on the theory of evolution. Solutions to a problem are discovered through combining small blocks of code and evaluating the result. The goal is to produce a program that performs a task specified by the designer. GP begins by producing a generation of random programs (genomes) composed of designer specified primitives. The primitives must be chosen to give the program sufficient perceptual, computational, and locomotive ability to effectively perform the task. Primitives that require arguments comprise the function set, while nodes without arguments comprise the terminal set. Each program can be represented by a tree made from the primitives in the function and terminal set, where each primitive is represented by a node. Program trees are the digital equivalent of genetic material. Figure 1 shows an example of a genome that was generated from primitives designed to evolve a wall-following vehicle. The 'if-wall-ahead' primitive evaluates the first subtree if there is currently a wall directly in front of the robot, or evaluates the second subtree otherwise. The primitives 'left', 'right', and 'forward' cause the robot to turn left, turn right, or move forward respectively. The program tree in figure 1 represents an ideal control program for a wall following robot that has a single sensor on its front face. Figure 1: Decision Tree for a wall-following Robot Primitives Function Set: {if-wall-ahead} Terminal Set: {right left forward}

GP continues by using a fitness function to evaluate how well each randomly generated program performs the task. A fitness function returns each program's fitness score. Programs with a higher fitness score are more likely to contribute their genetic material to the next generation. Fitness functions must correctly separate more fit from less fit individuals, even if all individuals are relatively unfit. The fitness for a wall-following example might be the number of unique, wall-adjacent cells visited during a simulation. GP then produces the next generation of programs using genetic operators. Members of the current generation are selected in proportion to their fitness. Genetic operators simulate sexual reproduction (crossover) by combining sections of 2 program trees into a new program tree, asexual reproduction (reproduction) by making an exact copy of a program tree, and biological mutation (mutation) randomly changing sections of a subtree. These genetic operators produce a new generation that behaves similarly to most fit individuals from the previous generation. Figure 2 shows an example of each genetic operator taking parent program trees and creating new offspring from the genetic material. The next generation of programs is evaluated by the fitness function and is used to produce another generation. This process of evaluation and reproduction repeats until a specified number of generations is produced. The output of a genetic programming sequence is the most fit individual produced during any generation of the run. Figure 2: Illustration of Genetic Operators Crossover Mutation Reproduction

Project Goals The purpose of this project is to use genetic programming to develop control programs for autonomous vehicles. The initial focus shall be to implement a genetic programming framework. This framework will be used to evolve a guard agent that maintains a secure perimeter around a base which is being approached by enemy agents. This goal has the potential military application of using autonomous agents to protect an area or escort a convoy. During early development, the project shall use crude, grid-based simulations to simplify the problem and to ascertain that the function set, terminal set, and fitness function are sufficient to meet the project's goals. As the project progresses, it shall use more complex simulators until the simulations approximate the continuous navigation and environmental noise of a physical autonomous agent. If time remains, the project shall focus on implementing the evolved programs on a physical system. Functional Description Initial simulations will take place in a grid-world environment similar to the one shown in figure 3. Enemy and guard agents each occupy one cell at a time and are allowed to turn left, turn right and move forward. As the simulations increase in complexity and more continuous movement is possible, the function set, terminal set, and fitness function shall be modified to allow the guard to evolve more complex behaviors. Figure 3: Visualization of Grid-World Simulator Running Perimeter Maintenance Simulation

Top Level The code written to connect the subcomponents shall be written in Ruby to simplify the process of interfacing subcomponents. If a simulator written in a different language becomes necessary as the project progresses, interface code will be written rather than reimplementing the entire system in the new language. Figure 4 shows the relation of software subcomponents. Figure 4: Top Level Software Architecture of Genetic Programming System

To begin the simulation, a function set, a terminal set, and reproduction parameters will be provided to the genetic programming evolutionary sequence (GPES) block, which will organize the progression of generations. The randomly produced genomes of the first generation will be passed to a fitness function block that handles communication between the GPES and simulator subcomponents. The genomes are used to control guard agents in the simulator. The interaction of guard, enemy, and base agents within the simulator will determine the fitness of the genome. These fitness scores are passed back to the GPES where a new generation will initialize genomes by performing genetic operations on genomes of the previous generation. This process will continue until generation N is evaluated for fitness. Simulator The simulator shall be used by the fitness function to produce a fitness score that represents a genome's effectiveness as a perimeter maintenance control program. It must be able to complete the following process: 1. Accept parameters to modify its size, simulation time, rules for collision, etc., 2. Accept genomes produced by the evolutionary sequence, 3. Use the genomes as a means of controlling an agent during the simulation, 4. Return an accurate fitness measure of the genome. Function and Terminal Set The following set is designed to be as small as possible to avoid redundancy (which adds inefficiency to the evolution process) while still allowing the agent to: know its distance from the base, move to catch enemies, make logical decisions based on sensor inputs. All these attributes are necessary to create sufficiently complex behavior. The function set includes: prog accepts 2 subtrees, evaluates the subtrees in sequence,

returns the value of the second evaluated subtree, allows multiple calculations and movements to be made each program iteration. ifgreater accepts 4 subtrees, evaluates the 3 rd or 4 th subtree based on the value of the 1 st and 2 nd subtrees, pseudo code: if(1 st > 2 nd ) then 3 rd else 4 th, returns the last evaluated subtree, allows agent to perform different actions based on sensor inputs. +, -, *, /, and % accept 2 subtrees, perform standard arithmetic calculation of evaluated subtree values, division by zero results in value '1', allows agent to develop complex input weighting systems. The terminal set includes: perim returns Manhattan distance from the base, allows agent make decisions according to its distance from the base. f, l, and r causes agent to move forward (f), turn left (l), or turn right (r), returns same value as perim. i returns random integer (0-6), generated during creation of genome, not during execution of program. Genome Class The genome class creates and stores program trees to be analyzed by the fitness function.

Objects created from this class must: Create random program trees from the function and terminal sets, Create inherited program trees from parents using crossover, mutation, and reproduction, Store an evaluated fitness value. Generation Class The generation class organizes the creation and storage of genome objects. Objects created from this class must: Store an array of genome objects that represent the generation's members, Create random genomes for the initial generation, Produce a new generation based on the previous generation, Identify the most fit individual in the generation. Genetic Programming Evolutionary Sequence Class The genetic programming evolutionary sequence class organizes the creation and storage of generation objects. Objects created from this class must: Store an array of generation objects that represent a genealogy, Organize the creation of generations with a specific number of genomes, Organize the creation of a specific number of generations, Send each genome to the fitness function for evaluation, Present the most fit individual produced by the sequence during any generation. Modifying the Specifications Genetic programming is known for its ability to discover ways to exploit the evolutionary framework to optimize fitness scores. These exploitations are often unforeseeable. Throughout development it may be necessary to make modifications to the entire system (particularly the fitness function / simulator) to coerce the system into providing results that are consistent with the project goal.