CS 472/572

From CS Wiki
Jump to: navigation, search

CS 472/572: Evolutionary Computation

Catalog Description: Solving computation problems by "growing" solutions; simulates natural evolution using analogies of mutation, crossover, and other genetic transformations on representations of potential solutions; standard EC techniques such as genetic algorithms and evolutionary programming, mathematical explanation of why they work, and a survey of some applications; the focus is on solving real-world problems using projects.

Type: CS 472 is a Technical Elective for CS majors. CS 572 is available for graduate credit.

Total Credits: 3

Course Coordinator: Terry Soule

URL: http://marvin.cs.uidaho.edu/Teaching/CS472/index.html

Prereq: CS 210

Textbook: Eiben and Smith, Introduction to Evolutionary Computing, Springer, 2010, or equivalent text.

Prerequisites by Topic:

  • Basic graph theory
  • Object-oriented programming skills
  • Recursion
  • Arrays and trees
  • Search algorithms
  • Parse trees and expression trees

Major Topics Covered

  1. Search and optimization (5 hours) (IS2)
  2. Genetic algorithms (5 hours)
  3. Evolutionary strategies (3 hours)
  4. Genetic programming and evaluation trees (3 hours) (PL8)
  5. Algorithms optimization – parameter choice (3 hours)
  6. Evolutionary algorithm theory (3 hours)
  7. Performance measures (3 hours)
  8. Particle swarm optimization and hybrids algorithms (3 hours)
  9. Constraint problems (3 hours) (IS2)
  10. Agent teams (2 hours) (IS6)
  11. Co-evolution (3 hours)

Course Outcomes

After taking CS 472/572, a student should:

  1. Be able to take a complex problem and design an appropriate evolutionary algorithm to solve it (or recognize why an evolutionary algorithm is not an appropriate solution). Including: (c)
    • Picking or designing an appropriate solution representation
    • Picking or designing an appropriate fitness function
    • Picking and designing an appropriate evolutionary algorithm
    • Picking or designing appropriate mutation, crossover, and selection operations
  2. Be able to write algorithms for: (k)
    • Local search (e.g. simulated annealing)
    • A genetic algorithm
    • A genetic program
  3. Understand: (k)
    • Fitness functions
    • Search landscapes
    • Epistasis
    • The concept of search neighborhoods
    • Problem representations