0% found this document useful (0 votes)
39 views18 pages

CS 332: Algorithms: Proof by Induction Asymptotic Notation

This document outlines the syllabus for the CS 332: Algorithms course. It introduces key concepts like proof by induction and asymptotic notation. The course goals are to introduce algorithm design and analysis. Homework, exams, and a final project will be assigned. Prerequisites include CS 202 and CS 216. The class will meet three times a week for lectures and assignments.

Uploaded by

Nashowan
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
39 views18 pages

CS 332: Algorithms: Proof by Induction Asymptotic Notation

This document outlines the syllabus for the CS 332: Algorithms course. It introduces key concepts like proof by induction and asymptotic notation. The course goals are to introduce algorithm design and analysis. Homework, exams, and a final project will be assigned. Prerequisites include CS 202 and CS 216. The class will meet three times a week for lectures and assignments.

Uploaded by

Nashowan
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 18

CS 332: Algorithms

Introduction
Proof By Induction
Asymptotic notation

David Luebke 1 2023-01-02


The Course

• Purpose: a rigorous introduction to the design


and analysis of algorithms
▪ Not a lab or programming course
▪ Not a math course, either
• Textbook: Introduction to Algorithms,
Cormen, Leiserson, Rivest, Stein
▪ The “Big White Book”
▪ Second edition: now “Smaller Green Book”
▪ An excellent reference you should own
David Luebke 2 2023-01-02
The Course

• Instructor: David Luebke


[email protected]
▪ Office: Olsson 219
▪ Office hours: 2-3 Monday, 10-11 Thursday
• TA: Pavel Sorokin
▪ Office hours and location TBA

David Luebke 3 2023-01-02


The Course

• Grading policy:
▪ Homework: 30%
▪ Exam 1: 15%
▪ Exam 2: 15%
▪ Final: 35%
▪ Participation: 5%

David Luebke 4 2023-01-02


The Course

• Prerequisites:
▪ CS 202 w/ grade of C- or better
▪ CS 216 w/ grade of C- or better
▪ CS 302 recommended but not required
o Who has not taken CS 302?

David Luebke 5 2023-01-02


The Course

• Format
▪ Three lectures/week
▪ Homework most weeks
o Problem sets
o Maybe occasional programming assignments
▪ Two tests + final exam

David Luebke 6 2023-01-02


Review: Induction

• Suppose
▪ S(k) is true for fixed constant k
o Often k = 0
▪ S(n) =S(n+1) for all n >= k
• Then S(n) is true for all n >= k

David Luebke 7 2023-01-02


Proof By Induction

• Claim:S(n) is true for all n >= k


• Basis:
▪ Show formula is true when n = k
• Inductive hypothesis:
▪ Assume formula is true for an arbitrary n
• Step:
▪ Show that formula is then true for n+1

David Luebke 8 2023-01-02


Induction Example:
Gaussian Closed Form
• Prove 1 + 2 + 3 + … + n = n(n+1) / 2
▪ Basis:
o If n = 0, then 0 = 0(0+1) / 2
▪ Inductive hypothesis:
o Assume 1 + 2 + 3 + … + n = n(n+1) / 2
▪ Step (show true for n+1):
1 + 2 + … + n + n+1 = (1 + 2 + …+ n) + (n+1)
= n(n+1)/2 + n+1 = [n(n+1) + 2(n+1)]/2
= (n+1)(n+2)/2 = (n+1)(n+1 + 1) / 2

David Luebke 9 2023-01-02


Induction Example:
Geometric Closed Form
• Prove a0 + a1 + … + an = (an+1 - 1)/(a - 1) for
all a  1
▪ Basis: show that a0 = (a0+1 - 1)/(a - 1)
a0 = 1 = (a1 - 1)/(a - 1)
▪ Inductive hypothesis:
o Assume a0 + a1 + … + an = (an+1 - 1)/(a - 1)
▪ Step (show true for n+1):
a0 + a1 + … + an+1 = a0 + a1 + … + an + an+1
= (an+1 - 1)/(a - 1) + an+1 = (an+1+1 - 1)/(a - 1)

David Luebke 10 2023-01-02


Induction
• We’ve been using weak induction
• Strong induction also holds
▪ Basis: show S(0)
▪ Hypothesis: assume S(k) holds for arbitrary k <= n
▪ Step: Show S(n+1) follows
• Another variation:
▪ Basis: show S(0), S(1)
▪ Hypothesis: assume S(n) and S(n+1) are true
▪ Step: show S(n+2) follows

David Luebke 11 2023-01-02


Asymptotic Performance

• In this course, we care most about asymptotic


performance
▪ How does the algorithm behave as the problem
size gets very large?
o Running time
o Memory/storage requirements
o Bandwidth/power requirements/logic gates/etc.

David Luebke 12 2023-01-02


Asymptotic Notation

• By now you should have an intuitive feel for


asymptotic (big-O) notation:
▪ What does O(n) running time mean? O(n2)?
O(n lg n)?
▪ How does asymptotic running time relate to
asymptotic memory usage?
• Our first task is to define this notation more
formally and completely

David Luebke 13 2023-01-02


Analysis of Algorithms

• Analysis is performed with respect to a


computational model
• We will usually use a generic uniprocessor
random-access machine (RAM)
▪ All memory equally expensive to access
▪ No concurrent operations
▪ All reasonable instructions take unit time
o Except, of course, function calls
▪ Constant word size
o Unless we are explicitly manipulating bits
David Luebke 14 2023-01-02
Input Size

• Time and space complexity


▪ This is generally a function of the input size
o E.g., sorting, multiplication
▪ How we characterize input size depends:
o Sorting: number of input items
o Multiplication: total number of bits
o Graph algorithms: number of nodes & edges
o Etc

David Luebke 15 2023-01-02


Running Time

• Number of primitive steps that are executed


▪ Except for time of executing a function call most
statements roughly require the same amount of
time
oy=m*x+b
o c = 5 / 9 * (t - 32 )
o z = f(x) + g(y)
• We can be more exact if need be

David Luebke 16 2023-01-02


Analysis

• Worst case
▪ Provides an upper bound on running time
▪ An absolute guarantee
• Average case
▪ Provides the expected running time
▪ Very useful, but treat with care: what is “average”?
o Random (equally likely) inputs
o Real-life inputs

David Luebke 17 2023-01-02


The End

David Luebke 18 2023-01-02

You might also like