2020 Faculty Courses School of Computing Undergraduate major in Mathematical and Computing Science
Combinatorial Algorithms
- Academic unit or major
- Undergraduate major in Mathematical and Computing Science
- Instructor(s)
- Hanna Sumita / Makoto Yamashita
- Class Format
- Lecture (Zoom)
- Media-enhanced courses
- -
- Day of week/Period
(Classrooms) - 5-6 Mon (W935) / 5-6 Thu (W935)
- Class
- -
- Course Code
- MCS.T322
- Number of credits
- 200
- Course offered
- 2020
- Offered quarter
- 4Q
- Syllabus updated
- Jul 10, 2025
- Language
- Japanese
Syllabus
Course overview and goals
This course will cover representative combinatorial optimization problems and their methods to solve the problems. Real world problems are modeled as optimization problems by extracting the vital constraints and objectives. It is practically important to solve the optimization problems efficiently. For this end, we need to investigate and utilize a specific property and structure of each problem. This course describes fundamental "combinatorial" optimization problems and their algorithms using their own properties. In addition, this course explains the theory on combinatorial structures and algorithms.
The aim of this course is to give knowledge on fundamental combinatorial optimization problems and their algorithms, and give mathematical tools to argue the performance of the algorithms.
Course description and aims
By the end of this course, students will be able to:
1) Recognize fundamental combinatorial optimization problems appearing in real world situations.
2) Have a vague idea of methods to solve those combinatorial optimization problems.
3) Explain roughly the performance of methods from a theoretical perspective.
Keywords
combinatorial optimization, algorithm, dynamic programming, modeling
Competencies
- Specialist skills
- Intercultural skills
- Communication skills
- Critical thinking skills
- Practical and/or problem-solving skills
Class flow
Basically each class focuses on one combinatorial optimization problem. Students learn its applications and methods to solve the problem.
Course schedule/Objectives
Course schedule | Objectives | |
---|---|---|
Class 1 | Introduction to combinatorial optimization | Evaluation of the grade will be explained |
Class 2 | Shortest path problem | |
Class 3 | Maximum matching problem | |
Class 4 | Maximum flow problem | |
Class 5 | Minimum flow problem | |
Class 6 | Stable marriage problem | |
Class 7 | Matroid | |
Class 8 | Knapsack problem and approximation algorithm | |
Class 9 | Knapsack problem and dynamic programming | |
Class 10 | Traveling salesman problem | |
Class 11 | Submodular maximization problem | |
Class 12 | Online problem | |
Class 13 | Secretary problem | Final report |
Class 14 | Recent topics | |
Class 15 | Recent topics |
Study advice (preparation and review)
To enhance effective learning, students are encouraged to spend approximately 100 minutes preparing for class and another 100 minutes reviewing class content afterwards (including assignments) for each class.
They should do so by referring to textbooks and other course material.
Textbook(s)
None required.
Reference books, course materials, etc.
B. Korte and J. Vygen, "Combinatorial Optimization: Theory and Algorithms", Springer, 2018.
M. Shigeno, "Network Optimization and Algorithms (ネットワーク最適化とアルゴリズム)", Asakura-Shoten, 2010. (Japanese)
Y. Kawahara and K. Nagano, "Submodular Optimization and Machine Learning (劣モジュラ最適化と機械学習)", Kodansya, 2015. (Japanese)
All course materials will be uploaded on OCW-i.
Evaluation methods and criteria
Students will be assessed on the final report and quizzes.
Related courses
- MCS.T302 : Mathematical Optimization
Prerequisites
No prerequisites are necessary, but enrollment in the related course (Mathematical Optimization) is desirable.