CP7102
ADVANCED DATA STRUCTURES AND ALGORITHMS L T P C
UNIT I
ITERATIVE AND RECURSIVE ALGORITHMS 9 Iterative Algorithms: Measures of
Progress and Loop Invariants-Paradigm Shift: Sequence of Actions
versus Sequence of Assertions- Steps to Develop an Iterative
Algorithm-Different Types of
Iterative Algorithms--Typical Errors-Recursion-Forward versus Backward- Towers of
Hanoi-Checklist for Recursive Algorithms-The Stack Frame-Proving Correctness
with Strong
Induction- Examples of Recursive Algorithms-Sorting and Selecting Algorithms- Operations
on Integers- Ackermann’s Function- Recursion on Trees-Tree Traversals- Examples-
Generalizing the Problem - Heap Sort and Priority Queues-Representing Expressions.
UNIT II
OPTIMISATION ALGORITHMS 9
Optimization
Problems-Graph Search Algorithms-Generic Search-Breadth-First Search- Dijkstra’s
Shortest-Weighted-Path -Depth-First Search-Recursive Depth-First Search-Linear Ordering
of a Partial Order- Network Flows and Linear Programming-Hill Climbing-Primal Dual Hill
Climbing- Steepest Ascent Hill Climbing-Linear Programming-Recursive Backtracking-Developing
Recursive Backtracking Algorithm- Pruning Branches-Satisfiability
UNIT III
DYNAMIC PROGRAMMING ALGORITHMS 9
Developing
a Dynamic Programming Algorithm-Subtle Points- Question for the Little Bird- Subinstances
and Subsolutions-Set of Substances-Decreasing Time and Space-Number of Solutions-Code.
Reductions and NP-Completeness-Satisfiability-Proving NP-Completeness- 3-Coloring-
Bipartite Matching. Randomized Algorithms-Randomness to Hide Worst
Cases- Optimization
Problems with a Random Structure.
UNIT IV
SHARED OBJECTS AND CONCURRENT OBJECTS 9
Shared
Objects and Synchronization -Properties of Mutual Exclusion-The Mora l- The Producer–Consumer
Problem -The Readers–Writers Problem-Realities of Parallelization- Parallel
Programming- Principles- Mutual Exclusion-Time- Critical Sections--Thread Solutions-The
Filter Lock-Fairness-Lamport’s Bakery Algorithm-Bounded Timestamps-Lower Bounds on
the Number of Locations-Concurrent Objects- Concurrency and Correctness- Sequential
Objects-Quiescent Consistency- Sequential Consistency-Linearizability- Formal Definitions-
Progress Conditions- The Java Memory Model
UNIT V
CONCURRENT DATA STRUCTURES 9
Practice-Linked
Lists-The Role of Locking-List-Based Sets-Concurrent Reasoning- Coarse- Grained
Synchronization-Fine-Grained Synchronization-Optimistic Synchronization- Lazy Synchronization-Non-Blocking
Synchronization-Concurrent Queues and the ABA Problem- Queues-A
Bounded Partial Queue-An Unbounded Total Queue-An Unbounded Lock-Free Queue-Memory
Reclamation and the ABA Problem- Dual Data Structures- Concurrent Stacks
and Elimination- An Unbounded Lock-Free Stack- Elimination-The Elimination Backoff
Stack
TOTAL :
45 PERIODS
REFERENCES:
1. Jeff
Edmonds, “How to Think about Algorithms”, Cambridge University Press, 2008.
2. M.
Herlihy and N. Shavit, “The Art of Multiprocessor Programming”, Morgan
Kaufmann,
2008.
3. Steven
S. Skiena, “The Algorithm Design Manual”, Springer, 2008.
4. Peter
Brass, “Advanced Data Structures”, Cambridge University Press, 2008.
5. S.
Dasgupta, C. H. Papadimitriou, and U. V. Vazirani, “Algorithms” , McGrawHill,
2008.
6. J.
Kleinberg and E. Tardos, "Algorithm Design“, Pearson Education, 2006.
7. T. H.
Cormen, C. E. Leiserson, R. L. Rivest and C. Stein, “Introduction to
Algorithms“,
PHI
Learning Private Limited, 2012.
8. Rajeev
Motwani and Prabhakar Raghavan, “Randomized Algorithms”, Cambridge
University
Press, 1995.
No comments:
Post a Comment