SlideShare a Scribd company logo
Lecture 1:
  Introduction to Algorithms
         Steven Skiena

Department of Computer Science
 State University of New York
 Stony Brook, NY 11794–4400

http://www.cs.sunysb.edu/∼skiena
What Is An Algorithm?
Algorithms are the ideas behind computer programs.
An algorithm is the thing which stays the same whether the
program is in Pascal running on a Cray in New York or is in
BASIC running on a Macintosh in Kathmandu!
To be interesting, an algorithm has to solve a general,
specified problem. An algorithmic problem is specified by
describing the set of instances it must work on and what
desired properties the output must have.
Example: Sorting
Input: A sequence of N numbers a1 ...an
Output: the permutation (reordering) of the input sequence
such as a1 ≤ a2 . . . ≤ an.
We seek algorithms which are correct and efficient.
Correctness
For any algorithm, we must prove that it always returns the
desired output for all legal instances of the problem.
For sorting, this means even if (1) the input is already sorted,
or (2) it contains repeated elements.
Algorithm correctness is not obvious in many optimization
problems!
Robot Tour Optimization
Suppose you have a robot arm equipped with a tool, say a
soldering iron. To enable the robot arm to do a soldering job,
we must construct an ordering of the contact points, so the
robot visits (and solders) the points in order.
We seek the order which minimizes the testing time (i.e.
travel distance) it takes to assemble the circuit board.
Find the Shortest Robot Tour




You are given the job to program the robot arm. Give me an
algorithm to find the best tour!
Nearest Neighbor Tour
A popular solution starts at some point p0 and then walks to
its nearest neighbor p1 first, then repeats from p1 , etc. until
done.
Pick and visit an initial point p0
p = p0
i=0
While there are still unvisited points
       i=i+1
       Let pi be the closest unvisited point to pi−1
       Visit pi
Return to p0 from pi
Nearest Neighbor Tour is Wrong!




        -21                  -5   -1   0   1   3   11




        -21                  -5   -1   0   1   3   11




Starting from the leftmost point will not fix the problem.
Closest Pair Tour
Another idea is to repeatedly connect the closest pair of
points whose connection will not cause a cycle or a three-way
branch, until all points are in one tour.
Let n be the number of points in the set
d=∞
For i = 1 to n − 1 do
      For each pair of endpoints (x, y) of partial paths
             If dist(x, y) ≤ d then
                    xm = x, ym = y, d = dist(x, y)
      Connect (xm , ym) by an edge
Connect the two endpoints by an edge.
Closest Pair Tour is Wrong!
Although it works correctly on the previous example, other
data causes trouble:
A Correct Algorithm: Exhaustive Search
We could try all possible orderings of the points, then select
the one which minimizes the total length:
d=∞
For each of the n! permutations Πi of the n points
      If (cost(Πi) ≤ d) then
             d = cost(Πi) and Pmin = Πi
Return Pmin


Since all possible orderings are considered, we are guaranteed
to end up with the shortest possible tour.
Exhaustive Search is Slow!
Because it tries all n! permutations, it is much too slow to use
when there are more than 10-20 points.
No efficient, correct algorithm exists for the traveling
salesman problem, as we will see later.
Efficiency: Why Not Use a Supercomputer?
A faster algorithm running on a slower computer will always
win for sufficiently large instances, as we shall see.
Usually, problems don’t have to get that large before the faster
algorithm wins.
Expressing Algorithms
We need some way to express the sequence of steps
comprising an algorithm.
In order of increasing precision, we have English, pseu-
docode, and real programming languages. Unfortunately,
ease of expression moves in the reverse order.
I prefer to describe the ideas of an algorithm in English,
moving to pseudocode to clarify sufficiently tricky details of
the algorithm.
Algorithms problems must be carefully specified to allow a
provably correct algorithm to exist. We can find the “shortest
tour” but not the “best tour”.
%swallow
Selecting the Right Jobs
A movie star wants to the select the maximum number of
staring roles such that no two jobs require his presence at the
same time.
                          Tarjan of the Jungle                    The Four Volume Problem

              The President’s Algorist           Steiner’s Tree                         Process Terminated
                                           Halting State            Programming Challenges
            "Discrete" Mathematics                                                             Calculated Bets
The Movie Star Scheduling Problem
Input: A set I of n intervals on the line.
Output: What is the largest subset of mutually non-
overlapping intervals which can be selected from I?
Give an algorithm to solve the problem!
Earliest Job First
Start working as soon as there is work available:
EarliestJobFirst(I)
      Accept the earlest starting job j from I which
      does not overlap any previously accepted job, and
      repeat until no more such jobs remain.
Earliest Job First is Wrong!
The first job might be so long (War and Peace) that it prevents
us from taking any other job.
Shortest Job First
Always take the shortest possible job, so you spend the least
time working (and thus unavailable).
ShortestJobFirst(I)
      While (I = ∅) do
            Accept the shortest possible job j from I.
            Delete j, and intervals which intersect j from I.
Shortest Job First is Wrong!
Taking the shortest job can prevent us from taking two longer
jobs which barely overlap it.
First Job to Complete
Take the job with the earliest completion date:
OptimalScheduling(I)
     While (I = ∅) do
          Accept job j with the earliest completion date.
          Delete j, and whatever intersects j from I.
First Job to Complete is Optimal!
Other jobs may well have started before the first to complete
(x), but all must at least partially overlap each other.
Thus we can select at most one from the group.
The first these jobs to complete is x, so the rest can only block
out more opportunties to the right of x.
Demonstrating Incorrectness
Searching for counterexamples is the best way to disprove the
correctness of a heuristic.
 • Think about all small examples.
 • Think about examples with ties on your decision criteria
   (e.g. pick the nearest point)
 • Think about examples with extremes of big and small. . .
Induction and Recursion
Failure to find a counterexample to a given algorithm does
not mean “it is obvious” that the algorithm is correct.
Mathematical induction is a very useful method for proving
the correctness of recursive algorithms.
Recursion and induction are the same basic idea: (1) basis
case, (2) general assumption, (3) general case.
                     n
                          i = n(n + 1)/2
                    i=1

More Related Content

What's hot (10)

PPT
Introduction to NP Completeness
Gene Moo Lee
 
PPTX
Computability and Complexity
Edward Blurock
 
PPTX
Turing machine
MuhammadSamranTanvee
 
PDF
NP Complete Problems in Graph Theory
Seshagiri Rao Kornepati
 
PPTX
Np Completeness
Rajan Shah
 
PPT
lecture 27
sajinsc
 
PPT
Divide and conquer algorithm
CHANDAN KUMAR
 
PPTX
Notion of an algorithm
Nisha Soms
 
PPT
Greedy algorithm
CHANDAN KUMAR
 
PPT
2009 CSBB LAB 新生訓練
Abner Huang
 
Introduction to NP Completeness
Gene Moo Lee
 
Computability and Complexity
Edward Blurock
 
Turing machine
MuhammadSamranTanvee
 
NP Complete Problems in Graph Theory
Seshagiri Rao Kornepati
 
Np Completeness
Rajan Shah
 
lecture 27
sajinsc
 
Divide and conquer algorithm
CHANDAN KUMAR
 
Notion of an algorithm
Nisha Soms
 
Greedy algorithm
CHANDAN KUMAR
 
2009 CSBB LAB 新生訓練
Abner Huang
 

Viewers also liked (20)

PPTX
09 cv mil_classification
zukun
 
PPTX
10 cv mil_graphical_models
zukun
 
PDF
Skiena algorithm 2007 lecture22 np completeness challenge
zukun
 
PDF
Fcv hist lowe
zukun
 
PDF
Fcv poster ji
zukun
 
PDF
Fcv appli science_golland
zukun
 
PPT
Fcv taxo chellappa
zukun
 
PDF
Fcv acad ind_martin
zukun
 
PDF
Fcv scene efros
zukun
 
PPTX
Fcv scene lazebnik
zukun
 
PPTX
Fcv rep tenenbaum
zukun
 
PDF
Skiena algorithm 2007 lecture06 sorting
zukun
 
PPTX
Fcv rep a_berg
zukun
 
PDF
Fcv hum mach_belongie
zukun
 
PDF
Skiena algorithm 2007 lecture08 quicksort
zukun
 
PDF
04 structured support vector machine
zukun
 
PPTX
19 cv mil_temporal_models
zukun
 
PPTX
Fcv hum mach_t_berg
zukun
 
PPT
CVPR2012: Tutorial: Graphcut-based Optimisation for Computer Vision
zukun
 
PPT
Pp présentation apsad 93 part1
gorbi94
 
09 cv mil_classification
zukun
 
10 cv mil_graphical_models
zukun
 
Skiena algorithm 2007 lecture22 np completeness challenge
zukun
 
Fcv hist lowe
zukun
 
Fcv poster ji
zukun
 
Fcv appli science_golland
zukun
 
Fcv taxo chellappa
zukun
 
Fcv acad ind_martin
zukun
 
Fcv scene efros
zukun
 
Fcv scene lazebnik
zukun
 
Fcv rep tenenbaum
zukun
 
Skiena algorithm 2007 lecture06 sorting
zukun
 
Fcv rep a_berg
zukun
 
Fcv hum mach_belongie
zukun
 
Skiena algorithm 2007 lecture08 quicksort
zukun
 
04 structured support vector machine
zukun
 
19 cv mil_temporal_models
zukun
 
Fcv hum mach_t_berg
zukun
 
CVPR2012: Tutorial: Graphcut-based Optimisation for Computer Vision
zukun
 
Pp présentation apsad 93 part1
gorbi94
 
Ad

Similar to Skiena algorithm 2007 lecture01 introduction to algorithms (20)

PDF
lecture1 .pdf introduction to algorithms
kero01289992383
 
PDF
Bt0080 fundamentals of algorithms1
Techglyphs
 
PDF
Data Analysis and Algorithms Lecture 1: Introduction
TayyabSattar5
 
PPT
Design and analysis of algorithm in Computer Science
secularistpartyofind
 
PPTX
Lecture-1-Algorithms.pptx
xalahama3
 
PPT
Perform brute force
SHC
 
PDF
Algorithms - A Sneak Peek
BADR
 
PPTX
ch03-2018.02.02.pptx
SYAMDAVULURI
 
PDF
Algorithms
Ramy F. Radwan
 
PPTX
L1_DatabAlgorithm Basics with Design & Analysis.pptx
dpdiyakhan
 
PPTX
AI-04 Production System - Search Problem.pptx
Pankaj Debbarma
 
PPTX
a581a6a2cb5778045788f0b1d7da1c0236f.pptx
christinamary2620
 
PDF
Algorithms
suzzanj1990
 
PPT
Alg1
luzenith_g
 
PPT
daa_unit THIS IS GNDFJG SDGSGS SFDF .ppt
DrKBManwade
 
PPT
Introducción al Análisis y diseño de algoritmos
luzenith_g
 
PPTX
DESIGN AND ALGORITHM.pptx BCA BANGALORECITY UNIVERSITY
AneetaGrace1
 
PPT
data unit notes from department of computer science
sdcmcatmk
 
PDF
Data structures and algorithms
Adriano Patrick Cunha
 
PDF
Algorithm Design and Analysis
Sayed Chhattan Shah
 
lecture1 .pdf introduction to algorithms
kero01289992383
 
Bt0080 fundamentals of algorithms1
Techglyphs
 
Data Analysis and Algorithms Lecture 1: Introduction
TayyabSattar5
 
Design and analysis of algorithm in Computer Science
secularistpartyofind
 
Lecture-1-Algorithms.pptx
xalahama3
 
Perform brute force
SHC
 
Algorithms - A Sneak Peek
BADR
 
ch03-2018.02.02.pptx
SYAMDAVULURI
 
Algorithms
Ramy F. Radwan
 
L1_DatabAlgorithm Basics with Design & Analysis.pptx
dpdiyakhan
 
AI-04 Production System - Search Problem.pptx
Pankaj Debbarma
 
a581a6a2cb5778045788f0b1d7da1c0236f.pptx
christinamary2620
 
Algorithms
suzzanj1990
 
daa_unit THIS IS GNDFJG SDGSGS SFDF .ppt
DrKBManwade
 
Introducción al Análisis y diseño de algoritmos
luzenith_g
 
DESIGN AND ALGORITHM.pptx BCA BANGALORECITY UNIVERSITY
AneetaGrace1
 
data unit notes from department of computer science
sdcmcatmk
 
Data structures and algorithms
Adriano Patrick Cunha
 
Algorithm Design and Analysis
Sayed Chhattan Shah
 
Ad

More from zukun (20)

PDF
My lyn tutorial 2009
zukun
 
PDF
ETHZ CV2012: Tutorial openCV
zukun
 
PDF
ETHZ CV2012: Information
zukun
 
PDF
Siwei lyu: natural image statistics
zukun
 
PDF
Lecture9 camera calibration
zukun
 
PDF
Brunelli 2008: template matching techniques in computer vision
zukun
 
PDF
Modern features-part-4-evaluation
zukun
 
PDF
Modern features-part-3-software
zukun
 
PDF
Modern features-part-2-descriptors
zukun
 
PDF
Modern features-part-1-detectors
zukun
 
PDF
Modern features-part-0-intro
zukun
 
PDF
Lecture 02 internet video search
zukun
 
PDF
Lecture 01 internet video search
zukun
 
PDF
Lecture 03 internet video search
zukun
 
PDF
Icml2012 tutorial representation_learning
zukun
 
PPT
Advances in discrete energy minimisation for computer vision
zukun
 
PDF
Gephi tutorial: quick start
zukun
 
PDF
EM algorithm and its application in probabilistic latent semantic analysis
zukun
 
PDF
Object recognition with pictorial structures
zukun
 
PDF
Iccv2011 learning spatiotemporal graphs of human activities
zukun
 
My lyn tutorial 2009
zukun
 
ETHZ CV2012: Tutorial openCV
zukun
 
ETHZ CV2012: Information
zukun
 
Siwei lyu: natural image statistics
zukun
 
Lecture9 camera calibration
zukun
 
Brunelli 2008: template matching techniques in computer vision
zukun
 
Modern features-part-4-evaluation
zukun
 
Modern features-part-3-software
zukun
 
Modern features-part-2-descriptors
zukun
 
Modern features-part-1-detectors
zukun
 
Modern features-part-0-intro
zukun
 
Lecture 02 internet video search
zukun
 
Lecture 01 internet video search
zukun
 
Lecture 03 internet video search
zukun
 
Icml2012 tutorial representation_learning
zukun
 
Advances in discrete energy minimisation for computer vision
zukun
 
Gephi tutorial: quick start
zukun
 
EM algorithm and its application in probabilistic latent semantic analysis
zukun
 
Object recognition with pictorial structures
zukun
 
Iccv2011 learning spatiotemporal graphs of human activities
zukun
 

Recently uploaded (20)

PPTX
Designing Production-Ready AI Agents
Kunal Rai
 
PPTX
AUTOMATION AND ROBOTICS IN PHARMA INDUSTRY.pptx
sameeraaabegumm
 
PDF
DevBcn - Building 10x Organizations Using Modern Productivity Metrics
Justin Reock
 
PDF
Smart Trailers 2025 Update with History and Overview
Paul Menig
 
PPTX
COMPARISON OF RASTER ANALYSIS TOOLS OF QGIS AND ARCGIS
Sharanya Sarkar
 
PDF
Mastering Financial Management in Direct Selling
Epixel MLM Software
 
PDF
Reverse Engineering of Security Products: Developing an Advanced Microsoft De...
nwbxhhcyjv
 
PPTX
OpenID AuthZEN - Analyst Briefing July 2025
David Brossard
 
PPTX
AI Penetration Testing Essentials: A Cybersecurity Guide for 2025
defencerabbit Team
 
PDF
Newgen Beyond Frankenstein_Build vs Buy_Digital_version.pdf
darshakparmar
 
PPTX
Future Tech Innovations 2025 – A TechLists Insight
TechLists
 
PPTX
Webinar: Introduction to LF Energy EVerest
DanBrown980551
 
PDF
Transcript: New from BookNet Canada for 2025: BNC BiblioShare - Tech Forum 2025
BookNet Canada
 
PDF
CIFDAQ Market Wrap for the week of 4th July 2025
CIFDAQ
 
PDF
The Rise of AI and IoT in Mobile App Tech.pdf
IMG Global Infotech
 
PDF
POV_ Why Enterprises Need to Find Value in ZERO.pdf
darshakparmar
 
PDF
[Newgen] NewgenONE Marvin Brochure 1.pdf
darshakparmar
 
PDF
CIFDAQ Market Insights for July 7th 2025
CIFDAQ
 
PPTX
The Project Compass - GDG on Campus MSIT
dscmsitkol
 
PPTX
WooCommerce Workshop: Bring Your Laptop
Laura Hartwig
 
Designing Production-Ready AI Agents
Kunal Rai
 
AUTOMATION AND ROBOTICS IN PHARMA INDUSTRY.pptx
sameeraaabegumm
 
DevBcn - Building 10x Organizations Using Modern Productivity Metrics
Justin Reock
 
Smart Trailers 2025 Update with History and Overview
Paul Menig
 
COMPARISON OF RASTER ANALYSIS TOOLS OF QGIS AND ARCGIS
Sharanya Sarkar
 
Mastering Financial Management in Direct Selling
Epixel MLM Software
 
Reverse Engineering of Security Products: Developing an Advanced Microsoft De...
nwbxhhcyjv
 
OpenID AuthZEN - Analyst Briefing July 2025
David Brossard
 
AI Penetration Testing Essentials: A Cybersecurity Guide for 2025
defencerabbit Team
 
Newgen Beyond Frankenstein_Build vs Buy_Digital_version.pdf
darshakparmar
 
Future Tech Innovations 2025 – A TechLists Insight
TechLists
 
Webinar: Introduction to LF Energy EVerest
DanBrown980551
 
Transcript: New from BookNet Canada for 2025: BNC BiblioShare - Tech Forum 2025
BookNet Canada
 
CIFDAQ Market Wrap for the week of 4th July 2025
CIFDAQ
 
The Rise of AI and IoT in Mobile App Tech.pdf
IMG Global Infotech
 
POV_ Why Enterprises Need to Find Value in ZERO.pdf
darshakparmar
 
[Newgen] NewgenONE Marvin Brochure 1.pdf
darshakparmar
 
CIFDAQ Market Insights for July 7th 2025
CIFDAQ
 
The Project Compass - GDG on Campus MSIT
dscmsitkol
 
WooCommerce Workshop: Bring Your Laptop
Laura Hartwig
 

Skiena algorithm 2007 lecture01 introduction to algorithms

  • 1. Lecture 1: Introduction to Algorithms Steven Skiena Department of Computer Science State University of New York Stony Brook, NY 11794–4400 http://www.cs.sunysb.edu/∼skiena
  • 2. What Is An Algorithm? Algorithms are the ideas behind computer programs. An algorithm is the thing which stays the same whether the program is in Pascal running on a Cray in New York or is in BASIC running on a Macintosh in Kathmandu! To be interesting, an algorithm has to solve a general, specified problem. An algorithmic problem is specified by describing the set of instances it must work on and what desired properties the output must have.
  • 3. Example: Sorting Input: A sequence of N numbers a1 ...an Output: the permutation (reordering) of the input sequence such as a1 ≤ a2 . . . ≤ an. We seek algorithms which are correct and efficient.
  • 4. Correctness For any algorithm, we must prove that it always returns the desired output for all legal instances of the problem. For sorting, this means even if (1) the input is already sorted, or (2) it contains repeated elements. Algorithm correctness is not obvious in many optimization problems!
  • 5. Robot Tour Optimization Suppose you have a robot arm equipped with a tool, say a soldering iron. To enable the robot arm to do a soldering job, we must construct an ordering of the contact points, so the robot visits (and solders) the points in order. We seek the order which minimizes the testing time (i.e. travel distance) it takes to assemble the circuit board.
  • 6. Find the Shortest Robot Tour You are given the job to program the robot arm. Give me an algorithm to find the best tour!
  • 7. Nearest Neighbor Tour A popular solution starts at some point p0 and then walks to its nearest neighbor p1 first, then repeats from p1 , etc. until done. Pick and visit an initial point p0 p = p0 i=0 While there are still unvisited points i=i+1 Let pi be the closest unvisited point to pi−1 Visit pi Return to p0 from pi
  • 8. Nearest Neighbor Tour is Wrong! -21 -5 -1 0 1 3 11 -21 -5 -1 0 1 3 11 Starting from the leftmost point will not fix the problem.
  • 9. Closest Pair Tour Another idea is to repeatedly connect the closest pair of points whose connection will not cause a cycle or a three-way branch, until all points are in one tour. Let n be the number of points in the set d=∞ For i = 1 to n − 1 do For each pair of endpoints (x, y) of partial paths If dist(x, y) ≤ d then xm = x, ym = y, d = dist(x, y) Connect (xm , ym) by an edge Connect the two endpoints by an edge.
  • 10. Closest Pair Tour is Wrong! Although it works correctly on the previous example, other data causes trouble:
  • 11. A Correct Algorithm: Exhaustive Search We could try all possible orderings of the points, then select the one which minimizes the total length: d=∞ For each of the n! permutations Πi of the n points If (cost(Πi) ≤ d) then d = cost(Πi) and Pmin = Πi Return Pmin Since all possible orderings are considered, we are guaranteed to end up with the shortest possible tour.
  • 12. Exhaustive Search is Slow! Because it tries all n! permutations, it is much too slow to use when there are more than 10-20 points. No efficient, correct algorithm exists for the traveling salesman problem, as we will see later.
  • 13. Efficiency: Why Not Use a Supercomputer? A faster algorithm running on a slower computer will always win for sufficiently large instances, as we shall see. Usually, problems don’t have to get that large before the faster algorithm wins.
  • 14. Expressing Algorithms We need some way to express the sequence of steps comprising an algorithm. In order of increasing precision, we have English, pseu- docode, and real programming languages. Unfortunately, ease of expression moves in the reverse order. I prefer to describe the ideas of an algorithm in English, moving to pseudocode to clarify sufficiently tricky details of the algorithm. Algorithms problems must be carefully specified to allow a provably correct algorithm to exist. We can find the “shortest tour” but not the “best tour”. %swallow
  • 15. Selecting the Right Jobs A movie star wants to the select the maximum number of staring roles such that no two jobs require his presence at the same time. Tarjan of the Jungle The Four Volume Problem The President’s Algorist Steiner’s Tree Process Terminated Halting State Programming Challenges "Discrete" Mathematics Calculated Bets
  • 16. The Movie Star Scheduling Problem Input: A set I of n intervals on the line. Output: What is the largest subset of mutually non- overlapping intervals which can be selected from I? Give an algorithm to solve the problem!
  • 17. Earliest Job First Start working as soon as there is work available: EarliestJobFirst(I) Accept the earlest starting job j from I which does not overlap any previously accepted job, and repeat until no more such jobs remain.
  • 18. Earliest Job First is Wrong! The first job might be so long (War and Peace) that it prevents us from taking any other job.
  • 19. Shortest Job First Always take the shortest possible job, so you spend the least time working (and thus unavailable). ShortestJobFirst(I) While (I = ∅) do Accept the shortest possible job j from I. Delete j, and intervals which intersect j from I.
  • 20. Shortest Job First is Wrong! Taking the shortest job can prevent us from taking two longer jobs which barely overlap it.
  • 21. First Job to Complete Take the job with the earliest completion date: OptimalScheduling(I) While (I = ∅) do Accept job j with the earliest completion date. Delete j, and whatever intersects j from I.
  • 22. First Job to Complete is Optimal! Other jobs may well have started before the first to complete (x), but all must at least partially overlap each other. Thus we can select at most one from the group. The first these jobs to complete is x, so the rest can only block out more opportunties to the right of x.
  • 23. Demonstrating Incorrectness Searching for counterexamples is the best way to disprove the correctness of a heuristic. • Think about all small examples. • Think about examples with ties on your decision criteria (e.g. pick the nearest point) • Think about examples with extremes of big and small. . .
  • 24. Induction and Recursion Failure to find a counterexample to a given algorithm does not mean “it is obvious” that the algorithm is correct. Mathematical induction is a very useful method for proving the correctness of recursive algorithms. Recursion and induction are the same basic idea: (1) basis case, (2) general assumption, (3) general case. n i = n(n + 1)/2 i=1