404_lecture1a - Computer Science

Download Report

Transcript 404_lecture1a - Computer Science

UMass Lowell Computer Science 91.404
Analysis of Algorithms
Prof. Karen Daniels
Spring, 2004
Lecture 1
Introduction/Overview
Text: Chapters 1, 2
Wed. 1/28/04
Web PageWeb Page
http://www.cs.uml.edu/~kdaniels/courses/ALG_404.html
Nature of the Course


Core course: required for all CS majors
Advanced undergraduate level


Graduate students take separate course (91.503)
No programming required


“Pencil-and-paper” exercises
Lectures supplemented by:


Programs
Real-world examples
What’s It All About?

Algorithm:



steps for the computer to follow to solve a
problem
well-defined computational procedure that
transforms input into output
Some of our goals:





recognize structure of some common
problems
understand important characteristics of
algorithms to solve common problems
select appropriate algorithm to solve a
problem
tailor existing algorithms
create new algorithms
Some Algorithm Application Areas
Robotics
Bioinformatics
Geographic
Information Systems
Design
Analyze
Telecommunications
Apply
Computer
Graphics
Medical Imaging
Astrophysics
Some Typical Problems
Sorting
Input: Set of items
Problem: Arrange items “in
order”
Median finding
Input: Set of numbers or keys
Problem: Find item smaller than
half of items and bigger than
half of items
Minimum Spanning Tree
Input: Graph G = (V,E) with weighted
edges
Problem: Find subset of E of G of
minimum weight which forms a
tree on V
Shortest Path
Input: Edge-weighted graph G , with
start vertex and end vertex t
Problem: Find the shortest path from
to t in G
SOURCE: Steve Skiena’s Algorithm Design Manual
(for problem descriptions, see graphics gallery at http://www.cs.sunysb.edu/~algorith)
Tools of the Trade

Algorithm Design Patterns such as:
 divide-and-conquer

Data Structures such as:
 trees,

linked lists, hash tables, graphs
Algorithm Analysis Techniques
such as:
 asymptotic analysis
 probabilistic analysis
Summations
Proofs
Sets
Combinations
Growth of Functions
Permutations
MATH
Probability
Recurrences
Logarithms
Tools of the Trade: (continued)
Algorithm Animation
http://www.cs.brockport.edu/cs/java/apps/sorters/insertsortaniminp.html
What are we measuring?

Some Analysis Criteria:

Scope



“Dimension”


Upper? Lower? Both?
Type of Input


Time Complexity? Space Complexity?
Type of Bound


The problem itself?
A particular algorithm that solves the problem?
Best-Case? Average-Case? Worst-Case?
Type of Implementation

Choice of Data Structure
Prerequisites
Computing I (91.101)
 Computing II (91.102)
 Discrete Math I & II (92.321, 92.322)
 Statistics for Scientists and Engineers
(92.386)
 Calculus I-III (92.131-231)

Summations
Proofs
Sets
Combinations
Growth of Functions
Permutations
MATH
Probability
Recurrences
Logarithms
Course Structure: 4 Parts

Foundations


Sorting


Heapsort, Priority Queues, Quicksort, Sorting in Linear
Time
Data Structures


Analyzing & Designing Algorithms, Growth of Functions,
Recurrences, Probability & Randomized Algorithms
Stacks and Queues, Linked Lists, Introduction to Trees,
Hash Tables, Binary Search Trees, Balancing Trees: RedBlack Trees
Graph Algorithms

DFS, BFS, Topological Sort, MST, Shortest paths
Textbook
Required:
 Introduction
to Algorithms
 by
T.H. Corman, C.E. Leiserson, R.L. Rivest
 McGraw-Hill
New Edition
 2001
 ISBN 0-07-013151-1

see course web site (MiscDocuments) for errata (1st edition)
Ordered for UML bookstore
Syllabus (current plan)
Lecture Date
Topic
Reading
Foundations
Chapters 1-5
W 1/28
Introduction/Overview
Chapter 1
F 1/30, M 2/2, W 2/4
Analyzing & Designing Algorithms
Chapter 2
F 2/6, M 2/9, W 2/11
Growth of Functions
Chapter 3
F 2/13, W 2/18, Th 2/19
Recurrences
Chapter 4
F 2/20, M 2/23, W 2/25
Probability & Randomized Algorithms
Chapter 5
Sorting
Chapters 6-9
F 2/27, M 3/1
Heapsort/ Priority Queues
Chapter 6
W 3/3, F 3/5
Quicksort
Chapter 7
M 3/8, W 3/10
Review
Chapters 1-5
F 3/12
Midterm Exam
Chapters 1-5
M 3/22
Quicksort
W 3/24, F 3/26, M 3/29
Sorting in Linear Time
Chapter 8
Data Structures
Chapters 10-13
W 3/31, F 4/1, M 4/5
Stacks, Queues, Linked Lists, Trees
Chapter 10
W 4/7, F 4/9
Hash Tables
Chapter 11
M 4/12, W 4/16, F 4/18
Binary Search Trees
Chapter 12
W 4/21, F 4/23
Balancing Trees: Red-Black Trees
Chapter 13
Graph Algorithms
Chapters 22-24
M 4/26, W 4/28, M 5/3
Elementary Graph Algorithms
Chapter 22
W 5/5, F 5/7
Minimum Spanning Trees
Chapter 23
M 5/10
Shortest Paths
Chapter 24
W 5/12, F 5/14
Review
1-13, 15-16, 22-24
To Be Determined
Final Exam
1-13, 15-16, 22-24
CS Theory Math Review Sheet
The Most Relevant Parts...



p. 1
 O, Q, W definitions
 Series
 Combinations
p. 2 Recurrences &
Master Method
p. 3
 Probability
 Factorial
 Logs
 Stirling’s approx





p. 4 Matrices
p. 5 Graph Theory
p. 6 Calculus
 Product, Quotient
rules
 Integration,
Differentiation
 Logs
p. 8 Finite Calculus
p. 9 Series
Math fact sheet (courtesy of Prof. Costello) is on our web site.
Important Dates
Midterm Exam (Chapters 1-5):
 Final Exam:

Friday, 3/12
TBA
Grading
Homework
 Midterm (Chapters 1-5)
 Final Exam

35%
30%
35%
(open book, notes )
(open book, notes )