トップページへ

2021 Faculty Courses School of Computing Department of Mathematical and Computing Science Graduate major in Mathematical and Computing Science

Theory of Algorithms

Academic unit or major
Graduate major in Mathematical and Computing Science
Instructor(s)
Toshiya Itoh
Class Format
Lecture
Media-enhanced courses
-
Day of week/Period
(Classrooms)
3-4 Tue / 3-4 Fri
Class
-
Course Code
MCS.T405
Number of credits
200
Course offered
2021
Offered quarter
3Q
Syllabus updated
Jul 10, 2025
Language
English

Syllabus

Course overview and goals

This course covers problem-oriented algorithm design and analysis techniques. To this end, the instructor gives an overview of computational modell, complexity classes, polynomial-time reduction, and compete set of complexity classes. In addition to using computational complexity as a criterion, quality (accuracy and error rate) of output obtained from algorithms is also used as a criteria for designing algorithms for a variety of problems, while also performing theoretical analysis of the quality. The instructor will specifically show exponential time algorithms important for enumeration, typical randomized algorithms as examples of efficient algorithms, online algorithms for searching for good output from partial information, and greedy algorithms for problems with a special structure (general concept of independence), as well as perform theoretical analysis on them.

Course description and aims

At the end of this course, students will be able to:
1) design and analyze algorithms
2) understand efficiency measure of algorithms (time complexity and space complexity)
3) understand accuracy measure of algorithms (approximation ratio and competitive ratio)

Keywords

complexity, randomized algorithms, online algorithms, approximation algorithms, algebraic method, probabilistic method

Competencies

  • Specialist skills
  • Intercultural skills
  • Communication skills
  • Critical thinking skills
  • Practical and/or problem-solving skills

Class flow

Exercise problems are assigned (due next class) for homework every few classes to review the lesson content. The material is explained in the next lecture.

Course schedule/Objectives

Course schedule Objectives
Class 1

Computation model: Turing machine

Foundations on computation model

Class 2

Complexity Classes and polynomial-time reduction

Definition of complexity classes, Nodeterministic computation

Class 3

Natural NP-complete languages

Examples of natural NP complete languages

Class 4

[1] Randomized algorithms for equality of sequences
[2] Randomized algorithms for matrix products

[1] Number of zeros of multivariate polynomials and (total) degree of multivariate polynomials
[2] Orthogonality of nonzero vectors

Class 5

Randomized algorithms for maximum cut

Applications of linearity of expectations

Class 6

Derandomization for maximum cut

Applications of pairwise independence

Class 7

[1] Online algorithms for job assignment
[2] Online algorithms for caching

Examples of online algorithms

Class 8

Greedy algorithms for minimum spaning trees

An example of greedy algorithm

Class 9

Greedy algorithms for Matroids

Characterization of greedy algoritthm

Class 10

Approximation algorithms and approximation classes

Approximation ratio and performance ratio

Class 11

Metric traveling salesperson problem

Application of minimum spanning trees and Euler cycle

Class 12

Maximum knapsack problem

Polynomial-time approximation scheme

Class 13

Inapproximablity

Separation among approximation classes

Class 14

Mathematical Tools for Analysis

Examples of the algebraic method and the probabilistic method

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)

All materials are found on LMS(OCW-i) or are provides during class.

Reference books, course materials, etc.

1. Fedor V. Fomin and Dieter Kratsch, Exact Exponential Algorithms, Springer, 2010
2. Stasys Jukna, External Combinatorics, Springer, 2001.
3. Allan Borodin and Ran El-Yaniv, Online Computation and Competitive Analysis, Cambridge Univ. Press, 1998.
4. Noga Alon and Joel H. Spencer, The Probabilistic Method, 3rd eds, Wiley, 2008.

Evaluation methods and criteria

Students' course scores are determined by solutions to several homework assignments.

Related courses

  • MCS.T213 : Introduction to Algorithms and Data Structures
  • ICT.M215 : Discrete Structures and Algorithms
  • MCS.T322 : Combinatorial Algorithms

Prerequisites

No prerequisites are necessary, but basic knowledge on algorithms is expected.