DD2352, Algorithms and Complexity 2014, algokomp15

Course Information

Course leader and lecturer: Johan Karlander johank@nada.kth.se.

Course assistant: Mladen Miksa: miksa@kth.se.

Course literature

Kleinberg, Tardos; Algorithm Design, Pearson Addison-Wesley.

Learning outcomes

The goals of the course are to learn the students

so that they will be able to

Course content

Principles for construction of algorithms: Decomposition, Greedy algorithms, Dynamic programming. Algorithm analysis. Probalistic algorithms. Approximation. Selected applications to sets, graphs, arithmetic, and geometry.

Computability and complexity: Reduction. Complexity classes P (polynomial time), NP (non-deterministic polynomial time), NP-complete problems. Undecidable problems.

Examination

The examination has four parts.

Three of the parts are graded: Mas 1, Mas 2 and Exam. The final course grade will be the mean value of these grades where E count s as 1 and A counts as 5. In the first written phase the grade on the exam will be E, D or C. If you get grade C on the exam or if you pass the exam and has got at least C on both Mas 1 and Mas 2 you can do a complementary exam and raise the grade on the exam to B or A. On the complementary exam you can also raise the grade on Mas 1 and Mas 2. The form of the exam is like this: You get 1, 2 or 3 problems to solve depending on whether you want a higher grade on Mas 1, Mas 2 or the exam. You get one hour to think about the problems. Then you will present the solutions to the examiner.

Preliminary schedule for Mästarprov

Mästarprov 1 will be published 14/2 and shall be handed in 28/2.

Mästarprov 2 will be published 7/4 and shall be handed in 28/4.

If you have failed either Mas 1 or Mas 2 there will be extra versions of them to solve. They will be published May 12 and should be submitted latest May 26.

Schedule

This is a preliminary form. There could be small changes during the course.

Week Date Activity Topic Reading instructions
420/1Lecture 1Introduction. Graph Algorithms Ch. 1-3
21/1Lecture 2Greedy Algorithms Ch. 4 (Except 4.4)
22/1Exercise 1Algorithm Analysis
526/1Lecture 3Flow Algorithms. More about graph algorithms. Ch 7.1-7.3, 7.5, 4.4, 6.8-6.10
27/1Lecture 4Divide and Conquer Algorithms. Ch 5
29/1Exercise 2Divide and Conquer Algorithms
62/2Lecture 5Dynamic Programming Ch 6
5/2Lecture 6Dynamic Programming cont. Ch 6
6/2Exercise 3Dynamic Programming
79/2Lecture 7Introduction to Linear Programming Lecture notes. Extra material on Linear Programming. Can be found on Kurswebben.
11/2Lecture 8Probabilistic Algorithms and other algorithms Lecture notes
12/2Exercise 4Dynamic Programming cont.
13/2Lab 1Reporting of theory problems. Help session.
816/2Lecture 9Complexity. NP-problems. Ch 8
18/2Lecture 10NP-problems cont. Ch 8
19/2Exercise 5Flow Algorithms and Linear Programming.
20/2Lab 1Lab reporting
923/2Lecture 11Uncomputability. Lecture notes. Extra material on Uncomputability. Can be found on Kurswebben.
24/2Lecture 12Turing Machines. Computability. Lecture notes. Extra material on Turing Machines. Can be found on Kurswebben. (You must login.)
26/2Exercise 6NP-problems.
1430/3Lecture 13Approximation Algorithms Ch 11
31/3Exercise 7NP-problems. Uncomputability.
1613/4Lecture 14Approximation Algorithms cont. CH 13.1-13.5
14/4Exercise 8Approximation Algorithms.
16/4Lab 2Reporting of theory problems. Help session.
1720/4Lecture 15Probabilistic Algorithms. PSPACE-problems. Ch 9
21/4Exercise 9Repetition.
23/4SpelLab 2Lab reporting.
231/6V33,V35Exam