CSE 848 Syllabus, Evolutionary Computation, M W, 3:00-4:20,
1202 EGR, Fall 2017
Graduate survey course in Evolutionary Computation, with emphasis on
its use in search and optimization. Will concentrate on
fundamental aspects of Evolutionary Computation including history,
theory and application. Pre-requisites are CSE or ECE Grad standing or
permission of instructor (ECE majors, if you wish to have your
enrollment in this course appear on your record as ECE-848, enroll in
this section and then contact the ECE department when this class is completed.)
This is an introduction to Evolutionary Computation (EC) for graduate
students. It is intended as a fundamental introduction, as well as a
survey of the many aspects of evolutionary algorithms (EAs), in
particular GA, GP, ES, and will concentrate on the basic concepts of
representation, operators and overall control, followed by examples of
the use of these concepts in important applications. As such, this
course will not do much in-depth study of any one area. Rather the
course is intended as a good introduction for those who have had no
exposure to EC and as a stepping stone for those interested in more
specific areas. Instead of using any particular book as a textbook, we
shall try cover many key research papers related to EC. Students will
make class presentations on articles they are assigned or chosen to
present and also on their own term projects.
Wolfgang Banzhaf, Office: CMSE Department, 1508E, College of Engineering Bldg., phone
Email banzhafw AT msu DOT edu (preferred
means to communicate with me).
No required textbooks. Instead, we will be surveying
the literature. A number of papers will be uploaded at the course website http://www.cse.msu.edu/~cse848
as course notes.
However, you can always look for
papers anywhere that is appropriate. Remember, you have free access to
many resources through MSU's
Electronic Resources access point. Some recommended books for getting
additional materials are as follows:
Past GECCO proceedings are relevant for paper selection. However, you are
always free to look for papers anywhere that is appropriate. Remember, you
have free access to
many resources through MSU's
Electronic Resources access point.
- "Genetic Programming: An Introduction",
Banzhaf, Nordin, Keller and Francone, Morgan-Kaufmann
- "Linear Genetic Programming",
Brameier and Banzhaf, Springer
- "Multi-objective Optimization Using
Evolutionary Algorithms", Deb, Wiley
- "Introduction to Evolutionary
Computation", Eiben and Smith, Springer
- "Genetic Algorithms in Search, Optimization
and Machine Learning", Goldberg, Addison-Wesley
- "A Field Guide to Genetic
Programming", Poli, Langdon, and McPhee (on D2L)
- "Introduction to Genetic Algorithms",
Mitchell (on D2L )
The grading scheme will be as follows:
|Paper Presentation/Summary || 30% |
|Term Project Presentation/Report ||50% |
|Home Assignments || 20% |
There will be three components to the overall grading procedure. Some
home assignments will be posted on the course website and will be
announced in class. Students are expected to return solutions at the announced due
date. Some assignments may require computer coding and running
them to get results. There will be one paper presentation assignment in
which the student is expected to choose a suitable paper of interest
on EC, read it carefully, prepare a two-page summary and make a
presentation to the class. Finally,
students are also expected to do a term project, preferably in a group
of two formed by the students themselves. The project report will be
due on December 6 (Wed, last day of class) in class.
This is a graduate course, thus, all work is expected to be of
professional quality. Mature programming skills are expected, such as
in-program documentation (whenever asked to submit), style and completeness, and the projects will
be graded on these qualities as well as on their results.
In particular, students are expected to read the papers scheduled
for presentation before class. If the instructor feels that students are
not participating in class due to a lack of effort,
a midterm and/or a final might be scheduled to rectify the situation.
There is no late policy for grades. Anything turned in late gets 0%
credit unless excused under university policy.
Office hours will be established once the semester is underway.
There will be time at the beginning of class to answer questions that might
be of interest to the whole class, such as clarifications of assignments, etc.
Appointments outside of normal office hours are available on request
(preferably through email).
6.0 Course Topics
The following is the schedule of course topics. This may change as we
move through the material.
|Week 1: Intro to EC ||Week 8: Other Variants (EMO hybrids)|
|Week 2: Intro to EC & GAs ||Week 9: Neighboring Algorithms (ALife) |
|Week 3: More on GAs ||Week 10: Neighboring Algorithms (ALife)|
|Week 4: More on GAs ||Week 11: Paper Presentations |
|Week 5: Genetic Programming||Week 12: Paper Presentations |
|Week 6: Genetic Programming & Other Variants (ES/EP)||Week 13: Paper Presentations |
|Week 7: Other Variants (DE/EDA/PSO/ACO)||Week 14: Project Presentations |
| ||Finals Week: Project Presentations |
Each student will be required to make one paper presentation to the
class, and also to present a term project (preferably, in a group of two). The paper
presentations will last 15-20 minutes (including time for
questions). Presentations will be strictly timed, just as if being
done at a professional conference. You are advised to practice
your presentation before giving it, with the slide material you
will actually use, to make sure it does not take too long. Don't try to
memorize the presentation -- use the slides as clues about what you
should be talking about, but also (very important) don't just READ the
slides. You may use your laptop to make a presentation.
For the paper presentation, you will prepare a
two-page summary sheet that summarizes the paper to be presented and
is to be submitted before the presentation. This
summary should provide an overview of the important points of the paper, as
well as any background material that may be required. The summary
should address issues like the following:
- Briefly describe, the problem, in terms of inputs, outputs,
evaluation function etc.
- How well does the representation of the problem match the problem
itself? What is left out, what important aspects are represented? Is
there a better way?
- What special operators are provided for this problem? Were they
- Is EC the "best" way to solve this kind of problem? Is
computational complexity growth an issue?
expected to provide a copy of the paper and a two-page summary one
week before your scheduled presentation.
- What is the fundamental EC problem being addressed by the paper?
How does it relate to current EC approaches (is it a rehash)?
- Are the advantages clearly stated? Proven (empirically,
- Does the paper address the computationally complexity
The whole class is expected to read the paper before the
presentation. Lack of participation indicating papers are being unread
will result in a midterm over the topics covered in the papers.
You will turn in a proposal for your paper on 4 October 2017 (Wed.)
8.0 Term Project
There exist a number of toolsets on the internet, any of which you
can use to develop your project. You can even develop your own
toolset, but that is not recommended. For starters, you can look at
the MATLAB toolboxes, or ECJ out of George Mason, or HeuristicLab from
Upper Austria University of Applied Sciences. However, it is up to
You will turn in a proposal for your project on 9 October 2017 (Mon.)
in class. This early writeup should serve a an assurance that your project
has been properly selected and thought out.
On the last day of class (excluding the final exam period), December 6,
2017, you will submit a report that will detail the following:
Write this as if you were trying to publish results in a professional
journal. The evaluation of your report will be based on this viewpoint.
- problem description
- evaluation function (which did you write? what did it ignore?)
- operators used (and the rationale for using them [perhaps you tried many which should also
- any other nuances (parallelism, hybrid approach etc.)
- results (did it get the answer?, how long did it take?, what
variations did you try to get the best answer?, what's the
complexity?, show offline, online performance graphs etc.)
- comparison to other approaches on the problem.
One of two things must be true about your project problem:
Deliverables from your project include the final written report (due
on 06 December 2017), an oral presentation (during last week of
class or the scheduled examm time in finals week), and the code for your project.
- It is not one of the old stand-bys like traveling salesman, set
partitioning etc. Pick something different, more interesting
(complicated evaluation function, interesting representation, etc.).
- If it is an old stand-by problem, it is because you are testing out
a unique and interesting EC feature/approach and you want to benchmark
it against something known. This would be something like a new EC
A class directory has been established called http://www.cse.msu.edu/~cse848. All
handouts will be available in that directory for your convenience.
There is a forum on d2l for
discussions. Instructor will monitor and answer questions but it is also a
place for you to ask and answer questions amongst yourselves!
While an attempt has been made to lay out the course in advance, we
reserve the right to update/change this syllabus during the course of
The Department of Computer Science and Engineering and the Department of Electrical and Computer Engineering
expect all students to adhere to MSU's policy on Integrity of Scholarship and Grades, as stated in the
Academic Programs publication.
Last modified: Mon Aug 14 10:44:02 EDT 2017