CSE 373: Analysis of Algorithms Course Webpage

Slides:



Advertisements
Similar presentations
Analysis of Computer Algorithms
Advertisements

Analysis of Algorithms CS 477/677
Introduction to Algorithms 6.046J Lecture 1 Prof. Shafi Goldwasser Prof. Erik Demaine.
5/1/20151 Analysis of Algorithms Introduction. 5/1/20152 Are you want to be a computer scientist?
ALGORITHMS Introduction. Definition Algorithm: Any well-defined computational procedure that takes some value or set of values as input and produces some.
I Advanced Algorithms Analysis. What is Algorithm?  A computer algorithm is a detailed step-by-step method for solving a problem by using a computer.
COMP171 Data Structures and Algorithms Spring 2009.
CS Section 600 CS Section 002 Dr. Angela Guercio Spring 2010.
CS 253: Algorithms Syllabus Chapter 1 Appendix A.
Chapter 3 Growth of Functions
: Analysis of Algorithms Course Webpage And Blackboard COP4531 CGS5427.
COMP171 Data Structures and Algorithms Spring 2009.
CS 232 Geometric Algorithms: Lecture 1 Shang-Hua Teng Department of Computer Science, Boston University.
CS 232 Geometric Algorithms: Lecture 1 Shang-Hua Teng Department of Computer Science, Boston University.
CS3381 Des & Anal of Alg ( SemA) City Univ of HK / Dept of CS / Helena Wong 2. Analysis of Algorithms - 1 Analysis.
COMP171 Data Structures and Algorithm Huamin Qu Lecture 1 (Sept. 1, 2005)
COMP171 Data Structures and Algorithm Qiang Yang Lecture 1 ( Fall 2006)
EE 220 (Data Structures and Analysis of Algorithms) Instructor: Saswati Sarkar T.A. Prasanna Chaporkar, Programming.
Design and Analysis of Computer Algorithm Lecture 1 Assoc. Prof.Pradondet Nilagupta Department of Computer Engineering
CS 330 Algorithms: Lecture 1 Shang-Hua Teng Department of Computer Science, Boston University.
CSE 220 (Data Structures and Analysis of Algorithms) Instructor: Saswati Sarkar T.A. Dimosthenes Anthomelidis
David Luebke 1 8/17/2015 CS 332: Algorithms Asymptotic Performance.
Instructor Neelima Gupta
Cpt S 471/571: Computational Genomics Spring 2015, 3 cr. Where: Sloan 9 When: M WF 11:10-12:00 Instructor weekly office hour for Spring 2015: Tuesdays.
David Luebke 1 9/11/2015 CS 332: Algorithms Introduction Proof By Induction.
CSC 201 Analysis and Design of Algorithms Lecture 03: Introduction to a CSC 201 Analysis and Design of Algorithms Lecture 03: Introduction to a lgorithms.
Mathematics Review and Asymptotic Notation
Course Web Page Most information about the course (including the syllabus) will be posted on the course wiki:
Complexity & Analysis of Data Structures & Algorithms Piyush Kumar (Lecture 2: Algorithmic Analysis) Welcome to COP4531 Based on slides from J. Edmonds,
Analysis of Algorithms
ECOE 456/556: Algorithms and Computational Complexity Lecture 1 Serdar Taşıran.
Let’s do some introductions
A Lecture /24/2015 COSC3101A: Design and Analysis of Algorithms Tianying Ji Lecture 1.
Major objective of this course is: Design and analysis of modern algorithms Different variants Accuracy Efficiency Comparing efficiencies Motivation thinking.
Week 12 - Wednesday.  What did we talk about last time?  Asymptotic notation.
Week 11 - Friday.  What did we talk about last time?  Graph isomorphism  Trees.
1Computer Sciences Department. Book: Introduction to Algorithms, by: Thomas H. Cormen Charles E. Leiserson Ronald L. Rivest Clifford Stein Electronic:
MS 101: Algorithms Instructor Neelima Gupta
MS 101: Algorithms Instructor Neelima Gupta
David Luebke 1 11/29/2015 CS 332: Algorithms Introduction Proof By Induction Asymptotic notation.
COT 5405: Design and Analysis of Algorithms Cliff Zou Spring 2015.
1/6/20161 CS 3343: Analysis of Algorithms Lecture 2: Asymptotic Notations.
Asymptotic Performance. Review: Asymptotic Performance Asymptotic performance: How does algorithm behave as the problem size gets very large? Running.
CSC 413/513: Intro to Algorithms Introduction Proof By Induction Asymptotic notation.
Course Info Instructor U.T. Nguyen Office: CSEB Office hours: Tuesday, 14:30-15:30 Thursday, 12:00-12:45 By.
Data Structures and Algorithms in Java AlaaEddin 2012.
Introduction to Algorithms 6.046J/18.401J/SMA5503 Lecture 1 Prof. Charles E. Leiserson.
Onlinedeeneislam.blogspot.com1 Design and Analysis of Algorithms Slide # 1 Download From
BITS Pilani Pilani Campus Data Structure and Algorithms Design Dr. Maheswari Karthikeyan Lecture1.
Design and Analysis of Algorithms Faculty Name : Ruhi Fatima Course Description This course provides techniques to prove.
CIS 313: Analysis and Design of Algorithms Assoc. Prof Hassan Aly Department of Computer Science and Information College of Science at AzZulfi Al-Majmaah.
CSc 120 Introduction to Computer Programing II
Advanced Algorithms Analysis and Design
Computer Network Fundamentals CNT4007C
Computer Networks CNT5106C
Analysis of Algorithms
Introduction to Algorithms
Algorithms Furqan Majeed.
Foundations II: Data Structures and Algorithms
Objective of This Course
CSC 413/513: Intro to Algorithms
Introduction to Algorithms Analysis
Complexity & Analysis of Data Structures & Algorithms
CMPT 438 Algorithms Instructor: Tina Tian.
Asst. Dr.Surasak Mungsing
COMPSCI 330 Design and Analysis of Algorithms
Design and Analysis of Algorithms
CS 232 Geometric Algorithms: Lecture 1
Presentation transcript:

CSE 373: Analysis of Algorithms Course Webpage

The Course Instructor: Piyush Kumar Office Hours: Mon, Wed 11: :45 PM; Or by appointment (use ) Teaching Assistants : TBA

The Course Grading Policy Homework: 18% Mid Term: 35% Final: 47%

The Course Prerequisites: MAT 211 w/ grade of C- or better AMS 211 w/ grade of C- or better CSE 214 w/ grade of C- or better Programming in [C++/C/Java]

The Course Format Three lectures/week Homework mostly biweekly Problem sets Maybe occasional programming assignments One MidTerm (Oct 20 th ) + final exam FINAL EXAM is on DEC 15th, 8:00am to 10:30pm. Venue: TBA

Homework Write problems beginning with a new page. Only hard-copy (paper) submissions are allowed. No late assignments Look at the Course Procedure webpage for more informationCourse Procedure

Homework Policy If you ask to re-grade your homework please write out the basis of your request. If the grader finds no basis for your complaint, then 10% points will be deducted from your original grade unless the grade is changed. Note: This is not to discourage you from disputing your grade, but rather we encourage you to read and understand the posted solutions on the web before you ask your solutions to be re-graded

Homework Policy Under no circumstances should you be copying others. It is fine to discuss problems with others, but all of the writing should be done without any collaboration. Make sure you read the Course Procedure webpage.Course Procedure

Homework Policy You can work in a pair or alone If you work in a pair, You are both supposed to write the solutions independently and staple before you submit. Only one solution from a pair will be graded (The one on top).

Exam Policy If you say “I don’t know” in any question in the exam, you get 25% marks for that question/sub-question. In case you don’t know the answer its better to leave it than filling the answer sheet with ‘crap’ because you might even loose that 25%

Algorithm: What is it? An Algorithm a well-defined computational procedure that transforms inputs into outputs, achieving the desired input-output relationship.

Algorithm Characteristics Finiteness Input Output Rigorous, Unambiguous and Sufficiently Basic at each step Correctness

Applications? WWW and the Internet Computational Biology Scientific Simulation VLSI Design Security Automated Vision/Image Processing Compression of Data Databases Mathematical Optimization

Sorting Input: Input: Array A[1...n], of elements in arbitrary order Output: Array A[1...n] of the same elements, but in increasing order Given a teacher find all his/her students. Given a student find all his/her teachers.

The RAM Model 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 Except, of course, function calls Constant word size Unless we are explicitly manipulating bits

Binary Search Initialize Get Midpoint Compare Adjust High Adjust Low Failure Success High < Low = < >

Binary Search Algorithm: Low= 1; High = n; while Low < High { m = floor( (Low+High)/2 ); if k <= A[m] then High = m - 1 else Low = m + 1 } if A[Low] = k then j = Low else j = 0

Time and Space Complexity Generally a function of the input size E.g., sorting, multiplication How we characterize input size depends: Sorting: number of input items Multiplication: total number of bits Graph algorithms: number of nodes & edges Etc

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 y = m * x + b c = 5 / 9 * (t - 32 ) z = f(x) + g(y) We can be more exact if need be

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”? Random (equally likely) inputs Real-life inputs

Binary Search Analysis Order Notation Upper Bounds Search Time = ?? A better way to look at it, Binary Search Trees

Searching A bad king has a cellar of 1000 bottles of delightful and very expensive wine. a neighbouring queen plots to kill the bad king and sends a servant to poison the wine. (un)fortunately the bad king's guards catch the servant after he has only poisoned one bottle. alas, the guards don't know which bottle but know that the poison is so strong that even if diluted 1,000,000 times it would still kill the king. furthermore, it takes one month to have an effect. the bad king decides he will get some of the prisoners in his vast dungeons to drink the wine. being a clever bad king he knows he needs to murder no more than 10 prisoners - believing he can fob off such a low death rate - and will still be able to drink the rest of the wine at his anniversary party in 5 weeks time. Explain how...

Solution Number each bottle in binary digits Feed each prisoner one column of the list of the binary digits where 1 means the bottle is tasted and zero means its not Convert the death of the 10 prisoners into a decimal number, That’s the bottle we are looking for.

Induction Prove … + n = n(n+1) / 2 Basis: If n = 0, then 0 = 0(0+1) / 2 Inductive hypothesis: Assume … + n = n(n+1) / 2 Step (show true for n+1): … + n + n+1 = ( …+ 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

Induction: A Fine example

Practice Problem Prove a 0 + a 1 + … + a n = (a n+1 - 1)/(a - 1) Read Mathematical Induction from BB

Next Time In this course, we care most about asymptotic performance How does the algorithm behave as the problem size gets very large? Running time Memory/storage requirements Bandwidth/power requirements/logic gates/etc.