慶應義塾大学
2016年度 秋学期
Optimization Theory
Note: To read the HTML files below properly, you will need a
MathML-capable web browser. In my experience, only Firefox
handles this well. If you are using another browser, please use
the PDF versions of the lecture notes.
Concepts 概要
Some people view daily life itself as an optimization problem: how do
you get the most out of a set of limited resources, including time,
space, food, fuel, materials, or money? How do you find the best path
to a destination, or maximize the profit for your company? Some such
problems sound gauzy and vague. How can we turn those problems into
concrete formulations so that we can quantify success or failure? Are
there simple methods for finding optimal solutions, and how can we
prove that our solution is optimal? This class introduces the topics
in a form friendly those interested in everything from business to
computer networking to mathematics.
Objectives & Teaching method:
This class is a gentle introduction to optimization. Indeed, "A
Gentle Introduction to Optimization" is the title of the textbook.
This class will be a basic lecture format with regular homeworks.
Each homework set will be a few easily solved mathematical problems.
The students will select their own final project, which will form a significant fraction of the grade.
Advice:
Students are *strongly* encouraged to get, read and make use of the textbook.
Students are also strongly encouraged to take this class *after*
taking a basic class in linear algebra. The level of math expected
is uniform use of vectors and matrices; the concepts taught build a
strong theoretical and practical foundation, but the math itself
does not get harder over the course of the semester.
(Update: okay, so that proved to not be entirely true; once we get
to the last three weeks of the semester, we use derivatives and
partial derivatives when talking about gradient descent and related
topics. I do pause to explain the basic idea, but it's more of a
"refresher" than actual introduction, so if you don't know what a
derivative is, the last three lectures are likely to be opaque.
However, there are no required homeworks that depend on you
understanding derivatives.
SFC-SFS
page for this class.
Course Outline
教科書 Primary Textbook
(See a more complete list of resources below.)
B. Guenin, J. Könemann, L. Tunçel,
A Gentle Introduction to Optimization Theory
ISBN-13: 978-1107658790
ISBN-10: 1107658799
Lecture by Lecture
- Lecture 1:
Introduction
example applications
background: linear algebra
definition of linear programs
definition of integer programs
Lecture slides: PDF
- Lecture 2:
Problems on Graphs and in Networking
shortest path
spanning tree
perfect matching
Lecture notes: HTML, PDF, TEX
- Lecture 3:
Solving Linear Problems: Certificates
Infeasible problems and their certificates
Unbounded problems and their certificates
Certificates of optimality
Lecture notes: HTML, PDF, TEX
- Lecture 4:
Solving Linear Problems: The Simplex Algorithm
The simplex algorithm is one of the first modern algorithms, and is
surprisingly broadly applicable and durable, despite apparently
having theoretical drawbacks.
Lecture notes: HTML, PDF, TEX
- Lecture 5:
The Simplex Algorithm, Complete
Lecture notes: HTML, PDF, TEX
- Lectures 6 and 7:
Basic Ideas of Graphs, Dijkstra's Shortest Path First Algorithm
Several Minimum Spanning Tree Algorithms
Lecture notes: text file
Network graph: PDF, GraphViz
- Lecture 8:
A* Algorithm, Duality, and Minimum Spanning Tree Via Linear Algebra
Lecture notes: HTML, PDF, TEX
- Lectures 9 and 10:
Minimum Cost Perfect Matching in Bipartite Graphs and the Hungarian Algorithm
Lecture notes: HTML, PDF, TEX
- Lecture 11:
Computational Complexity
Lecture notes: PDF
- Lecture 12:
Basics of Non-Linear Programming (NLP) and
Advanced Techniques: Finding a Min/Max of a Function (Derivatives,
Gradient Descent, Newton's Method)
Lecture notes: HTML, PDF, TEX
- Lecture 13:
More on Non-Linear Programming (NLP): Probabilistic Outcomes and Meta-Heuristics
Newton's Method, Hill Climbing, Simulated Annealing, etc.
Lecture notes: HTML, PDF, TEX
- Lecture 14:
Pareto Optimality, Randomness and Sex, and a Wrap Up of the Semester
Lecture notes: HTML, PDF, TEX
宿題とノート
Homeworks and Additional Notes
These files are for your reference. In case of any differences,
the exact problems and due dates on SFS should be considered
definitive.
- Homework 1: Basic Matrix and Vector Operations
HTML, PDF, TEX
- Homework 2: Certificates, Standard Equality Form and Simplex Iteration
HTML, PDF, TEX
- Homework 3: Polytopes, Bases, and Canonical Form
HTML, PDF, TEX
- Pseudocode for the Simplex Algorithm
HTML, PDF, TEX
- Network graph: PDF, GraphViz
- Homework 4: Simplex in the Morning, Simplex in the Evening!
HTML, PDF, TEX
- Homework 5: Shortest Path from Dijkstra to OSPF
HTML, PDF, TEX
- Pseudocode for the Generic Bipartite Algorithm
HTML, PDF, TEX
- Pseudocode for Perfect Matching Algorithm
HTML, PDF, TEX
- Pseudocode for the Hungarian Algorithm
HTML, PDF, TEX
- OpenSCAD source for 3-D printing the basic saddle function is here
- OpenSCAD source for 3-D printing the "rough seas" function is here
- OpenSCAD source for 3-D printing Beale's function is here
Requirements
The course consists of fourteen ninety-minute classes. Students
are expected to read the material, contribute to classroom
discussions, and complete regular homework. A large-scale project
will contribute a big chunk of the grade.
成績の仕方
Grading
Your grade will be determined as follows:
- 授業の討論/Class participation: %
- 宿題/Homework: %
- 学期のプロジェクト/Term project: %
宿題の提出
Submitting Homework
This year, we will be managing homework through the SFC-SFS
system.
Term Project
You will complete a moderately large project during the
term.
Learning Resources (Textbooks and More)
- I use this book for simplex and background math in the first few
weeks of the semester, and the Hungarian algorithm when we talk
about minimum weight perfect matching on a bipartite graph:
B. Guenin, J. Könemann, L. Tunçel,
A Gentle Introduction to Optimization Theory
Links
to: Publisher, Amazon
- And of course this book (the standard text on algorithms) for some
of the graph algorithms:
Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest and Clifford Stein,
Introduction to Algorithms, Third Edition
Links
to: Publisher,
Amazon
-
And Russell and Norvig on AI, for the A* algorithm:
Stuart Russell and Peter Norvig,
Artificial Intelligence: A Modern Approach, 3e
Links
to: the authors' site, publisher, Amazon
(n.b.: There are several versions of this edition floating around, one
purporting to be the international edition, but it seems the
U.S. edition is the best.)
- This book is a good reference I’ve used while preparing some
material, but a little too heavy for an SFC class. I highly recommend
it for further study for those interested in the topic, though (and
it's cheap!):
Christos H. Papadimitriou and Kenneth Steiglitz,
Combinatorial Optimization: Algorithms and Complexity
Links to: Amazon
- One of these next two is the book that the prior instructor used
when teaching this in Japanese.
- I think it’s this one:
久保幹雄 (Mikio Kubo),
組み泡最適化とアルゴリズム (Kumiawase saitekika to arugorizumu)
Links to:
Amazon JP
- but it might have been this one:
久保幹雄 (Mikio Kubo) and 松井知己 (Tomomi Matsui),
組み合わせ最適化「短編集」 (Kumiawase saitekika [tanpenshuu])
Links to: Amazon JP
- Wikipedia has been helpful, but the quality is very uneven.
- For gradient descent, these sites have been helpful:
Also, there is an ad hoc list of test functions for global
optimizers:
Contacting Me/Office Hours/Class Notes
連絡先/オフィスアワー
If you need to contact me, email is the preferred method. Please put
"OPT:" in the Subject field of the email. If I do not respond to a
query within 24 hours, please resend. For more urgent matters, junsec
should know how to get ahold of me.
Office Hours, Fall 2016春のオフィスアウアー:Wednesday (水曜日),
10-12, Delta N211. You may come to my office during this time without
an appointment. If you wish to see me otherwise, you can attempt to
find me directly, or send me email to arrange an appointment.
The lecture notes for each week are posted in SFC-SFS shortly before
the lecture.
その他 Additional Information