Introduction

advertisement
CS223 Algorithms
D-Term 2013
Introduction
Instructor: Mohamed Eltabakh
WPI, CS
Slide 1
Lecture Outline
• Introduction and Definitions
• Example Problems
• Course Logistics
Slide 2
Definition
• An algorithm is a finite sequence of step by step,
discrete, unambiguous instructions for solving a
particular problem
– Receives input data
– Produces output data
– Each instruction can be carried out in a finite
amount of time in a deterministic way
Slide 3
Definition
• In simple terms, an algorithm is a series of
instructions to solve a problem (complete a task)
• We focus on Deterministic Algorithms
– Under the same input it must produce the
same output
input
Algorithm
output
Well defined sequence
of computer instructions
Slide 4
Two Key Properties
• Correctness
– An algorithm is correct if under all valid inputs, it produces
the correct output
• Efficiency
– Same problem can have many ways (algorithms) to solve it
– Which one is more efficient?
– Efficiency means:
Time
CPU
# of instructions
• How long will it take?
• How much storage will it need?
Space
Memory
Storage
Slide 5
CS223 Algorithms
D-Term 2013
Representative Problems
Slide 6
Problem Family I: Sorting
– Input
•
A list of unsorted values
– Output
•
The corresponding sorted list
77
42
35
12
101
5
12
35
42
77
5
B R U T E F O R C E
101
B C E E F O R R T U
The algorithm must know how to compare
values (<, =, or >)
Slide 7
Problem Family II: Searching
– Input
•
A list of values L, and a key (single value) K
– Output
•
The position in L that contain K (if exists)
77
42
35
12
101
Search
for 33?
5
Search
for C?
B R U T E F O R C E
5
12
35
42
77
101
Will it make a
difference if the
list is sorted ???
Slide 8
Problem Family III: Trees
– Input
•
A tree of values
– Different problems
•
•
•
Traverse the tree and list the values
Search for a value in the tree
Deletion from or insertion into the tree
Binary Tree
Can you notice
a certain order
in this tree?
Left  smaller than
Right  greater than
Binary Search Tree
Slide 9
Problem Family IV: Graphs
– Input
•
A graph of values G
– Different problems
•
•
•
Traverse the graph
Searching for a value in the graph
Shortest path from one node to another
What is the shortest path from F to B?
What is the shortest path from F to
all other nodes?
Find a minimum spanning tree?
Slide 10
Problem Family V: String Processing
– Input
•
One or multiple strings
– Different problems
•
•
•
Search for one string in another
Edit distance between strings
String alignment
Search for sentence “algorithms are fun”
Find the smallest difference between
this document and another document
Slide 11
Too Many Others
Protein
networks
DNA sequence
alignment
Matrix
multiplication
Scheduling
problem
Greatest Common
Divisor (GCD)
Nearest neighbor
(closest gas station
to me)
Slide 12
Algorithm Design Phases
Must give the correct
answer under all valid
inputs
-- Correctness?
-- Efficiency?
Analyze your algorithm
* How fast is it?
* Does it consume much
resources (CPU, memory,
disk, etc…)
-- What are the inputs?
-- What are the outputs?
-- What is the functionality?
-- Test you algorithm
-- Try different inputs
-- Check special and corner cases
-- Choose a language to implement your
algorithm (E.g., C, Java, Perl, etc…)
-- Correct implementation !!!
Slide 13
Course Outline (What You Will Learn)
• Algorithmic Strategies and Methodologies
– Tree and graph traversal, Greedy Algorithms, Dynamic
Programming, Divide and Conquer
• Problem Types/Families
– Sorting, Searching, Graph and Tree Algorithms, Scheduling and
Optimization, String Processing
• Algorithms on Different Data Structures
– Arrays, Trees, Queues, Graphs, Strings, Hash Tables, Linked Lists
• Analysis and Evaluation
– Coding and running algorithms,
– Analytical analysis using big-O notation
Slide 14
CS223 Algorithms
D-Term 2013
Course Logistics
Slide 15
Textbook
• Required
Introduction to Algorithms
T.H. Cormen, C.E. Leiserson, R.L. Rivest, and C. Stein.
Third Edition, MIT Press, 2009. ISBN 978-0-262-03384-8.
URL: Book Website
Available in bookstore
Several copies on
reserve in library
Slide 16
Course Logistics
• Website: http://web.cs.wpi.edu/~cs2223/d13
• Electronic WPI system: blackboard.wpi.edu
• Lectures
– MTRF (2:00pm - 2:50pm)
• Grading
– All assignments are
done individually
Slide 17
Tentative Scheduling
• Tentative scheduling for assignments, exams, and quizzes
– Visit the website: http://web.cs.wpi.edu/~cs2223/d13
• Late Submission Policy
– One-day late 10% off the max grade
– Two-day late  20% off the max grade
– Three-day late  30% off the max grade
– Beyond that  no late submission is accepted
Slide 18
Course Management
• Two systems will be maintained
– Web Page: http://web.cs.wpi.edu/~cs2223/d13
– Electronic WPI system: blackboard.wpi.edu
• Homework/Project submissions
– Either at the beginning of class on the due date
– Or electronically on blackboard.wpi.edu (Recommended)
• Viewing Grades
– On blackboard.wpi.edu
Slide 19
Office Hours
• Posted on the course web page
• Covers most days of the week
• Make use of them– they are there for YOU !
• Feel free to send me email or stop by my office
Slide 20
Programming Language
• In assignments, use a language of your choice
– Most students use either Java, C, or Python
• In lectures, I will use pseudocode closer to
Java or C
Slide 21
Slide 22
Download