TK3043 Analysis and Design of Algorithms Introduction to Algorithms.

Slides:



Advertisements
Similar presentations
Algorithm Design Techniques
Advertisements

MATH 224 – Discrete Mathematics
5/15/2015COT COT 5407: Introduction to Algorithms Tao Li ECS 318; Phone: x6036
Chapter 1 Sections 1.1 – 1.4 pages Homework  Read Section 1.4 (recap of data structures)  pages  Answer the following questions: page 38,
The Design & Analysis of the algorithms Lecture by me M. Sakalli.
Design and Analysis of Algorithms - Chapter 1
Design and Analysis of Algorithms - Chapter 1
What is an algorithm? An algorithm is a sequence of unambiguous instructions for solving a problem, i.e., for obtaining a required output for any legitimate.
CSC 2300 Data Structures & Algorithms January 30, 2007 Chapter 2. Algorithm Analysis.
The Design and Analysis of Algorithms
UNIVERSITY OF SOUTH CAROLINA Department of Computer Science and Engineering Design and Analysis of Algorithms - Chapter 11 Algorithm An algorithm is a.
Design and Analysis of Algorithms
Design & Analysis of Algorithms Introduction. Introduction Algorithms are the ideas behind computer programs. An algorithm is the thing which stays the.
Why study algorithms? Theoretical importance
Introduction Dr. Ying Lu RAIK 283: Data Structures & Algorithms.
Instructor: Dr. Sahar Shabanah Fall Lectures ST, 9:30 pm-11:00 pm Text book: M. T. Goodrich and R. Tamassia, “Data Structures and Algorithms in.
CS223 Algorithms D-Term 2013 Instructor: Mohamed Eltabakh WPI, CS Introduction Slide 1.
Introduction to Algorithms Rabie A. Ramadan rabieramadan.org Some of the sides are exported from different sources to.
Introduction to Algorithms
CSCE350: Data Structures and Algorithms Instructor: Dr. Jianjun Hu Fall Department of Computer Science and Engineering.
CHAPTER 09 Compiled by: Dr. Mohammad Omar Alhawarat Sorting & Searching.
Introduction Algorithms and Conventions The design and analysis of algorithms is the core subject matter of Computer Science. Given a problem, we want.
Fundamentals of Algorithms MCS - 2 Lecture # 7
Introduction to Algorithms By Mr. Venkatadri. M. Two Phases of Programming A typical programming task can be divided into two phases: Problem solving.
Major objective of this course is: Design and analysis of modern algorithms Different variants Accuracy Efficiency Comparing efficiencies Motivation thinking.
Design & Analysis of Algorithms Lecture 1 Introduction.
Data Structure Introduction.
Copyright © 2007 Pearson Addison-Wesley. All rights reserved. Chapter 1 Introduction.
Design and Analysis of Algorithms - Chapter 11 Algorithm b An algorithm is a sequence of unambiguous instructions for solving a problem, i.e., for obtaining.
Algorithms 1.Notion of an algorithm 2.Properties of an algorithm 3.The GCD algorithm 4.Correctness of the GCD algorithm 5.Termination of the GCD algorithm.
UNIT-I INTRODUCTION ANALYSIS AND DESIGN OF ALGORITHMS CHAPTER 1:
Analysis of Algorithms COME 355 Introduction. What is an algorithm? An algorithm is a sequence of unambiguous instructions for solving a problem, i.e.,
A. Levitin “Introduction to the Design & Analysis of Algorithms,” 3 rd ed., Ch. 1 ©2012 Pearson Education, Inc. Upper Saddle River, NJ. All Rights Reserved.
ALGORITHMS.
Prof. Amr Goneid, AUC1 Analysis & Design of Algorithms (CSCE 321) Prof. Amr Goneid Department of Computer Science, AUC Part 1. Complexity Bounds.
CS404 Design and Analysis of Algorithms BBy DDr. M V S Peri Sastry BB.E, PhD(BITS-Pilani)
Copyright © 2007 Pearson Addison-Wesley. All rights reserved. A. Levitin “ Introduction to the Design & Analysis of Algorithms, ” 2 nd ed., Ch. 1 Chapter.
Introduction to design and analysis algorithm
Onlinedeeneislam.blogspot.com1 Design and Analysis of Algorithms Slide # 1 Download From
Ch3 /Lecture #4 Brute Force and Exhaustive Search 1.
1 Introduction to design and analysis algorithm. 2.
Systems in the Small: An Introduction to Algorithms David Millard
Advanced Algorithms Analysis and Design
ANALYSIS AND DESIGN OF ALGORITHMS
TK3043 Analysis and Design of Algorithms
Chapter 1 Introduction Copyright © 2007 Pearson Addison-Wesley. All rights reserved.
The Design and Analysis of Algorithms
Chapter 1 Introduction Copyright © 2007 Pearson Addison-Wesley. All rights reserved.
What is an algorithm? An algorithm is a sequence of unambiguous instructions for solving a problem, i.e., for obtaining a required output for any legitimate.
What is an algorithm? An algorithm is a sequence of unambiguous instructions for solving a problem, i.e., for obtaining a required output for any legitimate.
What is an algorithm? An algorithm is a sequence of unambiguous instructions for solving a problem, i.e., for obtaining a required output for any legitimate.
Introduction to the Design and Analysis of Algorithms
Introduction to The Design & Analysis of Algorithms
What is an algorithm? An algorithm is a sequence of unambiguous instructions for solving a problem, i.e., for obtaining a required output for any legitimate.
Courtsey & Copyright: DESIGN AND ANALYSIS OF ALGORITHMS Courtsey & Copyright:
What is an algorithm? An algorithm is a sequence of unambiguous instructions for solving a problem, i.e., for obtaining a required output for any legitimate.
アルゴリズムの設計と解析 教授: 黄 潤和 (W4022) SA: 広野 史明 (A4/A10)
Chapter 1 Introduction Copyright © 2007 Pearson Addison-Wesley. All rights reserved.
What is an algorithm? An algorithm is a sequence of unambiguous instructions for solving a problem, i.e., for obtaining a required output for any legitimate.
Objective of This Course
Chapter 1 Introduction Copyright © 2007 Pearson Addison-Wesley. All rights reserved.
Lecture 6 Architecture Algorithm Defin ition. Algorithm 1stDefinition: Sequence of steps that can be taken to solve a problem 2ndDefinition: The step.
Algorithms Algorithm. [webster.com] A procedure for solving a mathematical problem (as of finding the greatest common divisor) in a finite number of steps.
Introduction to Algorithms
CSC 380: Design and Analysis of Algorithms
Design and Analysis of Algorithms
Chapter 1 Introduction Copyright © 2007 Pearson Addison-Wesley. All rights reserved.
Advanced Analysis of Algorithms
Welcome to the most Amazing course there is 
What is an algorithm? An algorithm is a sequence of unambiguous instructions for solving a problem, i.e., for obtaining a required output for any legitimate.
Presentation transcript:

TK3043 Analysis and Design of Algorithms Introduction to Algorithms

WHAT IS AN ALGORITHM? An algorithm is a sequence of unambiguous instructions for solving a problem, i.e., for obtaining a required output for any legitimate input in a finite amount of time. As a computer professional, it is useful to know a standard set of important algorithms and to be able to design new algorithms as well as to analyze their efficiency.

HISTORICAL PERSPECTIVE Euclid’s algorithm for finding the greatest common divisor  One of the oldest algorithms known (300 BC). Muhammad ibn Musa al-Khwarizmi – 9th century mathematician  The Golden Principle of Al-Khwarizmi states that all complex problems of science must be and can be solved by means of five simple steps.

THE GOLDEN PRINCIPLE OF AL-KHWARIZMI 1.Break down each problem into a number of elemental or ‘atomic’ steps. An elemental or atomic step is one, which cannot be simplified any further. 2.Arrange all the elements or steps of the problem in an order or sequence, such that each element can be taken up and solved one at a time, without affecting other parts of the problem.

3.Find a way to solve each of the elements separately. Because each element has been simplified to the maximum, it is very likely that the solution of an elemental step will itself be extremely simple or elemental making it available with relative ease. 4.Proceed to solve each element of the problem, either one at a time or several at a time, but in the correct order. 5.When all steps are solved, the original problem itself has also been solved.

NOTION OF ALGORITHM “computer” Algorithmic solution problem algorithm inputoutput

EXAMPLE: SORTING Statement of problem:  Input: A sequence of n numbers  Output: A reordering of the input sequence so that b i ≤ b j whenever i < j

Example: “computer” problem algorithm input output Sorting algorithms: Selection sort? Insertion sort? Merge sort? …

SELECTION SORT Input: array a[0], …, a[n-1] Output: array a sorted in non-decreasing order Algorithm: for i=0 to n-1 swap a[i] with smallest of a[i],…a[n-1]

SOME WELL-KNOWN COMPUTATIONAL PROBLEMS Sorting Searching Shortest paths in a graph Minimum spanning tree Primality testing Traveling salesman problem Knapsack problem Chess Towers of Hanoi Program termination

BASIC ISSUES RELATED TO ALGORITHMS How to design algorithms How to express algorithms Proving correctness of algorithms Efficiency  Theoretical analysis  Empirical analysis Optimality

EXAMPLE Refer to map. How to get from Petronas Taman Samudra to Sekolah Kebangsaan Usaha Ehsan?

ALGORITHM DESIGN STRATEGIES Brute force Divide and conquer Decrease and conquer Transform and conquer Greedy approach Dynamic programming Backtracking and Branch and bound Space and time tradeoffs

ANALYSIS OF ALGORITHMS How good is the algorithm?  Correctness  Time efficiency  Space efficiency  Simplicity  Generality Does there exist a better algorithm?  Lower bounds  Optimality

WHAT IS AN ALGORITHM? Recipe, process, method, technique, procedure, routine,… with following requirements: 1.Finiteness terminates after a finite number of steps 2.Definiteness rigorously and unambiguously specified 3.Input valid inputs are clearly specified 4.Output can be proved to produce the correct output given a valid input 5.Effectiveness steps are sufficiently simple and basic

WHY STUDY ALGORITHMS Theoretical importance  The core of computer science Practical importance  A practitioner’s toolkit of known algorithms  Framework for designing and analyzing algorithms for new problems

EUCLID’S ALGORITHM Problem: Find gcd(m,n), the greatest common divisor of two nonnegative, not both zero integers m and n Examples: gcd(60,24) = 12 gcd(60,0) = 60 gcd(0,0) = ?

EUCLID’S ALGORITHM Euclid’s algorithm is based on repeated application of equality gcd(m,n) = gcd(n, m mod n) until the second number becomes 0, which makes the problem trivial. Example: gcd(60,24) = gcd(24,12) = gcd(12,0) = 12

TWO DESCRIPTIONS OF EUCLID’S ALGORITHM Step 1 If n = 0, return m and stop; otherwise go to Step 2 Step 2 Divide m by n and assign the value fo the remainder to r Step 3 Assign the value of n to m and the value of r to n. Go to Step 1. while n ≠ 0 { r ← m mod n m← n n ← r } return m

OTHER METHODS FOR COMPUTING gcd(m,n) Consecutive integer checking algorithm  Step 1 Assign the value of min{m,n} to t  Step 2 Divide m by t. If the remainder is 0, go to Step 3; otherwise, go to Step 4  Step 3 Divide n by t. If the remainder is 0, return t and stop; otherwise, go to Step 4  Step 4 Decrease t by 1 and go to Step 2

OTHER METHODS FOR COMPUTING gcd(m,n) (CONT.) Middle-school procedure  Step 1 Find the prime factorization of m  Step 2 Find the prime factorization of n  Step 3 Find all the common prime factors  Step 4 Compute the product of all the common prime factors and return it as gcd(m,n) Is this an algorithm?

IMPORTANT PROBLEM TYPES sorting searching string processing graph problems combinatorial problems geometric problems numerical problems

FUNDAMENTAL DATA STRUCTURES list  array  linked list  string stack queue priority queue graph tree set and dictionary