Problems - PowerPoint PPT Presentation

1 / 50
About This Presentation
Title:

Problems

Description:

School of Information, Computer and Communication Technology (ICT) ... line vertically, horizontally, or diagonally, any number of unoccupied squares ... – PowerPoint PPT presentation

Number of Views:94
Avg rating:3.0/5.0
Slides: 51
Provided by: JohnDin3
Category:

less

Transcript and Presenter's Notes

Title: Problems


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/bunyaritbunya
rit_at_siit.tu.ac.th02 5013505 X 2005
2
This lectures 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/bunyaritbunya
rit_at_siit.tu.ac.th02 5013505 X 2005
4
  • Main Text Books
  • Introduction to The Design Analysis of
    Algorithms, 2nd Edition, Anany Levitin, 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/bunyaritbunya
rit_at_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 u
nsalted 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/bunyaritbunya
rit_at_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 doesnt 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 persons 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/bunyaritbunya
rit_at_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 problems 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 algorithms steps.

36
Step 7 Proving an Algorithms Correctness
  • Prove algorithms correctness prove that the
    algorithm yields a required result 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/bunyaritbunya
rit_at_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 objectsuch as a permutation, a
    combination, or a subsetthat 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?le
    ssonid7pageid1

50
End of Chapter 1
  • Thank You!
Write a Comment
User Comments (0)
About PowerShow.com