You are on page 1of 4

Algorithms: CS101

Course Entertainers: Murali and Prasanna


General References for this course
1. Introduction to Algorithms by Thomas H. Cormen, Charles E. Leiserson, Ronald
L. Rivest, and Clifford Stein.
2. Numerical Recipes: Press et al
3. Boyd: Convex Optimization
4. Bazzara-Sherali: Linear Programming
5. Sutton: Reinforcement Learning
6. Feller: Introduction to Probability Theory and Applications
7. Knuth: TAOCP
8. Writeup in PPT

Evaluation:
Course Project (20% +)
Part 1: 2 Assignments, 10%, 2 Tests 15%, Midterm 20%
Part 2: Assignments + Quizzes 20% End Term 15%

Table of Contents
Part 1 (August - September 2010)
Basic Algorithms and Techniques (Self Study)
1. Algorithms have to be evaluated along many criteria
2. Accuracy, asymptotics, mean/variance, power analysis, fault
tolerance
3. Illustration through several applications

Background Information for the course (1-2 lectures +


Self Study)
1. General Computer Systems and Processor Architecture
2. Quick Evaluations of Runtime
3. Floating Point on the Computer
4. Arbitrary Precision on the Computer
5. Combinatorics of Large Quantities
6. Queueing Theory
7. Measurement Basics
8. Linear Algebra
9. Fundamentals of Numerical Analysis: Condition Number of
Matrices
10. Multi-Criteria Optimization: Pareto Optimality
11. Software System Performance Analysis

1. Introduction to Algorithms

What is an algorithm? Turing machines and its connection to algorithm


Analysis of Algorithms Examples

2. Divide and Conquer Techniques

Quick Sort and Medians (Chapter 7 and 9)

3. Advanced Design and Analysis Techniques

Dynamic Programming, Greedy algorithms and Amortized analysis (Chapter 15, 16


and 17)

4. Graph Algorithms

Shortest path algorithms (Chapter 24 and 25)


Maximum Flow (Chapter 26)

5. Linear Programming (Chapter 29)

6. Number Theoretic Algorithms (Chapter 31)

7. String Matching (Chapter 32))


Part II (October and November): Optimization, Numerical
Analysis
Quick Review of Part I, and Extensions
• Enumeration of Large Sets, BFS/DFS/Chitrakavyas,
o Sampling on large sets
• Shortest Path and Network Flow Algorithms in the context of
Linear and Convex Optimization
o General Metrics L1, L2, L∞, etc.
o Introduction to separable and non-separable metrics
(Rockefellar et al)

Convex Optimization (Boyd - Lectures 1 to 4)


Linear Programming (advanced aspects only, basics already covered in Part I)
o Bazzara-Sherali, INFORMS tutorials
• Introduction to Interior Point Methods
o Gradient Descent Methods
• Convexity and Polynomial Time
o Non-Convex Problems and relation to NP-completeness
o Convex Approximation for Non Convex Problems

Algorithms Operating on Continuous Data: Numerical Methods

• Condition Number, LU/Cholesky Decomposition


• Solution of Equations, Linear/Non Linear
• Singular Value Decomposition
• Selected topics from
o Differential Equation, Quadratures
o Integral Equations and their Relation to Linear Equations
(Fredholm/Volterra Kernels)
o Partial Differential Equations (stability and accuracy
analysis only for a select few)

Algorithms Operating on random data: Statistical Algorithms


• Stratified/Importance Sampling revisited
• Generation of Random Numbers
• Generation of correlated Random Variates: NORTA
• Hypothesis Testing: t/F/Chi-Squared Tests
Advanced Dynamic Programming and learning theory

• An integrated treatement of Divide and Conquer, Dynamic


Programming and Machine learning algorithms
o Portions from Bertsekas - Dynamic Programming &
Optimal Control, Neuro Dynamic Progamming, Warren
Powell, and notes

Methods for Hard Problems, NP-completeness and Non-Convex


Problems
• Integer Linear Programming
o LP relaxation
o Branch and Bound, Cutting Plane Methods
• Simulated Annealing & Tabu Search
• Introductory Swarm Intelligence
• ADP and reinforcement learning revisited.

Part III: Applications (selected topics only – done throughout the


course)

A selection from

• Software Engineering
• Computational Finance
• Supply Chain Optimization:
• Uncertainty in Algorithms, Relation to Information Theory
• Stochastic/Robust Optimization and variants
• Bioinformatics

You might also like