Design and Analysis of Algorithms - PowerPoint PPT Presentation

Loading...

PPT – Design and Analysis of Algorithms PowerPoint presentation | free to download - id: 74d9c5-NDUwZ



Loading


The Adobe Flash plugin is needed to view this content

Get the plugin now

View by Category
About This Presentation
Title:

Design and Analysis of Algorithms

Description:

Title: Mathematical Induction. Using Induction to Prove Correctness of Algorithms Author: Ioana Last modified by: Ioana Created Date: 1/18/2014 4:51:01 PM – PowerPoint PPT presentation

Number of Views:18
Avg rating:3.0/5.0
Slides: 18
Provided by: Ioa91
Learn more at: http://bigfoot.cs.upt.ro
Category:

less

Write a Comment
User Comments (0)
Transcript and Presenter's Notes

Title: Design and Analysis of Algorithms


1
Design and Analysis of Algorithms
  • 4th Semester
  • Computer Engineering
  • Spring 2015
  • Conf.dr.ing. Ioana Sora
  • ioana.sora_at_cs.upt.ro

2
design algorithms that are correct and
efficient
Our goal
3
The Need for Correctness
  • Much too often, algorithms are designed in an
    ad-hoc manner and validated through testing on
    a few particular data sets

4
Example of a sorting algorithm
  • The algorithm
  • Aarray1..n of integer
  • for i1 to n-1 do
  • if AigtAi1
  • swap(Ai, Ai1)
  • The tests

5, 1, 2, 7, 6
15, 2, 4, 17,16
But it does not work for 3, 2, 1, 5, 4 !
5
The Need for Correctness
  • Much too often, algorithms are designed in an
    ad-hoc manner and validated through testing on
    a few particular data sets
  • The fact that an algorithm passed a number of
    tests on certain data sets DOES NOT guarantee
    that the algorithm is correct
  • The fact that an algorithm fails a test on ONE
    data set proves that it is NOT correct

6
The Bubblesort Algorithm
  • Aarray1..n of integer
  • for ln downto 1
  • for i1 to l-1 do
  • if AigtAi1
  • swap(Ai, Ai1)
  • How can we know for sure that the algorithm is
    correct ? (Other than simply believing the
    programming textbooks -))

7
Analyzing Algorithms
  • We need methods and metrics to analyze algorithms
    for
  • Correctness
  • Methods for proving correctness
  • Efficiency
  • Time complexity, Asymptotic analysis

8
Designing Algorithms
  • Ok, so you will know (will learn) how to analyze
    a given algorithm.
  • But where do these algorithms come from ?
  • Clever people already designed a plethora of
    solutions (algorithms) for different problems and
    we find them in textbooks, internet, etc.
  • But how will you design solutions for new
    problems ?

9
How to learn algorithms ?
http//www.neatorama.com/twaggies/2010/11/07/no-11
2-robcorddry/
10
Kruskals algorithm
Prims algorithm
  • Design methods
  • Greedy
  • Design by Induction
  • Divide and Conquer
  • Dynamic Programming

Floyds algorithm
Dijkstras algorithm
Tarjans algorithm
11
What about data structures ?
  • Fundamental data structures
  • Model fundamental data
  • lists, queues, graphs
  • Special data structures
  • Created to optimize a specific (set of)
    operation(s) for a specific context
  • Search trees, balanced trees
  • Optimal trees
  • Disjoint sets

12
Course Goals
  • Learn to design algorithms that are correct and
    efficient
  • How do we know that
  • an algorithm is correct ? -gt correctness proofs
  • an algorithm is efficient ? -gt analysis of
    algorithms (time complexity)
  • How to design solutions for new problems ?
  • Learning general techniques for design
  • Studying a set of well-known algorithms, to serve
    as examples of success stories for applying
    general design techniques
  • Become aware that good algorithms are key parts
    of software engineering practice !

13
Course Schedule
  • Review Analysis
  • Proving Correctness of Algorithms. Induction
  • Design of Algorithms by Induction
  • Dynamic Programming
  • Graphs
  • Data structures Search Trees, Balanced trees,
    Augmented data structures
  • Great algorithms in real life problems
  • Data compression
  • Search engines

14
Textbooks
15
Course Webpage
  • All official information related to the Algorithm
    Design and Analysis classes
  • http//bigfoot.cs.upt.ro/ioana/algo/

16
Lab Assignments
  • Comprise different types of exercises
  • Questions - to be solved with pen on paper
  • Simple implementation problems - implement
    something that was described in the course
  • Algorithm design problems
  • This kind of assignments require to
  • Describe the proposed algorithm
  • Analyze your algorithm (prove correctness and
    efficiency)
  • Implement the algorithm
  • Tool projects
  • Complex projects containing also a part of
    algorithm design and implementation
  • They are optional, but in order to get a 10 for
    the lab activity, you have to do at least one
    tool project

17
Examination and Grading
  • Final grade 2/3 final written exam 1/3 work
    during the semester
  • Written exam
  • Questions and Algorithm design problems (such as
    these the lab description above)
  • Work during the semester
  • Lab assignments
  • Lab quizzes
  • Tool project (for 10)
  • Optional bonus points for exceptional activity
    doing more than one optional tool project during
    the semester, you can gain extra-points to the
    grade of your final written exam
About PowerShow.com