CS224: Advanced Algorithms - Introduction and Logistics
Jul 20, 2024
CS224: Advanced Algorithms
Introduction
Lecturer: Gelani Nelson
TF: Jeffrey (back of the class)
Contact: cs224 df14 D staff at Cās.harvard.edu
Course website: Google the course name or lecturer's name
Website contains a mailing list, sign up required
Course Logistics
**Grading Components:
Scribing (10%): Take turns taking notes, use recorded lectures and LWtech template from the website
Problem Sets (Psets) (60%): Must be in LWtech format and submitted via email, page limits enforced
Final Project (30%): Written project, details on website
Proposal due: October 30th
Project due: Last day of reading period
Students may be required to help with grading at least once during the semester
Students also need to sign up for scribing at least once, notes due by 9 AM the next day**
Questions and Clarifications
Concerns about scribing and grading logistics
Course Content Overview
**Comparison to CS124: Broad coverage of algorithms, different efficiency models and measures, more theory focused, no programming assignments (except final project which can be implementation-based)
Goals: Increase ability to analyze and create algorithms, introduce new techniques and models
Beyond running time and memory from CS124, introducing new parameters**
Models of Sorting and Predecessor Problem
Reviewed concepts of sorting:
Analyzing efficiency: beyond n log n for sorting
Models differ, including data structures for predecessor problems
Static Predecessor Problem: Data structure representing a set, supporting queries for the max element less than Z
Low space and fast query goals
Static: no insertions; Dynamic allows insertion and deletion
Discussed BSTs, emphasized logging query times
Van Emde Boas Trees (VEB Trees)
Efficient structure for dynamic predecessor problems:
Log W query and update time
O(U) space, improved to O(n) using hash tables
Insertion and Search Algorithm
Split elements into clusters, recursively manage clusters and summary
Handle minimum separately to optimize query and insertion algorithms
Analysis and Optimization
Recurrence relations analyzed for time and space, emphasizing improvements and the need for optimizations like hash tables
Dynamic Predecessor Data Structures
Various approaches discussed (including Fusion Trees and Y-Fast Trees)
Emphasis on linear space and optimal query times
Ram Model and Word Size Assumptions
Discussed additional operations available in the word RAM model
Constant time arithmetic, bitwise operations, bit shifting, multiplication assuming fit in two words
VEB Trees in Detail
Recursive definition and data layout
Methods for efficient insertion and searching, handling special scenarios like empty clusters
Space optimization via hash tables
Y-Fast and X-Fast Trees
Introduced by Willard (1983)
Combining hash tables and binary trees to achieve efficient space and time
Key techniques like binary search on ancestors in constant time
Additional Notes on Sorting
Improvements over n log n for non-comparison based sorting
Advanced algorithms: randomized and deterministic approaches
Upcoming Topics
Next class to cover Fusion Trees
Highlights optimal bounds for certain data structure operations
Key Takeaways
Course structure and grading expectations
Differences between CS224 and CS124
Overview of advanced sorting algorithms and data structures
In-depth look at VEB trees and their optimizations
Introduction to word RAM model and its implications