1 / 50

Problems & Algorithmic Problem Solving

Problems & Algorithmic Problem Solving. Lecture 01. ITS033 – Programming & Algorithms. Asst. Prof. Dr. Bunyarit Uyyanonvara IT Program, Image and Vision Computing Lab. School of Information, Computer and Communication Technology (ICT) Sirindhorn International Institute of Technology

Audrey
Télécharger la présentation

Problems & Algorithmic Problem Solving

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Problems & Algorithmic Problem Solving Lecture 01 ITS033 – Programming & Algorithms Asst. Prof. Dr. Bunyarit Uyyanonvara IT Program, Image and Vision Computing Lab. School of Information, Computer and Communication Technology (ICT) Sirindhorn International Institute of Technology Thammasat University http://www.siit.tu.ac.th/bunyaritbunyarit@siit.tu.ac.th02 5013505 X 2005

  2. This lecture’s overview • ITS033 course structure • Intro. to Algorithm • Why study Algorithm • Problems • Algorithmic Problem solving • Important problem types

  3. ITS033 Course Structure & Grading Lecture 01.1 ITS033 – Programming & Algorithms Asst. Prof. Dr. Bunyarit Uyyanonvara IT Program, Image and Vision Computing Lab. School of Information, Computer and Communication Technology (ICT) Sirindhorn International Institute of Technology Thammasat University http://www.siit.tu.ac.th/bunyaritbunyarit@siit.tu.ac.th02 5013505 X 2005

  4. Main Text Books • • Introduction to The Design & Analysis of Algorithms, 2nd Edition, AnanyLevitin, Addison Wesley Publishing, 2006 • • Algorithms Design , 2nd Edition, Jon Kleinberg & Eva Tardos, Addison Wesley Publishing, 2006 • • Algorithm Design, MT Goodrich, R Tamassia, John Wiley & Sons, Inc., 2002 • http://www.siit.tu.ac.th/bunyarit/its033.php • (การแก้ปัญหาด้วยคอมพิวเตอร์)http://www.vcharkarn.com/vlesson/7

  5. Topics Topic 01-Problems & Algorithmic Problem Solving Topic 02 – Algorithm Representation & Efficiency Analysis Topic 03 - State Space of a problem Topic 04 - Brute Force Topic 05 - Divide and Conquer Topic 06-Decrease and ConquerMidterm Exam Topic 07 - Dynamics Programming Topic 08-Transform and Conquer Topic 09 - Graph Algorithms Topic 10 - Minimum Spanning Tree Topic 11 - Shortest Path Problem Topic 12 - Coping with the Limitations of Algorithms Power Final Exam

  6. Prerequisite This course requires ITS 050 – Introduction to Computer & Programming or Some programming skill

  7. Grading 100% = Midterm 35% + + Final 35% + + Quizes & Homeworks 30% + Bonus (Attendance) 10%

  8. Grading Scheme

  9. Introduction to Algorithms ITS033 – Programming & Algorithms Lecture 01.2 Asst. Prof. Dr. Bunyarit Uyyanonvara IT Program, Image and Vision Computing Lab. School of Information, Computer and Communication Technology (ICT) Sirindhorn International Institute of Technology Thammasat University http://www.siit.tu.ac.th/bunyaritbunyarit@siit.tu.ac.th02 5013505 X 2005

  10. Overview • Algorithm Definition • Why study Algorithm • Problem • Conceptual flow • Problem types

  11. Algorithmics • Algorithmics is a study of algorithms • how to solve computational problems • how to solve it systematically and • how to solve it efficiently.

  12. Algorithm • Definition of Algorithm • An algorithm is a precise description of a step-by-step process • that is guaranteed to terminate … • terminates after a finite number of steps with a ... • with a correct answer for… • for every particular instance of an algorithmic problem that may occur. Input Output Algorithm

  13. Algorithm 1: How to bake a Banana Cake Input • Ingredients  2 1/2 cups all-purpose flour1 tablespoon baking soda1 pinch salt1/2 cup unsalted butter1 cup white sugar3/4 cup light brown sugar2 eggs4 ripe bananas, mashed2/3 cup buttermilk1/2 cup chopped walnuts • Directions • 1Preheat oven to 350 degrees F (175 degrees C). Grease and flour 2 - 8 inch round pans. In a small bowl, whisk together flour, soda and salt; set aside. • 2In a large bowl, cream butter, white sugar and brown sugar until light and fluffy. Beat in eggs, one at a time. Mix in the bananas. Add flour mixture alternately with the buttermilk to the creamed mixture. Stir in chopped walnuts. Pour batter into the prepared pans. • 3Bake in the preheated oven for 30 minutes. Remove from oven, and place on a damp tea towel to cool. Algorithm

  14. What is Algorithm? • Algorithm is Not an ANSWER to a problem • It is rather precisely defined PROCEDURES for getting answers. • Thus specific algorithm design techniques can be interpreted as problem-solving strategies • An attempt to formalize things as algorithms leads to a much deeper understanding

  15. Notion of Algorithm Programming

  16. Why Study Algorithm? • To know standard set of important algorithms • Able to use known algorithms to solve known problems • Able to design new algorithms & analyze their efficiencies • Useful in developing analytical skill

  17. Analyzing Algorithms • Analyzing algorithms involves • thinking about how their resource requirement will scale with increasing input size. • Resource means • time • and space

  18. Problems & Problem Solving ITS033 – Programming & Algorithms Lecture 01.3 Asst. Prof. Dr. Bunyarit Uyyanonvara IT Program, Image and Vision Computing Lab. School of Information, Computer and Communication Technology (ICT) Sirindhorn International Institute of Technology Thammasat University http://www.siit.tu.ac.th/bunyaritbunyarit@siit.tu.ac.th02 5013505 X 2005

  19. Problem 1: Old world puzzle A man finds himself on a riverbank with a wolf, a goat, and a head of cabbage. He needs to transport all three to the other side of the river in his boat. However, the boat has room for only the man himself and one other item. In his absence, the wolf would eat the goat, and the goat would eat the cabbage. Solve this problem, or prove it has no solution. * The man is vegetarian who doesn’t like to eat cabbage.

  20. Problem 2: New world puzzle • Problem 02 - New World Puzzle: • There are four people who want to cross a bridge; they all begin on the same side. You have 17 minutes to get them all across to the other side. It is night, and they have one flashlight. A maximum of two people can cross the bridge at one time. Any party that crosses, either one or two people, must have the flashlight with them. The flashlight must be walked back and forth; it cannot be thrown, for example. Mr. A takes 1 minute to cross the bridge, Mr. B takes 2 minutes, Mr. C takes 5 minutes, and Mr. D takes 10 minutes. A pair must walk together at the rate of the slower person’s pace. For example, if Mr.A and Mr.D walk across first, 10 minutes have elapsed when they get to the other side of the bridge. If Mr.D returns the flashlight, a total of 20 minutes have passed and you have failed the mission. • Solve this problem, or prove it has no solution.

  21. Problems • Problem 03 – 8 Queen Puzzle: • The queen is the most powerful piece in the game of chess. The queen can be moved in a straight line vertically, horizontally, or diagonally, any number of unoccupied squares as shown on the diagram at the right. The queen captures by occupying the square on which an enemy piece sits. Put 8 queens on the same chess board that each of them can not capture each other.

  22. Problems • Fake Coin Problem • There are 5,000 coins in a bucket that look identical. Just 1 fake coin that is lighter than the others. Luckily, you have a balance (which allows them to compare the weights of two groups of coins) to help you with this. • Design an algorithm to get rid of the fake coin. • If you have to pay for each time you use the balance, design an algorithm to solve the same problem.

  23. Problems • Traveling Salesman problem • A salesman needs to visit each of the cities in this map once before he returns home. Design an algorithm to take him around the map with minimum total ticket cost. (a number on an edge indicates the price of the ticket between the two cities)

  24. Problems • Optimization problem (Football manager)

  25. Problem

  26. Problems • 8-Queen • Horse Traversal • Stable Matching • Traveling Salesman Problem • Knapsack Problem • Domino Puzzle (page 371) • Rubik cubes • Maze

  27. Fundamentals of Algorithmic Problem Solving Lecture 01.4 ITS033 – Programming & Algorithms Asst. Prof. Dr. Bunyarit Uyyanonvara IT Program, Image and Vision Computing Lab. School of Information, Computer and Communication Technology (ICT) Sirindhorn International Institute of Technology Thammasat University http://www.siit.tu.ac.th/bunyaritbunyarit@siit.tu.ac.th02 5013505 X 2005

  28. 1.2 Fundamentals of Algorithmic Problem Solving • Algorithm = Procedural Solutions to Problem • NOT an answer, BUT rather specific instructions of getting answers. • Therefore, requires steps in designing and analyzing an algorithm

  29. Algorithm Design & Analysis Process

  30. Step 1: Understand the Problem • the first thing you need to do before designing an algorithm is to understand completely the problem given. Read the problem’s description carefully and ask questions if you have any doubts about the problem, do a few small examples by hand, think about special cases, and ask questions again if needed. • An input to an algorithm specifies an instance of the problem the algorithm solves. It is very important to specify exactly the range of instances the algorithm needs to handle. • Remember that a correct algorithm is not one that works most of the time but one that works correctly for all legitimate inputs.

  31. Step 2: Ascertaining the capabilities of a computational device • Algorithms designed to be executed on machines that executes intstructions one after another are called sequential algorithms. • Algorithms that take advantage of computers that can execute operations concurrently are called parallel algorithms.

  32. Step 3: Choosing between Exact & Approximate Problem Solving • Exact algorithms vs Approximation algorithms • Why approximation algorithms? • Problems cannot be solved exactly • Available exact algorithms are unacceptably slow

  33. Step 4: Deciding on Appropriate Data Structures • In the new world of object-oriented programming, data structures remain important for both design and analysis of algorithms. • However, we will assume a very basic data structure for now and concentrate on the algorithm side. Data Structure is in next semester for IT & CS students

  34. Step 5: Algorithm Design Techniques • An algorithm design technique (or “strategy” or “paradigm”) is a general approach to solving problems algorithmically that is applicable to a variety of problems from different areas of computing. • Eg. Brute force, Divide-and-Conquer, Transform-and-Conquer

  35. Step 6: Methods of Specifying an Algorithm • Pseudocode, a mixture of a natural language and programming language-likeconstructs. • flowchart, a method of expressing an algorithm by a collection of connected geometric shapes containing descriptions of the algorithm’s steps.

  36. Step 7: Proving an Algorithm’s Correctness • Prove algorithm’s correctness = prove that the algorithm yields a requiredresult for every legitimate input in a finite amount of time. • For an approximation algorithm, correctness means to be able to show that the error produced by the algorithm does not exceed a predefined limit.

  37. Step 8: Analyzing an Algorithm 1. Efficiency • Time efficiency indicates how fast the algorithm runs. • space efficiency indicates how much extra memory the algorithm needs. 2. Simplicity 3. Generality • Design an algorithm for a problem posed in more general terms. • Design an algorithm that can handle a range of inputs that is natural for the problem at hand. • This topic will be fully covered in the next lecture.

  38. Step 9: Coding the algorithm • More than implementation • Peril of incorrect & inefficient implementation • Require testing & debugging • Require code optimizing

  39. Important Problem Types ITS033 – Programming & Algorithms Lecture 01.5 Asst. Prof. Dr. Bunyarit Uyyanonvara IT Program, Image and Vision Computing Lab. School of Information, Computer and Communication Technology (ICT) Sirindhorn International Institute of Technology Thammasat University http://www.siit.tu.ac.th/bunyaritbunyarit@siit.tu.ac.th02 5013505 X 2005

  40. 1.3 Important Problem Types • Sorting • Searching • String processing • Graph problems • Combinatorial problems • Geometric problems • Numerical problems

  41. Sorting • The sorting problem asks us to rearrange the items of a given list in ascending order. • we usually need to sort lists of numbers, characters from an alphabet, character strings, and, most important, records similar to those maintained by schools about their students, libraries about their holdings, and companies about their employees. In the case of records, weneed to choose a piece of information to guide sorting.

  42. Searching • The searching problem deals with finding a given value, called a search key, in a given set (or a multiset, which permits several elements to have the same value).

  43. String Processing • A string is a sequence of characters from an alphabet. • String of particular interest: 1. Text string – comprises letters, numbers, and special characters 2. Bit string – comprises zeros and ones 3. Gene sequence • Mainly string matching problem: searching for a given word in a text

  44. Graph Problems • A graph can be thought of as a collection of points called vertices, some of which are connected by line segments called edges. • Used for modeling a wide variety of real-life applications. • Basic graph algorithms include: 1. Graph traversal algorithms - How can one visit all the points in a network? 2. Shortest-path algorithms - What is the best Introduction route between two cities? 3. Topological sorting for graphs with directed edges - Is a set of courses with their prerequisites consistent or self-contradictory?

  45. Combinatorial Problems • combinatorial problems: problems that ask (explicitly or implicitly) to find a combinatorial object—such as a permutation, a combination, or a subset—that satisfies certain constraints and has some desired property (e.g., maximizes a value or minimizes a cost). • Are the most difficult problems in computing: • Combinatorial grows extremely fast with problem size 2. No known algorithm solving most such problems exactly in an acceptable amount of time.

  46. Geometric Problems • Geometric algorithms deal with geometric objects such as points, lines, and polygons. 2 class problems: • The closest pair problem: given n points in the plane, find the closest pair among them. • The convex hull problem asks to find the smallest convex polygon that would include all the points of a given set. If

  47. Numerical Problems • Numerical problems, another large special area of applications, are problems that involve mathematical objects of continuous nature: solving equations and systems of equations, computing definite integrals, evaluating functions, and so on.

  48. Data structure • In some cases, obtaining a good running time bound relies on the use of more sophisticated data structures • However, we assume a very simple data structure to be used in this course (like Array) • More complex structure like Heap, Priority Queue ( will be learned in 2nd year for IT & CS students)

  49. Conclusions • ITS033 course structure • Intro. to Algorithm • Why study Algorithm • Problems • Algorithmic Problem solving • Important problem types http://www.vcharkarn.com/vlesson/showlesson.php?lessonid=7&pageid=1

  50. End of Chapter 1 Thank You!

More Related