9 views

Uploaded by Fahad Mohammad

Algos Intro

save

- algorithms
- Controlling Lamport Clocks Using Unstable Configurations
- On a Means of Extensive Condensation of Formal Representations of Algorithms
- Gas Quality Control
- Computer Quick Guide
- Code priprema za cas
- Exploring Architecture Using Mobile Archetypes
- Craft by Smk
- Fbloc Pame
- Siminar (1) Final
- DataEntryOp Comp
- Operating Systems Lecture 2
- AARC Syllabus
- computer components
- D.S.a Chapter Two _ Part 1
- COMP 533 (Excercise 1)
- Computer One Liner
- Computer Test 4
- 4.1 Hardware
- assighnment on computer
- bitszg553_mid1
- Musician and the Internet
- ibpsclerk
- Computer Fundamentals
- Scimakelatex.6547.None
- Low-Energy Symmetries on Machine Learning
- OS_1
- ibps qn paper nov clerk 2011
- operating system
- Algorithm 1
- ZONA02
- 230725425-Chiongbian-vs-Orbos-Digest.docx
- Responsabilidad Social Empresarial
- Foto Lapkeu
- Yamaha Motif Rack
- Informe de Bioestadistica
- Código Mourinho Descifrando el éxito de El especial.pdf
- Problemas de Aprendizaje II
- v19n43a06
- Buku Monitoring Dan Evaluasi PIS-PK (1)
- S 296001-2 A1 Part Submission Warrant
- 7.2.1.1. Spo Anamnesis
- sambungan bukti akreditasi.pdf
- 2. Pemetaan Kemahiran BM Konstruk Dskp Mac 2018 (2)
- Surat Pernyataan Tidak Mengundurkan Diri
- abstrak dan kesimpulan.docx
- E-mail and Business Writing
- bpn_p-tb_2014 (1).pdf
- Nor Fazilah Binti Saarani.docx
- Capítulo 4
- Surat Kuasa
- Aaaaaaa
- Draft Structura Proiect Sesiune (1- 07)
- 02_SURAT PERNYATAAN REKENING.docx
- CIDIP II
- Cheltuieli Si Venituri
- Requerimento Imobiliario 2017.1
- Puertas Del Bicentenario
- Trabalenguas fonema S.docx
- cnservadores y liberales

You are on page 1of 26

**Design and Analysis of
**

Algorithms

Lecture 1

Vangelis Metsis

vmetsis@uta.edu

8/22/2013

1

What are algorithms?

• An algorithm is a precise and unambiguous specification of a sequence

of steps that can be carried out to solve a given problem or to achieve a

given condition.

• An algorithm is a computational procedure to solve a well defined

computational problem.

• An algorithm accepts some value or set of values as input and produces

a value or set of values as output.

• An algorithmtransforms the input to the output.

• Algorithms are closely intertwined with the nature of the data structure

of the input and output values.

– Data structures are methods for representing the data models on a computer whereas data models

are abstractions used to formulate problems.

8/22/2013

2

8/22/2013

2

8/22/2013 CSE5311 - FALL 2013 - V. Metsis

Where do we use Algorithms?

• Everyday Life

– Going from Point A to Point B

– A recipe for preparing a food item

– Decision making

• Computer Science

– AI

– Databases

– Networks

– Multimedia Systems

• Biology

– Bioinformatics

– Ant colonies

• Economics, Marketing, Running a Business

• Music

• Games

• Others … please add

8/22/2013

3

8/22/2013

3

8/22/2013 CSE5311 - FALL 2013 - V. Metsis

Example Algorithms

• An algorithm to sort a sequence of natural numbers into non-

decreasing order

– Application : Lexicographical ordering

• An algorithm to find a shortest path from one node to

another in a graph

– Application: Routing in computer networks

• An algorithm to find the best scheduling of events to

resources

– Application: Lecture halls to courses

• An algorithm to recognize a substring in a string of letters

– Application: Word find in a text.

8/22/2013

4

8/22/2013

4

8/22/2013 CSE5311 - FALL 2013 - V. Metsis

Real-life Examples

• Travelling sales person problem

• Google

– Probe, crawl, search, sort, rank….

• Amazon

– Search, mine, match, rank….

• Travelocity

– Search, mine, match, rank,…

• Netflix (http://netflix.com)

• New Releases, Classics, TV episodes and more on DVD

Over 100,000 DVD titles.

– 100 shipping points nationwide and more than 95 percent of members receive their

DVDs in about one business day.

8/22/2013

5

8/22/2013

5

8/22/2013

CSE5311 - FALL 2013 - V. Metsis

Problem 1

• A man needs to transport a wolf, a goat and a cabbage

across a river.

• The boat has room only for the man and one other item

(either the wolf, the goat or the cabbage).

• In the absence of the man the wolf would eat the goat and

the goat would eat the cabbage.

• Solve this problem for the man.

8/22/2013

6

8/22/2013

6

8/22/2013 CSE5311 - FALL 2013 - V. Metsis

Solution to Problem 1

8/22/2013 CSE5311 - FALL 2013 - V. Metsis

Problem 2

• Four persons A,B, C, and D wish to cross a bridge.

• It is dark at night and they need to use the only flashlight in

their possession, that has a battery life only 17 mins.

• A maximum of two people can cross the bridge at any given

time.

• Each person walks at a different pace and a pair must walk

at the slower person’s pace.

• The times taken by the four persons (if allowed to cross

individually) are given as: A- 1 min; B – 2 mins; C – 5 mins;

and D-10 mins;

8/22/2013

8

8/22/2013

8

8/22/2013 CSE5311 - FALL 2013 - V. Metsis

Solution to Problem 2

8/22/2013 CSE5311 - FALL 2013 - V. Metsis

Problem 3

• The town of Konigsberg (now Kaliningrad) lay on the banks and on two islands of

the Pregel river. The city was connected by 7 bridges. The puzzle (as encountered

by Leonhard Euler in 1736) : Whether it was possible to start walking from

anywhere in town and return to the starting point by crossing all bridges exactly

once.

8/22/2013

10

A

B

C D

Konigsberg bridges

8/22/2013

10

8/22/2013

CSE5311 - FALL 2013 - V. Metsis

Solution to Problem 3

8/22/2013 CSE5311 - FALL 2013 - V. Metsis

Course Description

• Design and Analysis of Algorithms is THE most important basic

course in any graduate computer science and engineering

curriculum.

– It is vital for every computer science and engineering student to be

fluent with algorithms and their analysis.

– Students are encouraged to solve homework problems and

discuss/solve problems in the class.

– Each student will be given one specific algorithm or problem to carry

out an in-depth study.

• Typically, this course should be taken in the very first semester

of your graduate study because algorithms are used in

Networks, Operating Systems, Databases, and other (including

advanced) courses.

8/22/2013

12

8/22/2013

12

8/22/2013 CSE5311 - FALL 2013 - V. Metsis

Course Objectives

• The objective of this course is to build a solid foundation of

the most important fundamental subject in computer science.

• Creative thinking is essential to algorithm design.

8/22/2013

13

8/22/2013

13

8/22/2013 CSE5311 - FALL 2013 - V. Metsis

Mode of Teaching

• The class meets 2 times a week (TuTh 2:00PM - 3:20PM).

– Power point slides and other lecture material will be available on blackboard.

• https://elearn.uta.edu/

– Whiteboard will be used for teaching

– At the end of each topic, students must attempt to solve exercise problems.

– Please read the textbook and solve exercise problems –

• The instructor will provide comprehensive notes and references to relevant material.

• Exercise problems can be found on the course web page, textbook and in reference books.

• All students are expected to work on these problems and participate in the class discussions.

• You will be encouraged to think on your own and to discuss solutions with

your peers.

• The course is not limited to any programming language.

• Students are strongly encouraged to use textbook, reference books and

course material that will be available and updated from time to time on

the course page.

8/22/2013

14

8/22/2013

14

8/22/2013 CSE5311 - FALL 2013 - V. Metsis

Information

• Instructor

– Vangelis Metsis

• ERB 646

• Email: vmetsis@uta.edu

• Class:

– TuTh 2:00PM - 3:20PM, COBA 141

• Office Hours

– Tuesdays & Thursdays – 3:30-5:00 PM

• Course site:

– http://heracleia.uta.edu/~vangelis/CSE5311_FALL13/

– And on Blackboard (https://elearn.uta.edu/)

• GTA: TBA

8/22/2013

15

8/22/2013

15

8/22/2013 CSE5311 - FALL 2013 - V. Metsis

Syllabus

• Analysis of Algorithms, Insertion Sort, Merge-sort

• Growth of Functions, Asymptotic Analysis, Recurrences

• Divide-and-Conquer, Recurrences

• Heapsort, Quicksort

• Medians and Order Statistics

• Hashing, Hash functions, Hash tables

• Binary Search Trees

• Red-Black Trees, 2-3 Trees, B-Trees

• Dynamic Programming

• Greedy Algorithms, Amortized Algorithms

• Elementary Graph Algorithms

• Minimum Spanning Trees

• Single-Source Shortest Paths

• All-Pairs Shortest Paths

• Maximum Flow

• NP-Completeness

• Advanced Topics

8/22/2013

16

8/22/2013

16

8/22/2013 CSE5311 - FALL 2013 - V. Metsis

Text and Reference Material

Textbook

• Introduction to Algorithms, Third Edition, 2009

– T Cormen, C E Leiserson, R L Rivest and C Stein McGraw Hill and MIT Press

Other References

• Class Notes, Power Point Slides, and Exercise Problems

– Vangelis Metsis

• Algorithm Design

– Jon Kleinberg and Éva Tardos, Pearson Addison-Wesley

• The Design and Analysis of Algorithms 1974

– AV Aho, JE Hopcroft and JD Ullman, Addison-Wesley Publishing Company

• Introduction to Algorithms: A Creative Approach, Reprinted 1989

– Udi Manber, Addison-Wesley Publishing Company

• Graph Algorithms, 1979

– Shimon Even, Computer Science Press

• The Design & Analysis of Algorithms, 2005

– Anany Levitan, Addison Wesley

8/22/2013

17

8/22/2013

17

8/22/2013

CSE5311 - FALL 2013 - V. Metsis

Assessment

• The structure of the exams will be discussed in class, at least

one week prior to the quiz.

• Midterm Exam (30 %): October 1, 2013

• Final Exam (35 %): December 10, 2013

• Lab Assignment (20% ) - Due: July 3, 2013 at 11:59pm

• Midterm exams are of duration ’80’ minutes and the Final

Exam is of duration ‘2’ hours.

• Quizzes and homework (15%)

– Up to Five ‘10-minute’ quizzes (‘24-hours’ notice on blackboard)

– During class times

8/22/2013

18

8/22/2013

18

8/22/2013 CSE5311 - FALL 2013 - V. Metsis

Policies

• Class participation

– ACTIVE Participation will prepare you well for the Exams. Students are expected to

interact actively during lectures.

– All students are expected to solve homework problems and discuss solutions in the

class.

• Missed Exams and Makeup Work

– Talk to the instructor if you miss an exam or quiz due to unavoidable circumstances

(e.g., health).

• Attendance

– Attendance though not mandatory, is HIGHLY encouraged. Class participation is

important to your grade in the 'Homework and Quizzes' component.

• Drop Policy & Grade Grievance Policy

– See Syllabus.

8/22/2013 CSE5311 - FALL 2013 - V. Metsis

19

QUESTIONS?

8/22/2013

20

8/22/2013

20

8/22/2013 CSE5311 - FALL 2013 - V. Metsis

Algorithms vs. Program Code

Algorithms

• An algorithm,

is an abstraction of an

actual program

is a computational

procedure that terminates

• An algorithm is composed

of a finite set of steps,

each step may require one

or more operations,

each operation must be

definite and effective

Program Code

• A program is an expression

of an algorithm in a

programming language.

• A program code conforms

to the dictates of policies

and limitations of a

programming language.

8/22/2013

21

8/22/2013

21

8/22/2013

CSE5311 - FALL 2013 - V. Metsis

8/22/2013

22

Presenting algorithms

• Description : The algorithm will be described in English, with the

help of one or more examples

• Specification : The algorithm will be presented as pseudo code

(We don't use any programming language)

• Validation : The algorithm will be proved to be correct for all

problem cases

• Analysis: The running time or time complexity of the algorithm will

be evaluated

8/22/2013

22

8/22/2013

CSE5311 - FALL 2013 - V. Metsis

Algorithms

• An algorithm is designed to solve a given problem

• An algorithm does not take into account the intricacies and limitations of any

programming language.

– we are free to express ourselves when designing an algorithm.

• An algorithm should be unambiguous

– it should have precise steps

• An algorithm has three main components:

– input

– the algorithm itself and

– output.

• An algorithm will be implemented using a programming language

• An algorithm designer is like an architect while programmers are like masons,

carpenters, plumbers etc.)

8/22/2013

23

8/22/2013

23

8/22/2013

CSE5311 - FALL 2013 - V. Metsis

Algorithms (Contd.)

• The algorithms we design should be

– Simple

• Unambiguous (e.g. The students should understand algorithms the instructor gives in

the class and the GTA should understand the algorithms students write in a test or

exam)

– Feasible

• Should be implementable using a programming language and

• executable on a computer.

– Cost effective

• CPU time

• Memory used

• Communication

• Energy

8/22/2013

24

8/22/2013

24

8/22/2013 CSE5311 - FALL 2013 - V. Metsis

Algorithm Design

• Abstract solution to the problem

– Algorithmic solution to problems are applicable to many applications

• Resource limitations and constraints

– Time

• Most common criteria

• Modern applications demand more computing power and time

– Memory

• Data in main memory

– Energy

• Critical to battery operated devices

• Application requirements

– Input/output limitations

– Time, space

8/22/2013

25

8/22/2013

25

8/22/2013 CSE5311 - FALL 2013 - V. Metsis

Algorithm Analysis

• We evaluate the performance of algorithms based on

– time (CPU-time) and

– Space (semiconductor memory)

• Both are expensive

• The time taken to execute an algorithm is dependent on one

or more of the following,

number of data elements

the degree of a polynomial

the size of a file to be sorted

the number of nodes in a graph

• Computer scientists should endeavour to minimize time, space

and energy required.

8/22/2013

26

8/22/2013

26

8/22/2013 CSE5311 - FALL 2013 - V. Metsis

- algorithmsUploaded byapi-230445423
- Controlling Lamport Clocks Using Unstable ConfigurationsUploaded byPamela Lindsey
- On a Means of Extensive Condensation of Formal Representations of AlgorithmsUploaded byGRD Journals
- Gas Quality ControlUploaded byStanescu Mihai
- Computer Quick GuideUploaded byrakotogogo1
- Code priprema za casUploaded bySanja Malinic-Uglik
- Exploring Architecture Using Mobile ArchetypesUploaded bytubagusrizal
- Craft by SmkUploaded bySai Mani Krishna
- Fbloc PameUploaded byBogdan Batakovic
- Siminar (1) FinalUploaded byNora Muhammad
- DataEntryOp CompUploaded byBalwant Sharma
- Operating Systems Lecture 2Uploaded byUsman Sattar
- AARC SyllabusUploaded byvipulsaluja
- computer componentsUploaded byapi-236408117
- D.S.a Chapter Two _ Part 1Uploaded byAbdiaziz Qabile
- COMP 533 (Excercise 1)Uploaded byEjay Bildan
- Computer One LinerUploaded bySudhaSharma
- Computer Test 4Uploaded byRavi Rathod
- 4.1 HardwareUploaded byShaikh Mohammed Love
- assighnment on computerUploaded by9896016960
- bitszg553_mid1Uploaded byShivam Shukla
- Musician and the InternetUploaded bythemisjazz
- ibpsclerkUploaded byPrabhakar Jha
- Computer FundamentalsUploaded bysup_ankit
- Scimakelatex.6547.NoneUploaded bygarthog
- Low-Energy Symmetries on Machine LearningUploaded bymcneagoe
- OS_1Uploaded bytheresa.painter
- ibps qn paper nov clerk 2011Uploaded bysree8884
- operating systemUploaded byNitinSrivastava
- Algorithm 1Uploaded byDebranjan Pal