IT540 Algorithms for Distributed Systems 3-0-0-3 Instructor: Prof Srikrishnan Divakaran Course Description: The first third of the course will overview basic graph theory, algorithm design and analysis techniques like dynamic programming, greedy algorithms and amortized analysis The next third of the course will cover both exact and approximation algorithms for network problems like shortest paths, spanning and steiner trees, matching, network flows, facility location and resource allocation from the perspective of combinatorial optimization The final third of the course will cover the design and analysis of concurrent algorithms for some of the above network problems Course Goals/Objectives Provide a rigorous introduction to advanced algorithm design and analysis techniques including greedy algorithms, dynamic programming, amortized analysis, and randomization; Provide a rigorous introduction to key graph and combinatorial algorithms for some of the network problems like shortest path, spanning trees, steiner trees, matching, network flows, resource allocation, load balancing, network design, and routing Overview some of the concurrent algorithms for some of the network problems mentioned above Course Requirements Every week there will be three hours of lecture Approximately one topic will be covered every two weeks and there will be a problem set assigned every two weeks The problem sets will help students to apply and master key combinatorial concepts in the design and analysis of graph and combinatorial algorithms for some of the problems in computer networks The problem sets are for practice and will not be graded There will be a mid term and a final exam both consisting of a written part and a viva voce Required Text: Introduction to Algorithms by Cormen, Leiserson, Rivest and Stein Reference Text: Introduction to Graph Theory by Douglas B West, Prentice Hall Approximation Algorithms for NP-Hard problems by Hochbaum, PWS publishing company Course Schedule and Tentative List of Topics (Topics are subject to some alterations depending on overall student background and interest) Topic Name Content (2 -3 lines per – lectures) No of lectures Overview of basic Overview of basic probability and basic combinatorial 10 combinatorics, graph techniques (parity argument, pigeon-hole principle, theory and graph inclusion-exclusion principle and coloring) with some algorithms applications, spanning trees, shortest paths, matching, graph coloring and flow and max cut problems Advanced Algorithm Dynamic programming, greedy algorithms, amortized Design and Analysis analysis Techniques Design and Analysis Exact and approximation algorithms for constrained 10 of Exact and versions of shortest path, spanning tree, steiner tree, max Approximation flow, min-cut, matching and resource allocation Algorithms for problems Network Problems Applications Applications of scheduling, packing, load balancing, resource allocation,virtual circuit routing, steiner tree, and facility location in network and protocol design 12 Grading: Everything for this class has (or will have) a point value At the end of the semester your grade is determined by the percentage of points you earned compared to the total points possible The point distribution is as follows: First Mid-term: 200 points Viva I 200 points Quizzes 100 points Final Viva 200 points Final Exam 300 points ... approximation algorithms for constrained 10 of Exact and versions of shortest path, spanning tree, steiner tree, max Approximation flow, min-cut, matching and resource allocation Algorithms for problems... routing, steiner tree, and facility location in network and protocol design 12 Grading: Everything for this class has (or will have) a point value At the end of the semester your grade is determined